Forum: HF, Funk und Felder RFM95W und DIO-0 Signalpegel


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Mehmet K. (mkmk)


Angehängte Dateien:

Lesenswert?

Servus allerseits

Den RFM95W setzen wir seit Jahren ein und hatten damit noch nie 
irgendwelche Probleme.

Bis ich vor ein paar Tagen bei einem Prototype den RFM nicht von der 
Produktion abzweigte, sondern eines aus meinem eigenen Lagerbestand 
benutzte. An die Bezugsquelle kann ich mich nicht mehr errinern; aber 
sie sind gegurtet und unterscheiden sich optisch nicht von den anderen.

Resultat: die Kommunikation klappte nur halbwegs: das Gerät konnte zwar 
seine Nachricht absetzen, war dann aber blockiert, bis der Watchdog 
eingriff.
Ich war dermassen erstaunt, dass ich den Techniker anrief und ihn 
fragte, ob er schon mal einen defekten RFM95W habe auswechseln müssen. 
Nein, hatte er noch nie müssen.

Also das Ding ausgewechselt und die Kommunikation klappte wieder. Um 
dann ein paar Tage später wieder zu bocken. Beim Debuggen sah ich dann, 
dass der RFM zwar die internen Flags korrekt setzte, aber kein 
Interrupt-Signal generierte. Als ich dann mit dem Oszi den DIO-0 Pin 
kontrollierte, sah ich das Signal. Sehr sauber, so als ob man es mit 
Stift und Linear gezeichnet hätte. Aber sein Pegel war nur 1,5V 
(SPI-Signale hingegen 3.3V).
Alle anderen Geräte, die ich von der Serien-Produktion erhalten hatte, 
hatten am DIO-O ein 3.3V Pegel.

Alles in allem habe ich 3 RFMs ausgewechselt, bis ich auf die glänzende 
Idee kam, diesbezüglich mal das Datenblatt zu konsultieren. Und dort 
stand zu meinem Erstaunen "Digital output level high min. 0.9V"

Um die Tests nicht zu blockieren habe ich den Code dahingehend 
abgeändert, dass ich nun die Flags abfrage. Und weil in LoRa die Sende- 
und Empfangs-Zeiten doch recht gemütlich sind und das Ganze mit RTOS 
läuft, habe ich auch keinerlei Performanseinbussen. Aber schön ist es 
nicht.

Dem DIO-Ausgang werde ich nun einen Transistor spendieren, damit ich in 
Zukunft Ruhe habe. Aber wohl ist mir bei der Sache nicht. Fast tendiere 
ich dazu, beim Polling zu bleiben.
Denn im Internet konnte ich sowas ähnliches nicht finden, und selbst 
eine Anfrage bei der KI hat nichts gebracht.

Meine 2 Fragen:
- Habe ich irgendwas übersehen?
- Wie würdet Ihr jetzt weiter vorgehen?

von Rainer W. (rawi)


Lesenswert?

Mehmet K. schrieb:
> Und dort stand zu meinem Erstaunen "Digital output level high min. 0.9V"

Wo steht das?
Man achte auf die Einheiten (Spalte "Unit").
Ich lese dort "0.9 VDD", bei VDD=3,3V also etwa 2,97V.

: Bearbeitet durch User
von Mehmet K. (mkmk)


Lesenswert?

Rainer W. schrieb:
> Man achte auf die Einheiten (Spalte "Unit").

In der Tat. Danke für diesen Hinweis. Aber nun verstehe ich gar nichts 
mehr. Woher kommen diese 1,5V?

von Rainer W. (rawi)


Lesenswert?

Mehmet K. schrieb:
> Woher kommen diese 1,5V?

Da bricht der Pegel zusammen. Wie sieht die Schaltung aus?
Wie hoch ist die Quellimpedanz für den H-Pegel und was hängt da als Last 
dran?

von Mehmet K. (mkmk)


Lesenswert?

Rainer, nochmals vielen Dank für Deinen Hinweis. Das hat mich dazu 
bewogen, DIO-0 von der Schaltung zu trennen und das Signal so zu messen: 
3.3V  \o/
Die Leitung selbst hat keinerlei Kurzschlüsse oder dergleichen; das 
hatte ich schon von Anfang an kontrolliert.
Vermutlich liegt der Fehler irgendwo in der Intialisierung des STM32.
Ich arbeite mit einem STM32U575, der für mich Neuland ist. In all den 
anderen Geräten sitzt ein STM32F407 o.ä.

Sorry dafür, dass ich Eure Zeit unnötigerweise in Anspruch genommen 
habe.

von Rainer W. (rawi)


Lesenswert?

Mehmet K. schrieb:
> Die Leitung selbst hat keinerlei Kurzschlüsse oder dergleichen; das
> hatte ich schon von Anfang an kontrolliert.

Bei einem Kurzschluss hätte die Spannung stärker zusammen brechen 
müssen.

1/2 VDD entsteht z.B. wenn zwei push-pull Ausgangsstufen gegeneinander 
arbeitenden - eine zieht nach Low, die andere nach High. Der in so einem 
Fall fließende Querstrom sollte sich auch in der Gesamtstromaufnahme 
bemerkbar machen.

von Wastl (hartundweichware)


Lesenswert?

Rainer W. schrieb:
> 1/2 VDD entsteht z.B. wenn zwei push-pull Ausgangsstufen gegeneinander
> arbeitenden - eine zieht nach Low, die andere nach High.

Ich tippe auf Open Collector Ausgang mit Weak Pullup.

von Rainer W. (rawi)


Lesenswert?

Wastl schrieb:
> Ich tippe auf Open Collector Ausgang mit Weak Pullup.

Und auf der anderen Seite ist zufällig ein weak Pulldown aktiviert?
Oder wie kommt sonst VDD/2 zusammen?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.