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