Hallo. Ich möchte mit einem mega8 eine SPI-Verbindung zu einem Slave herstellen. Bei dieser Verbindung werden den Slave Daten gesendet (µC_MOSI=>slave_in) und zugleich Daten empfangen, also brauche ich auch die Rückleitung µC_MISO<=slave_out. Wenn ich das allerdings so "hardverdrahte", dann wäre eine ISP-Programmierung unmöglich. Wie kann ich das jetzt lösen, damit ISP trotzdem möglich ist? Ist das richtig, das der ISP-Adapter beim Programmieren den Atmel im Reset-Zustand hält (also den Resetpin auf LOW) ?? Und sobald er das Programmieren/Lesen/Schreiben/Verifiziern vollständg erledigt hat, dann wieder auf High zurücknimmt? Dann könnte ich damit paar Gates schalten, die diese Kollisionen verhindern.. Oder hat jemand schonmal sowas gemacht, und kann mir paar Tipps geben? Danke schonmal
Verwende geeignete Widerstände (ich glaube größer 4,7K, bin mir aber nicht mehr ganz sicher) Dann kann beim Programmieren Reset auf Low gezogen werden bzw. die Ausgänge stören nicht.
Verwende einen Analogmultiplexer (AFAIK z.B. der 4053) um die Signalleitungen umzuschalten. Als Signal um den Multiplexer zu schalten verwedest Du das Reset-Signal vom uC. Im WWW gibt es hierzu auch zahlreiche Beispielschaltungen. Gruß, Thomas
Man kann doch die USART Pins als SPI benutzen. Dann könnte die ISP-Programmierung ganz normal ablaufen und es braucht keine zusätzlichen Bauteile.
Wenn der Atmega den Chip-select des Slaves steuert, reicht doch ein Pull-Up am \CS des Slaves, oder? ?! Jörg
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.