Hallo in die Runde, für das folgende Vorhaben suche ich eine elegante Lösung: Ein AVR (ATMega2560) läuft mit 5V und bedient mehrere SPI-Slaves auf der 5V Ebene und auf der 3,3V Ebene. Als SPI-Pegelwandler kommt ein 74AHCT125 (hoch) und ein 74LVC125 (runter) zum Einsatz. Das funktioniert auch wunderbar. Zusätzlich werden die SPI Pins für ISP über die gleichen genannten Pegelwandler (aber in andere Richtung beschalten) auf die 3,3V Ebene gebracht. Anbei ist ein Bild der Pegelwandler für die ISP-Leitungen. Die Resetleitung des ISP schaltet bei Programmierung die Pegelwandler für SPI ab und aktiviert die ISP Gatter. Zum Problem: Die ISP-Leitungen sollen an ein Raspberry Pi Compute Module angeschlossen werden, um den AVR via avrdude zu programmieren. Wenn ich die ISP-Leitungen an das Compute Module anschließe und avrdude ausführe, kann ich problemlos auf den AVR zugreifen und eine neue Firmware aufspielen. Hinzukommen soll nun auch der klassische ISP-Wannenstecker, um als Entwickler auch mal eine Firmware unabhängig vom Compute Module aufzuspielen. Folglich muss das ISP-Interface des Wannensteckers mit an die bereits vorhandenen ISP-Leitungen (3,3V Ebene) angeschlossen werden. Wie schaltet man am besten mehrere ISP-Programmer parallel an die ISP-Leitungen (3,3V Ebene). Genügt hierfür pro Programmer ein Serienwiderstand für jede Leitung in Reihe? Wenn ja, groß sollte dieser sein? Oder wäre hierfür ein Multiplexer/Demultiplexer (Analogschalter) sinnvoll? Wenn ja, welchen könnt ihr empfehlen? Hat jeman so etwas schon mal umgesetzt und eine Beispielschaltung anzubieten? Ein zeitgleiches Programmieren durch Compute Module (avrdude) und angeschlossenem externen Programmer (Atmel Ice) ist zunächst mal ausgeschlossen. Vielen Dank für eure Mühe! Gruß, Tony
Ich würde das mit Multiplexern lösen, anstatt mit halbgaren Workarounds die nicht einmal wesentlich günstiger oder kleiner sind.
Stefan ⛄ F. schrieb: > Ich würde das mit Multiplexern lösen, anstatt mit halbgaren Workarounds > die nicht einmal wesentlich günstiger oder kleiner sind. Kannst du einen passenden Schaltkreis empfehlen?
Stefan ⛄ F. schrieb: > CD4053B Vielen Dank für den Hinweis. Hab mir den direkt mal angeschaut und eingezeichnet. Anbei der komplette Schaltplan des SPI / ISP Interfaces am AVR. Aktuell fehlt noch das Umschalten des CD4053B in Abhängigkeit der Resetleitungen. Hierzu noch eine Frage: Für die Resetleitungen wäre meiner Meinung nach ebenfalls ein Mux/Demux sinnvoll. Hierbei muss dann der Mux/Demux der beiden Resetleitungen getriggert werden durch, bspw. den externen Reset des ISP-Wannensteckers. Folglich wäre dann die ISP-Resetleitung des Compute Modules und dessen ISP Interface standardmäßig am Mux/Demux ausgewählt. Sehe ich das richtig? Kannst du eine Empfehlung für einen Mux/Demux für die Resetleitung aussprechen - quasi ein CD4053B aber SIngle Channel. Bei TI und Co gibt es ja sehr viele im Katalog. Ich würde gerne einen bewährten Einkanal-Mux/Demux einsetzen. Gerne auch einen Kommentar zur gesamten Schaltung, ob das so funktionieren kann. Bezüglich der Widerstände R147-149 und R155-158: Die habe ich vorgesehen um ein paar Ohm in die Leitungen einzubauen. Primär für den Fehlerfall, dass mal Ausgang gegen Ausgang treibt. Wären diese Widerstände sinnvoll? Wenn ja, welcher Widerstandswert wäre denkbar? Ich dachte an 33..100 Ohm, aber mir stellt sich die Frage, ob das so praktikabel ist, da im Fehlerfall dann ja relativ viel Strom fließt. Vielen Dank für eure Mühe! Gruß, Tony
Tony S. schrieb: > Kannst du eine Empfehlung für einen Mux/Demux für die Resetleitung > aussprechen - quasi ein CD4053B aber SIngle Channel. Bei TI und Co gibt > es ja sehr viele im Katalog. Ich würde gerne einen bewährten > Einkanal-Mux/Demux einsetzen. Update: Bezüglich eines Mux/Demux für die Resetleitungen bin ich über den SN74LVC1G3157 gestolpert. http://www.ti.com/product/SN74LVC1G3157
Tony S. schrieb: > Anbei der komplette Schaltplan Den Reset Eingang des AVR kannst du ruhig mit Dioden verknüpfen, dann entfallen ein paar Transistoren und Widerstände. Etwa so:
1 | In o----|<|----+ |
2 | | |
3 | In o----|<|----+-----------+----[===]---o 3,3V |
4 | | |
5 | +-----||-----| GND |
6 | | 100nF |
7 | | |
8 | o AVR 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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.