www.mikrocontroller.net

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


Autor: Bernd (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Bernd (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Harald (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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).

Autor: Harald (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
AVR Dragon hat ebenfalls DebugWire verfügbar.

Autor: Bernd (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Harald (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Bernd (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Bernd Schuster (mms)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Bernd Schuster (mms)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.