Nehmen wir an, ich habe zwei AVRs, die an einen ISP-Anschluss angeschlossen sind.
Um in dieser Konfiguration nur eine MCU zu programmieren, muss ich eine (oder mehrere) Leitungen zu der MCU unterbrechen, die ich in diesem Moment nicht programmieren möchte.
Die erste Zeile fällt mir ein ist VCC, was großartig wäre, da ich Strom sparen würde. Aber wie wir wissen, wird der Strom durch digitale Leitungen geleitet, die Schutzdioden zu VCC und GND haben.
Also würde ich die RESET-Leitung wählen. Irgendwelche anderen Ideen?
Unterbrechen Sie MOSI, weil dies eine Ausgabe zurück zum Host ist, und unterbrechen Sie SCK, damit die andere MCU die Programmierbefehle nicht sehen kann.
bearbeiten - dies funktioniert immer noch nicht, da das Zurücksetzen während der Programmierung ein- und ausgeschaltet wird. Andere andere Datenleitungen müssen ebenfalls unterbrochen oder zurückgesetzt werden, wenn die anderen MCUs niedrig gehalten werden.
Ich denke, das ist der Grund, warum die meisten Designs einen separaten Programmierkopf für jede MCU verwenden.
Ich denke, um dies zu tun, müssen Sie den anderen Chip zurückgesetzt halten, um das IO High-Z (nicht angesteuert) zu machen.
Normalerweise macht das CS (Chip Select), aber hier ist kein Chip Select verfügbar. Siehe Reset als !CS (nicht Chipauswahl).
Update: Dieses Konzept funktioniert nicht für Atmel-Teile. Das Zurücksetzen auf Low hält nur den Programmiermodus. Sie können den Teil, den Sie nicht programmieren möchten, hochsetzen. Sie müssen jedoch sicherstellen, dass das Programm die SPI-Pins nicht verwendet.
Allerdings würde ich diesen Weg nicht gehen. Ich würde die Kosten eines Betreibers vergleichen, der das Kabel ändert, zwei Programmierer verwendet oder Multiplexer verwendet.
Jasen
Roman Matwejew
Jasen
Roman Matwejew
Jasen
Markus Müller
Jeroen3