Fragen zur Programmierung eines AVR Controllers

Gast #4499061
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
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
Gast
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
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
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. :)

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.