Forum: Mikrocontroller und Digitale Elektronik Hilfe bei SPI und Funkchip CC1150


von Mike M. (mikeii)


Angehängte Dateien:

Lesenswert?

Hi,

ich habe hier so eine Handferndbedinung mit einem Attiny2313 und einem 
CC1150 (http://www.ti.com/lit/ds/symlink/cc1150.pdf).

Diese will ich auf ein andere Protokoll umbauen.

Mit dem Datenblatt habe ich zwar herausgefunden, was ich dem Chip senden 
muss, aber es klappt hinten und vorne nicht.
Also habe ich den Logicanalyser angeklemmt, und mal die originale 
Kommunikation mitgelauscht. Habe dann bemerkt, dass mein SPI wohl zu 
schnell war.

Ich habe kurzerhand mit Bitbanging das SPI nachgebaut, so dass das 
Timing exact wie das originale ist. Leider bekomme ich keine Rückantwort 
von dem Chip.

Eigentlich antwortet der Chip bei der original Software bereits, wenn 
sein CSn Pin(Kanal 4 im Screenshot) auf Low gezogen wird...

Ich finde auch im Datenblatt nichts, was falsch sein könnte. Weiß jemand 
warum ich keine Rückantwort bekomme?

von Ursus P. (unwichtig)


Lesenswert?

Schickst du auch richtige Befehle an den Chip?
Hast irgendwas an der Hardware geändert?
Nutzt du Soft SPI oder Hard SPI ?
Richtiger SPI Modus ?
evtl. hält irgendwas die MISO Leitung auf HIGH

Bischen mehr Informationen bitte ;-)

von Mike M. (mikeii)


Lesenswert?

Hardware ist die gleiche.
Habe vorher HardSPI genommen, jetzt Soft SPI.
Kommt genau das raus was raus soll (auf die zehntel µs genau)
Die Befehle sind auch die richtigen.
Ich habe nur meinen Programmer dran angeschlossen und wechsel immer 
zwischen meiner Software und der Originalen.

Die Sache ist die: Wenn der CSn Pin auf Low gezogen wir, sollte der Chip 
eigentlich damit antworten, dass er seinen DataOut(SO) auch auf Low 
zieht. Aber nicht mal das macht er. AuoReset Bedingung ist laut 
Datenblatt hier auch erfüllt. Manueller Reset ist nicht möglich, da 
DataOut vom Slave nicht auf 0 gezogen wird.

Der LogicAnalyser bestätigt, dass ich alles genauso mache wie die 
Original Software, aber irgendwas entgeht mir wohl doch...


Zum Screenshot oben:
Hatte versehentlich die Beschriftung abgeschnitten:
Von Oben nach unten:
MISO
MOSI
CLK
LEER
CSn

von Konrad (Gast)


Lesenswert?

Haengt noch irgendwo ein Reset- oder Enable-Pin hintenrum an einem GPIO?

von mikeii (Gast)


Lesenswert?

Leider auch nicht, habe alle Pins nachverfolgt. Der Funkchip wird über 
die SPI Pins in den Schlafmodus versetzt, und Reset erfolgt auch über 
diese Pins. In dem FSM Diagram steht auch, dass er auf jedenfall bei CSn 
Low in den Idle Modus gehen sollte.

Einzige Sache, wenn der Oszillator noch nicht stabil ist, will er das 
noch nicht. Da würde er sich so verhalten, wie er es gerade tut. Aber 
ich habe auch die manuelle Resetprozedur befolgt, und er geht trotzdem 
nicht in den idle Modus....

Evtl. verstehe ich etwas falsch. Dort steht Burst CSn, auf low, dann auf 
high (40us halten ab dem low ziehen gemessen)  und dann wieder auf low 
ziehen. Spätestens jetzt sollte der Chip mit seinem Datenausgang auf Low 
gehen, macht er aber nicht.
Evtl verstehe ich den Ablauf falsch?

von mikeii (Gast)


Angehängte Dateien:

Lesenswert?

Hief der Auszug vom Reset

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.