Forum: Mikrocontroller und Digitale Elektronik NRF24L01+ auf STM32F103: Ich weiss nicht mehr weiter :-(


von Christian J. (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

nach 3 intensiven Tagen fehlt mir jede Idee was verkehrt sein könnte. 
Fast schon möchte ich eine Belohnung ausschreiben.

Es muss gehen aber es geht nicht ... oder "Ich schaff das nicht!"

Die strategische Lage:

Das Funkmodul läuft an einem STM32F407 ohne Probleme und war im ACK 
Modus. Ok, also muss es auf einem F103 auch laufen. Vorher auch mal 
Payload mit ACK aber das brauche ich eigentlich nicht. Die Software auf 
beiden Systemen ist die Gleiche, bis auf die Hardware Unterschiede 
zwischen der F1 und der F4 CPU. Da F103 Board ist so ein DIP40 Modul, 
nur die CPU drauf und die Bootloader Pins über Jumper + USB. Ich debugge 
es mit einem ST LInkV2, der an die Pins angesteckt ist. Geht prima, auch 
im Debug RAM Modus.

Mit dem LA habe ich mir die Sigale angeschaut, alles bestens! Die SPI 
tackert die Werte richtig in die Register des RF rein, ich habe sie auch 
alle wieder ausgelesen, auch die Pipe Adressen, und es steht richtig 
drin. Kanal ok, Pipes ok, Shockburst usw. Die Rgeister des Rf kann ich 
inzwischen auch auswendig runterbeten. SPI auf 2.0 Mhz, AHB/APB1/APB2 
Prescaler sind alle auf 1 derzeit (Maximale Drehzahl 72Mhz = HCLK). 
Später ggf. größerer Teiler, spart Strom.

Piepsen am Board ergab einwandfreie Verbindungen, die Pins takten 
einwandfrei, alle einzeln im SingleStep durchgetestet, 1,0,1,0 ....

Was geht nicht?

Der Sender (Arduino) funkt laufen ein paar Daten in den Raum. Er hat 
keine Fehlerquelle, mein großes Board empfängt alles einwandfrei was er 
sendet.
An zwei LED sehe ich, ob er ein ACK vom Empfänger bekam oder nicht. Rot 
= kein ACK, grün = alles prima. Der STM32F103 reagiert nur leider nicht 
mit einem INT darauf wenn eine Sendung kommt. Auch eine LED ist am INT 
Pin, eine Blaue mit 100uA Strom damit er nicht belastet wird. Geprüft 
wurde:

INT Auslösung manuell mit GND Kabel -> ok
INT Auslösung durch Flag MAX_RT des Funkmoduls -> OK

Also ist die INT Strecke vom RF Modul zur CPU in Ordnung. Der INT Pin 
reagiert auf die Flanke und das RF Modul kann diese Flanke erzeugen.

Nur das RX_DS Flag im Stazus Register was ein Paket anzeigt wird nie 
gesetzt. Denn das würde den INT auslösen. Aber auch manuelle Abfragen 
zeigen, dass es nie gesetzt wird.

Und jetzt gehen mir die Ideen komplett aus :-(

Viellicht setze ich doch ne Belohnung aus, wert wäre es mir das schon..

Gruss,
Christian

von Marc (Gast)


Lesenswert?

Hallo,

Nur aus Neugier:
Was für einen Logik Analysator verwendet du?

Zur Sache:

1. Schau dir den Signalverlauf doch einmal bei der Funktionierenden 
Lösung an,
und vergleiche mit der nichtfunktionierenden.


2.Versuche mal mit "Breakpoints", den Programm Ablauf in 
"funktionierenden"
und "nicht funktionierenden" nachzu vollziehen und zu vergleichen.

Habe auch keine Antwort.

Bei keinen Ideen hilft nur:
1. Schritt für Schritt  Vergleich
2. Mal Abschalten und zwischendrin was anderes machen ;-)

Gruß

Marc

von Christian J. (Gast)


Lesenswert?

Marc schrieb:
> Nur aus Neugier:
> Was für einen Logik Analysator verwendet du?

So ein China Teil, Selae irgendwas.

> Zur Sache:
>
> 1. Schau dir den Signalverlauf doch einmal bei der Funktionierenden
> Lösung an,
> und vergleiche mit der nichtfunktionierenden.

Das ist zwar mühsam aber vermutlich die einzige Chance die beiden 
Konfigurations Bitströme nebeneinander zu legen, denn danach passiert 
nix mehr, das Modul ist scharf und wartet. Und wenn die genau gleich 
sind, dann muss es "anderswo" dran liegen.

PS: Board und RF Modul habe ich auch ausgetauscht, nüscht :-(

von Wolfgang (Gast)


Lesenswert?

Christian J. schrieb:
> So ein China Teil, Selae irgendwas.

Der Selae Logikanalysator kommt aus Californien/USA
https://www.saleae.com/

Was du da verwendest ist wohl eher ein Clone mit der Salea Software

von W.S. (Gast)


Lesenswert?

Christian J. schrieb:
> mein großes Board empfängt alles einwandfrei...

könnte es sich da nicht um einen kleinen Denkfehler handeln? Diese 
Funkmodule sind doch nicht für Broadcast gedacht, sondern für 
Einzelverbindung mit Handshake, bis das/die Paket(e) richtig 
rübergekommen sind. Was passiert denn, wenn du dein "großes Board" 
ausschaltest und nur mit deinem STM32F1xx arbeitest?

W.S.

von Christian J. (Gast)


Lesenswert?

W.S. schrieb:
> Was passiert denn, wenn du dein "großes Board"
> ausschaltest und nur mit deinem STM32F1xx arbeitest?

Das ist natürlich so! Es dürfen nicht zwei Empfänger mit der gleichen 
Kennung online sein, das gibt Datenmurks.

Vergleiche grad die Bitströme der beiden Boards...... bin noch dran. 
Blöd, dass man Funkwellen nicht debuggen kann.

Ergebnis: Niete! Die Konfigurationsdatenströme sind absolut identisch, 
MOSI und MISO Antwort des RF Moduls.

Bullshit!

von Christian J. (Gast)


Lesenswert?

Ok,

Alibi Tätigkeiten beendet wie Nachlöten aller Pins und Header, sogar 
Kupferfolie zwischen CPU und Funkmodul gehalten, wer weiss.... auch die 
Linker Options mal geändert. Geguckt ob die Pins viellleicht noch eine 
andere Funktion haben, die was blockiert....

Ende Gelände. Nach 3 Tagen und 3 Mal drüber schlafen fällt mir nichts 
mehr ein, was an dieser überschaubaren Platine anders ist.

von Christian J. (Gast)


Lesenswert?

Naja,

ich habs gefunden. Wieder mal zurück an meine Lehrzeit erinnert als es 
noch keine uC, DC/DC Wandler usw gab.

"Jung, wenn es nicht funktioniert prüf erstmal die Versorgungsspannung"

Denn 3.3V sind für die ebay Teile einfach nicht drin, auch wenn sie auf 
dem Voltmeter stehen. Rappelvoll mit Spikes.

:-)

von noreply@noreply.com (Gast)


Lesenswert?

Christian J. schrieb:
> "Jung, wenn es nicht funktioniert prüf erstmal die Versorgungsspannung"

Ich wollts nicht sagen. :-)

von Christian J. (Gast)


Lesenswert?

noreply@noreply.com schrieb:
> Ich wollts nicht sagen. :-)

Und nun ist der linke grüne Klotz nur noch stromlose Deko, da ich ihn 
nicht rausreissen will, des Loches wegen. Wegen der Optik, Auge des 
Künstlers halt :-)

Wie war das noch mit dem Sachsen bei 200 Puls!

"Er gääääähhhht, das sch**** Ding gääääht!"

von F. F. (foldi)


Lesenswert?

Was ist das für ein Steckbrett? Sieht interessant aus.

von Nix OT (Gast)


Lesenswert?

Christian J. schrieb:
> Vergleiche grad die Bitströme der beiden Boards...... bin noch dran.
> Blöd, dass man Funkwellen nicht debuggen kann.
>


Kann man aber sniffen und analysieren :P

von Christian J. (Gast)


Lesenswert?

F. F. schrieb:
> Was ist das für ein Steckbrett? Sieht interessant aus.

Lochrasterplatine?

von F. F. (foldi)


Lesenswert?

Christian J. schrieb:
> Lochrasterplatine?

Auf dem Bild sah das Teil weiß aus und ich dachte das wäre ein 
"besonderes" Steckbrett.

von Christian J. (Gast)


Lesenswert?

F. F. schrieb:
> Auf dem Bild sah das Teil weiß aus und ich dachte das wäre ein
> "besonderes" Steckbrett.

Ist einfach eine ROTH Epoxy FR4 1,5mm und eine Baumarkt Sprühdose 
"weiss" :-)
Sieht besser aus als dieses braun/grau etc. Hab da so nen Tick, das Ding 
hängt schliesslich nachher an der Wand ohne Gehäuse.

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.