Hallo, ich versuche für einen Freund eine Firmware zu stricken und hänge irgendwie in der Luft. Ich selbst habe (noch) keine Ahnung von Hardware - ich verschicke die jeweilige Firmware nur per email und bekomme die Testergebnisse auch per email. Für entsprechende Nachsicht Eurerseits wäre ich sehr dankbar :) Das Protokoll läuft in 2 Schichten ab. Eine Schicht schiebt jeweils nur ein Byte raus, die andere Schicht kümmert sich um die Bitreihenfolge und deren Bedeutung. Die USI-Schnittstelle läuft im TWI-Modus, weil die Datenleitung für Schreib- und Leseoperation verwendet werden soll. Dafür setze ich USITC und USIWM1 auf 1, USIWM0 auf 0. Beide USICS sind auf 0 - also Softwareclock. Clock liegt im Ruhezustand auf High und für ein Byte soll Clock 8mal auf Low gezogen werden. Der Oszi-Mitschrieb sieht für Clock so aus wie gewollt. Leider bekomme ich auf der Datenleitung keinerlei Pegeländerung. Beide Leitungen habe ich über DDR als Ausgang geschaltet und externe Pullups sind dran. Bin für jeden Tip dankbar.
Morgen! 1. Wie groß sind die Pull-Ups? 2. Vielleicht eine dumme Frage, aber hast du vorher auch Daten ins USI-Datenregister (USIDR) geschrieben? 3. Wie erzeugst du das Clock-Signal? Durch Veränderung des entsprechenden PORT-Bits oder über das Clock-Strobe-Bit USICLK? Schöne Grüße, Alex
Hallo Alex, vielen Dank für Deine Aufmerksamkeit. zu 1: Mit 4K7 haben wir angefangen - jetzt bin ich aber nicht informiert, ob mein Freund da selbst schon experimentiert hat. zu 2: ein weiser Mann meinte mal, es gibt keine dummen Fragen :) Yep. Gerade nochmal kontrolliert - hätte ja sein können, dass ich es mit auskommentiert hätte ... zu 3: ich habe 2 defines: #define COMM_CLOCK_LOW (1 << USIWM1 | 1 << USITC) #define COMM_CLOCK_HIGH (1 << USIWM1 | 1 << USITC | 1 << USICLK) und weise die abwechselnd dem USICR zu. In der Initialisierung setze ich beide Pins als Ausgang und setze Clock über PB7 auf High. Wenn jetzt das USI-Modul den Start mit fallender Flanke nicht unterstützt, hätte ich wenigstens erwartet, dass die Bits eine halbe Periode versetzt rauspurzeln, aber tote Hose habe ich nich erwartet.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.