Forum: Mikrocontroller und Digitale Elektronik Atmega32 Programmierung - grundsätzliches


von Michael (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich habe ein paar grundsätzliche Fragen "ob das so geht" da ich in dem 
Gebiet noch nicht viel Erfahrung habe.

Folgendes:
Ich habe im AVR Studio ein Programm geschrieben welches ich zur Zeit auf 
ein Hobby-Roboter-board mit einem Atmega32 lade und dort laufen lasse. 
Auf dem controller ist werksseitig ein Bootloader integriert, und die 
hex file mit mittels einem kleinen Loaderprogramm (beim Roboter mit 
dabei) per UART auf den Controller geladen. Soweit so gut.

Nun, meine Frage:
Ich möchte nun selbst einen Prototypen mit einem ATMEGA32 bauen, diesen 
aber per ISP programmieren. Muss ich hierbei etwas beachten wegen 
Bootloader/kein Bootloader und Schnittstelle UART/SPI?
Oder kann ich einfach die ISP Schnittstelle anschließen (siehe 
schematic) und per Programmierdongle das Programm aufspielen.

von Klaus W. (mfgkw)


Lesenswert?

Wenn du per SPI flashen willst, brauchst du kein UART und keinen 
Bootloader.

Nur den Programmierer (AVRISPmkII o.ä.), Kabel und Spannungsversorgung.

von Krapao (Gast)


Lesenswert?

Atmel hat eine Appnote für Designs mit ISP und Benutzung eines 
SPI-Busses. Der SPI Bus zu den externen ICs (hier SPI EEPROM) ist dort 
mit Serienwiderständen vor den ISP-Signalen geschützt.

http://www.mikrocontroller.net/articles/AVR_In_System_Programmer#ISP-Pins_am_AVR_auch_f.C3.BCr_andere_Zwecke_nutzen

Bei dem 74HC409 am SPI Bus verstehe ich deine Schaltung nicht. Ich hätte 
erwartet, dass du eine "Enable" Leitung hast, die unterscheidet, ob du 
das SPI EEPROM oder das 74HC409 ansprechen willst. Derzeit ist das 
74HC409 immer aktiv.

Überleg dir nochmal intensiv, ob du wirklich AVREF fest auf externe 5V 
klemmen willst.

Es ist bad practice wenn man am µC auf die Abblockkondensatoren 
zwischen Vcc und GND zu verzichtet.

von Michael (Gast)


Lesenswert?

Ouh, Fehler, die AVCC soll eigentlich mit 10nF auf Masse.

Der 74HC409 is immer aktiv, ja. Ich unterscheide ja mit der "CS" leitung 
am EEPROM ob es aktiv sein soll, damit es inaktiv ist wenn ich mit dem 
HC kommuniziere. Sollte doch kein Problem sein, oder? Hab das so von dem 
bestehendem Board übernommen, daamit ich später wenn ich vom einen aufs 
andre Board switchen will nicht die Software/lib anfassen muss, 
zumindest nicht diesen Teil.

von Krapao (Gast)


Lesenswert?

Ich habe kein Datenblatt des 74HC409 und kann daher die Funktion nicht 
exakt nachvollziehen (z.B. Flackern dann die LEDs usw.).

Mir gefällt vom Design her nicht, dass das 74HC409 ebenfalls aktiv ist, 
wenn dein µC mit dem SPI EEPROM redet. Möglicherweise hat es danach 
einen undefinierten Status und du musst es nochmal korrekt ansprechen.

Technisch könnte man vielleicht die CS Leitung des SPI EEPROMS über 
einen Logikbaustein (NOT?) mit der Enable Leitung des 74HC409 
verheiraten und so nur einen Bausteil auf dem SPI-Bus ansprechbar 
machen. Oder du opferst eine weitere I/O-Leitung deines µCs.

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.