Forum: Mikrocontroller und Digitale Elektronik Fragen zur Programmierung eines AVR Controllers


von avrdude (Gast)


Lesenswert?

Hey,
ich habe es gerade geschafft meinen ATTiny13 mit nem Raspberry Pi als 
Programmer zum Blinken zu bekommen. Jetzt stellen sich mir aber 2 
Fragen:
a) Zum Blinken benutze ich momentan Pin 5. Dieser wird aber auch für die 
SPI-Kommunikation mit dem PI benötigt. Wenn ich jetzt also meinen 
µController programmiert habe, sollte doch immer wechselnd eine Spannung 
an MOSI angelegt werden. Ist das schlecht für den Pi? Kann man ihn damit 
ausversehen zerstören? Schließlich kann ich ja nicht verhindern, dass 
kurz nach der Programmierung das Programm gleich anfängt zu laufen.

b) Im Datenblatt steht, dass Pin1 (=Reset) auch alternative Funktionen 
hat. Wie kann das sein? Schließlich wird das Programm doch sofort 
unterbrochen, sobald GND an Pin 1 anliegt.

Grüße

von R. F. (rfr)


Lesenswert?

avrdude schrieb:
> b) Im Datenblatt steht, dass Pin1 (=Reset) auch alternative Funktionen
> hat. Wie kann das sein? Schließlich wird das Programm doch sofort
> unterbrochen, sobald GND an Pin 1 anliegt.

Der reset wird auch ausgelöst, wenn das Programm einen Sprung nach 
(meistens) NULL vornimmt, oder wenn die Versorgungsspannung einen 
bestimmten Schwellwert für eine bestimmte Mindestdauer unterschreitet.

Robert

von Stefan F. (Gast)


Lesenswert?

Du kannst eine Fuse setzen, um den Pin 1 als normalen I/O Pin zu 
verwneden. Aber danach hast du keinen Reset Pin mehr, und daher auch 
kein ISP Interface mehr. Bedenke das!

Die I/O Pins des Raspberry Pi solltest du nicht kurzschließen. Schalte 
wenigstens einen 220 Ohm Widerstand in Reihe, um den Raspberry zu 
schützen. Allerdings muss dann wohl auch die LED zum Programmieren 
abgeklemmt werden.

Man könnte einen Widerstand wechselweise für beide Zwecke verwenden:
1
                    Jumper
2
                       o--------------o Raspi MOSI
3
AVR MOSI o-----[===]---o
4
             220 Ohm   o----|>|----| GND
5
                          LED

von Cyblord -. (cyblord)


Lesenswert?

R. F. schrieb:
> avrdude schrieb:
>> b) Im Datenblatt steht, dass Pin1 (=Reset) auch alternative Funktionen
>> hat. Wie kann das sein? Schließlich wird das Programm doch sofort
>> unterbrochen, sobald GND an Pin 1 anliegt.
>
> Der reset wird auch ausgelöst, wenn das Programm einen Sprung nach
> (meistens) NULL vornimmt,

Das stimmt nicht. Wie kommst du darauf? Du kannst im Programm 
rumspringen wie du lustig bist, auch nach PC=0, da wird kein Reset 
ausgelöst.

Reset wird durch (und nur durch) folgende Dinge ausgelöst:

- Externer Reset Pin
- POR
- Brownout
- Watchdog

von Heinz L. (ducttape)


Lesenswert?

Und um die 2. Frage auch zu beantworten, ja, den Reset-Pin kannst Du 
auch anderweitig belegen, indem Du die Fuses des Chips entsprechend 
setzt dass der Reset Pin keinen Reset mehr macht.

Dies solltest Du definitiv NUR UND AUSSCHLIESSLICH tun wenn Du absolut 
GENAU WEISST WAS DU TUST. Sonst kannst Du sehr wahrscheinlich den Chip 
nicht mehr programmieren, weil zum Programmieren über SPI der Reset 
"gehalten" werden muss. Geht kein Reset, geht kein Programmieren.

Anders gesagt: Tu's vorläufig nicht. Ignoriere einfach dass der Reset 
Pin auch andere Dinge kann, Du hast hinreichend andere Pins zur 
Verfügung die alle ganz prima I/O können. :)

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.