Hi, hab eine Frage bezüglich der Attiny-Controller. Bis jetzt hab ich mir einen Attiny88 ausgeguckt. Ist es möglich über einen ISP-Stecker auf der Platine die ISP-Schnittstellen von mehreren solchen Prozessoren anzusprechen (natürlich immer nur einer) ähnlich wie das beim JTAG möglich ist (JTAG-Chaining)? Muss man hier etwas beachten? Möchte nicht für jeden Attiny eine Steckerleiste für die ISP vorsehen, aus Platzgründen auf der Platine. Als Programmiergerät hab ich mir den AVR Dragon gekauft. Gruß Bernd
Du müßtest die verschiedenen Reset-Leitungen der einzelnen Controller multiplexen. Außerdem dürfen die jeweils nicht selektieren Controller die ISP-Pins nicht als Ausgänge benutzen.
Travel Rec. schrieb: > Du müßtest die verschiedenen Reset-Leitungen der einzelnen Controller > multiplexen. ok, so dass halt immer nur eine RST leitung "aktiv" ist. Kennst du hierzu eine platzsparende Möglichkeit? Travel Rec. schrieb: > Außerdem dürfen die jeweils nicht selektieren Controller > die ISP-Pins nicht als Ausgänge benutzen das wäre ok, weil ich die ISP Pins nur für die Programmierung benötige und ansonsten weder die Pins noch das SPI-Interface verwende.
Der ATTiny88 hat doch DebugWire. Habe ich bis jetzt noch nicht genutzt, nach meinem Kenntnisstand kann man darüber auch programmieren, oder? In diesem Falle bräuchtest Du nur eine einzige Leitung multiplexen, z.B. über einen beliebigen Analog-Multiplexer (wg. bidirektional).
Harald schrieb: > Der ATTiny88 hat doch DebugWire. das ist richtig; zum Debuggen reicht es, eine Line zu multiplexen. Wenn ich jedoch den Attiny programmieren möchte, weiß ich eben nicht, ob ich dann auch eine Auswahl bekomme, welchen der angeschlossenen Attinys ich programmieren möchte. Ansonsten muss ich wahrscheinlich den RST multiplexen, damit nicht alle Attinys gleichzeitig mit dem gleichen Code programmiert werden, oder? Gruß Bernd
Bernd schrieb: > Wenn ich jedoch den Attiny programmieren möchte, weiß ich eben nicht, ob > ich dann auch eine Auswahl bekomme, welchen der angeschlossenen Attinys > ich programmieren möchte. Per Analog-Multiplexer (4067 o.ä.) müsste man -RESET multiplexen. Diesen müsste man dann passend ansteuern. > Ansonsten muss ich wahrscheinlich den RST > multiplexen, damit nicht alle Attinys gleichzeitig mit dem gleichen Code > programmiert werden, oder? Alle gleichzeitig würde eh kollidieren, das haut nicht hin. Der Pin arbeitet im DebugWire-Modus bidirektional. Warum ziehst Du nicht alle -RESET Signale auf einen Pfostenstecker samt GND und verwendest einen externen Drehschalter mit n Positionen zum Selektieren des richtigen Controllers?
Harald schrieb: > Alle gleichzeitig würde eh kollidieren, das haut nicht hin. Der Pin > arbitet im DebugWire-Modus bidirektional. Warum ziehst Du nicht alle > -RESET Signale auf einen Pfostenstecker samt GND und verwendest einen > externen Drehschalter mit n Positionen zum Selektieren des richtigen > Controllers? der RST Pin ist gleichzeitig der Pin fürs Debuggen, richtig? Dann müsste ich quasi eine Steckerleiste spendieren, bei der ich dann per Jumper den entsprechenden IC Attiny auswähle, welchen ich debuggen oder programmieren möchte. Und die anderen Signale MOSI, MISO und CLK kann ich einfach an alle Attinys ranführen.
Travel Rec. schrieb: > Außerdem dürfen die jeweils nicht selektieren Controller > die ISP-Pins nicht als Ausgänge benutzen Sind die Pins beim Attiny per default zu Beginn als Ausgänge realisiert? Hab grad eine App-Note gelesen von Atmel, die selektieren zum Programmieren nicht die Reset-Line, sondern die CLK Line zum jeweiligen Prozessor, die anderen werden einfach an alle Attinys AVRs angeschlossen (MOSI, MISO, RST). Auszug daraus: If it is desired to have only one ISP interface on the target board, the ISPprogramming can be designed so that only one of the AVR devices is provided with a SPI clock at a time. All other SPI lines can then be shared. This way, several AVRs can be located “behind” the same protection resistors, since they are all held in RESET while the ISP reset line is activated. The gating of the ISP clock can be accomplished by use of, e.g., jumpers or DIP switches
Die SPI-Clock zu multiplexen, ist auch eine Möglichkeit. Es kommt immer darauf an, was die anderen Controller machen sollen, während einer programmiert wird. Für die reine Programmierung ist das sogar die bessere Variante. Man muß nur darauf achten, daß man beim Multiplexen keine zusätzlichen Clocs durch das Umschalten erzeugt, also ggf. mit PullUps oder PullDowns die SPI-Clock der einzelnen Controller auf definierten Idle-Pegel ziehen, wenn sie nicht selektiert ist.
Travel Rec. schrieb: > Die SPI-Clock zu multiplexen, ist auch eine Möglichkeit. ich würde dann beide Signale (CLK und RST) über Jumper führen, so dass ich immer Zugriff auf genau einen Controller habe. RST fürs Debuggen, falls ich es benötigen sollte und CLK fürs Programmieren. Der Vorteil von CLK wäre der, dass ich mich dann nicht mehr um die GPIO-Configuration der anderen ICs kümmern müsste; grad wenn diese noch gar nicht programmiert worden sind, werden die Pins (MOSI, MISO, CLK) ja wahrscheinlich als Ausgang configuriert werden nach dem ersten Starten. Die Jumper haben für mich den Vortei, dass sie am wenigsten Platz einnehmen und die Leitungen CLK nur ganz kleine Stubs erhalten. Das mit den Pullups für die CLKs (RST sowieso) ist ein guter Hinweis.
Bernd Schuster schrieb: > grad wenn diese noch > gar nicht programmiert worden sind, werden die Pins (MOSI, MISO, CLK) ja > wahrscheinlich als Ausgang configuriert werden nach dem ersten Starten. Bevor ein Programm im Controller diese Pins nicht explizit als Ausgang konfiguriert, sind alle Portpins am AVR (außer JTAG, falls vorhanden) Eingänge. Ein fabrikneuer AVR hat also erstmal nur Eingänge. Und das ist auch gut so.
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.