Hallo, Ich habe eine kurze Frage zum SPI. Ich habe eine Anforderung, wo ich mehrere AVRs (Slaves) mit einem Master ansprechen muss. Es ist nicht zeitkritisch und es werden nur wenig Daten (2 Bytes) übertragen. Um I/O-Pins am Master zu sparen, dachte ich mir, dass ich die AVRs "seriel" anspreche: Master Slave Slave -----, ,------, ,------, MOSI |----->| MOSI | ,-->| MOSI | | | | | | | MISO | | MISO |--' | MISO | -----' '------' '------' ^ | '---------------------------' Bei der Übertragung vergebe ich einfach Adressen, damit der entsprechende uC weiß, wann er gemeint ist. Würde das so funktionieren? Was meint ihr? THX!! mfg Andy
Wenn du (durch einen Slaveselect-Pin) allen signalisiere kannst, dass ein Datenstrom beginnt, sollte es möglich sein. Wobei es natürlich zu einem Versatz kommt: Die Controller empfangen ein Byte und können es erst beim nächsten Durchlauf weiterschicken... Ist also Mist, weil es nicht wie Schieberegister funktioniert, bei denen der Eingang gleichzeitig mit dem Ausgang bedient wird. Mit einem weiteren Baustein ("Adressdecoder 74HC138") kann man mehrere Slaves mit weniger Leitungen ansprechen.
@Aufreger: Der Takt wird natürlich mitgeschleift, hab ich vergessen einzuzeichnen. @Peter: Hab mal gelesen, dass der TWI ein aufwendigeres Protokoll hat. Bei SPI kann ich das frei konfigurieren, oder?
> Bei SPI kann ich das frei konfigurieren, oder?
Bei TWI ebenso.
Start -> Adresse -> Daten -> Stop -> fertig!
@Aufreger: OK, ich werd mir mal den TWI-Bus ansehen. Denn laut Rahul könnte das mit dem Versatz sowieso etwas aufwendiger werden. Danke erstmal!
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.