Forum: Mikrocontroller und Digitale Elektronik Fragen bezüglich Programmierung über ISP (AVR)


von Günter (Gast)


Lesenswert?

Hallo!

Folgende Fragen hätte ich dazu:

1. Wenn der ISP-Programmer eine optionale Spannungsversorgung anbietet, 
ist es besser man verwendet diese oder würdet ihr dazu raten die 
Spannungsversorung über das Targetboard/die Schaltung zu gewährleisten?


2. Wenn die SPI Leitungen bereits in Verwendung sind soll man diese ja 
laut Atmel's Application Note AVR042 mit Widerständen bestücken.

Dazu hätte ich noch 2 Fragen:
  2.1. Woher weiß ich die minimale Größe der Widerstände (ich kann sie 
ja nicht beliebig groß wählen da die angeschlossenen Teile ja einen 
bestimmten Strom brauchen)?
  2.2. Aus der Application Note: "If additional devices are connected to 
the ISP lines, the programmer must be protected from any device, other
than the AVR, that may try to drive the lines."
Ich bin leider kein Elektrotechniker und verstehe nicht ganz was mit "to 
drive the lines" gemeint ist? Ist damit jeder Zustand außer Tri-State 
gemeint, oder wenn die Lines nach Masse bzw. +5V gelegt werden?


3. Muss man beim Programmieren von Fuse-bits mehr beachten, sprich 
sollten die Chips in dem Fall außerhalb der Schaltung programmiert 
werden?


LG

von Oliver S. (oliverso)


Lesenswert?

1. ja, nein, vielleicht, kommt drauf an - auf den Rest der Schaltung. 
Ich würde immer die Spannungsversorgung des Targets nutzen, wenn 
möglich.

2.1 ???

2.2 alles außer Tri-State

3. Nein, wenn du 2. abgesichert hast, und die Programmierung sicher 
läuft...

Oliver

von Günter (Gast)


Lesenswert?

Zu 2.1:

http://www.atmel.com/images/atmel-2521-avr-hardware-design-considerations_applicationnote_avr042.pdf

Auf Seite 7 Figure 3-2.

Wie groß muss ich die Widerstände mindestens wählen damit der ISP 
Programmierer ausreichend geschützt ist bzw. die Programmierung ohne 
Probeleme funktioniert?


Ansonsten Danke für die Antwort.

von Dussel (Gast)


Lesenswert?

Das hängt davon ab, wie viel Strom der Programmer liefern kann. Ich 
würde von 20 mA ausgehen. Um damit noch die 5 V aufrechtzuerhalten, 
braucht man einen Widerstand von mindestens 250 Ω. Ich würde 1 kΩ 
einbauen, denke aber, dass 10 kΩ auch passen sollten.
Wie weit der Widerstandswert nach oben kritisch ist, dürfte auch von der 
Leitungslänge abhängen.

von Günter (Gast)


Lesenswert?

Danke für die Antwort.

Aber die Widerstände sind in Serie zu den jeweiligen Bauteilen, nicht 
zum ISP Interface. Die höhe der Widerstände ist ja dadurch schon 
begrenzt nach oben. Aber die Antwort ändert sich dabei nicht, min. 250Ω 
wenn ich von 20mA ausgehe oder?

von Lurchi (Gast)


Lesenswert?

20 mA sind schon eine ganze Menge. Die meisten ISP Programmer werden 
eher weniger Strom liefern können. Ich würde eher so 1-5 K vorsehen: da 
sollte der Programmer stärker sein und zum treiben des AVR Einganges 
sollte es reichen.

von Günter (Gast)


Lesenswert?

Danke auch dir für die Antwort, aber wie vorhin erwähnt werden in der 
Application Note die Widerstände nicht zwischen µC und ISP sondern 
zwiscehn µC und den Verbrauchern gesetzt.

Wie geht man hier vor wenn ein SPI-Pin gleichzeitig als Output verwendet 
wird und z.B. an eine LED angeschlossen ist welche 25mA verbrät und 
deswegen nur einen 200Ω Widerstand davor gesetzt bekommt?  (Nur ein 
theoretisches Beispiel)

Das würde doch sicherlich Probleme beim Programmieren verursachen, oder 
verstehe ich das nicht richtig?


LG

von Mein grosses V. (vorbild)


Lesenswert?

Günter schrieb:
> Das würde doch sicherlich Probleme beim Programmieren verursachen, oder
> verstehe ich das nicht richtig?

Kommt drauf an, was der Programmer treiben kann. Die Atmel Programmer 
schaffen so einiges. Aber irgendwann ist natürlich Schluß.

Die sicherste Methode ist Jumper einzusetzen. In DIL nehmen die eher 
weniger Platz weg als Widerstände. Wenn man die drei zusammenklebt, 
erspart man sich auch, die Dnger einzeln draufzufummeln.

Vollkommen unproblematisch sind z.B. Schieberegister wie HC595 oder 
Taster, solange man der Versuchung widersteht, sie während der 
Programmierung zu drücken.

von Günter (Gast)


Lesenswert?

Danke!

Das mit den Tastern dachte ich mir natürlich schon :) aber wieso ist es 
bei Schieberegister auch unproblematisch? (zu geringer Strombedarf?) Ich 
habe bis jetzt noch nie eines verwendet, frage nur aus Neugier.

Jumper sind eine gute Idee, werd ich bei der nächsten Bestellung 
bedenken.

von Mein grosses V. (vorbild)


Lesenswert?

Günter schrieb:
> (zu geringer Strombedarf?)

Richtig. So gut wie gar nichts.

595er schieben die SPI-Daten einfach mit durch. Bei SRs ohne 
Ausgangslatch blinken die Leds, die da meistens angeschlossen sind, im 
Takt der Daten mit.

Aber auch ein Display stört nicht. Das zeigt dann evtl. irgendwelchen 
Unsinn an. Solange das nicht obzön ist, stört das aber auch nicht. 
Kaputt geht davon gar nichts. Weder der Brenner, noch die Peripherie.

Aufpassen muß man allerdings, wenn die Peripherie Ausgänge hat. Zum 
einen muß diese dann abgeschaltet werden. Das geschieht ganz 
automatisch, indem man den Enable-Pin nicht fest auf GND legt, sondern 
mit dem Controller schaltet. Zusätzlich muß ein Pullup ran.

Und dann kommt der Widerstand aus der AN zum tragen. Der schützt nämlich 
ggf. den Ausgang der Peripherie vor dem Programmer und den Programmer 
vor einem eventuellen Kurzschluß. Dafür nimmt man i.a.R. ein paar KΩ.
Oder man wählt die Jumperlösung. Dann kann man den Enable auch wieder 
auf GND legen.

von Günter (Gast)


Lesenswert?

Danke für deine ausführliche Erklärung!

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.