Forum: Mikrocontroller und Digitale Elektronik ISP-Chaining möglich bei Attiny?


von Bernd (Gast)


Lesenswert?

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

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

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.

von Bernd (Gast)


Lesenswert?

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.

von Harald (Gast)


Lesenswert?

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).

von Harald (Gast)


Lesenswert?

AVR Dragon hat ebenfalls DebugWire verfügbar.

von Bernd (Gast)


Lesenswert?

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

von Harald (Gast)


Lesenswert?

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?

von Bernd (Gast)


Lesenswert?

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.

von Bernd S. (mms)


Lesenswert?

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

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

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.

von Bernd S. (mms)


Lesenswert?

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.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

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
Noch kein Account? Hier anmelden.