AVR-Programm hochladen

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From German to

Threaded View
Hallo

Ich bin Anfänger in Sachen Microcontroller und hab ne Frage:

Ich hab mir bei mikrocontroller.net ein testplatine und einen Atmega8
gekauft.
Jetzt möchte ich mit uisp unter Linux ein Programm auf den Controller
laden, aber ich hab nirgendwo eine Anleitung zu uisp gefunden. Muß man
da nicht zuerst auch irgendwelche Fusebits bearbeiten ?
Hat jemand einen Link zu einer Anleitung oder ähnliches ?

Danke im vorraus !


Matthias


Re: AVR-Programm hochladen
On Sun, 05 Oct 2003 13:08:33 +0200, Matthias Sinjen

Quoted text here. Click to load it

Hallo Matthias,

ich kenne mich leider nicht mit uisp aus. Unter Linux habe ich
"avrdude" verwendet - sehr vielseitig (Anzahl der µCs bzw. der
Interfaces). Da ist auch die Dokumentation sehr gut. Wenn dus
ausprobieren möchtest

http://www.nongnu.org/avrdude /

Viel Glück noch!
Johannes

Re: AVR-Programm hochladen


Quoted text here. Click to load it


Schau ich mir mal an, danke !

Gruß
Matthias


Re: AVR-Programm hochladen

Quoted text here. Click to load it

uisp --help z.B.?

Jedenfalls: ich vermute mal, Du verwendest den Parallelport-Programmer. Wenn
Dein Programmfile dann rom.hex heißt, lautet der richtige Befehl

uisp -dprog=avrisp --upload if=rom.hex

Mit

uisp -dprog=avrisp --verify if=rom.hex

kannst Du überprüfen, ob's geklappt hat. Fuses lesen und anzeigen tut man
mit

uisp -dprog=avrisp --rd_fuses

Geschrieben werden die Fuses mit --wr_fuse-l=xx / --wr_fuse_h=xx /
--wr_fuse_e=xx oder --wr_lock=byte. Vom Lockbyte würde ich aber die Finger
lassen... Und immer daran denken: 0 heißt Fuse gesetzt, 1 heißt Fuse
gelöscht! Insbesondere bei den CKSEL-Fuses aufpassen, vor allem, wenn man
keinen ext. Oszillator zur Hand hat!

Vor einem neuen Programmierzyklus muß immer erst gelöscht werden, das
funktioniert mit

uisp -dprog=avrisp --erase

Last not least kann man den Inhalt des avr mit

uisp -dprog=avrisp --download of=avr.hex

auslesen.

Quoted text here. Click to load it

Eigentlich nicht. Die ATmega haben alle einen internen Oszillator, der ist
auch standardmäßig aktiviert. D.h., die Dinger tun sofort, ohne externen
Takt.

Sieh Dir evtl. mal PonyProg2000 an, das ist am Anfang vielleicht
übersichtlicher zu handhaben. Uisp geht halt schön fix. Noch ein kleines
Skript, was das Löschen automatisiert und die Parameter reduziert:

----8<------
#!/bin/bash
uisp -dprog=avrisp --erase && \
uisp -dprog=avrisp --upload if=$1
----->8-----

Das Skript heißt bei mir progavr und wird mit "progavr rom.hex" aufgerufen.

HTH,
Sebastian


Re: AVR-Programm hochladen


Quoted text here. Click to load it



Hi

Ich benutze aber einen externen 4 MHz Quartz - da muß ich doch jetzt
Fuses setzen oder nicht ?

Ansonsten waren es genau die Infos die ich brauchte, danke !

Gruß
Matthias



Re: AVR-Programm hochladen

Quoted text here. Click to load it

Stimmt. Fuses machen sich mit PonyProg ganz gut. Aber dran denken: erst auf
"read" gehen, damit die aktuellen Einstellungen eingelesen werden! Mit uisp
muß man sich die Fuse-Bytes halt manuell zusammenbasteln. Geht auch, ist
aber fehleranfälliger. Einen Oszillator für "Notfälle" hast Du zur Hand?
Nur mit einem Quarz ist Dein AVR tot, wenn Du ihn versehentlich auf
"extenal clock" programmierst (CKSEL: 0000)! Der interne kann 1, 2, 4 und 8
MHz - warum dann einen Quarz für diese Frequenzen benutzen? Reicht Dir 1%
Taktgenauigkeit nicht aus? RS-232 funktioniert mit 4MHz extern auch nicht
wirklich (wenigstens nicht >= 9600 Baud), da muß ein "krummer" Takt her
(7.3728 MHz, vgl. Table 61 im Datenblatt).

Sebastian


Re: AVR-Programm hochladen
Sebastian Voitzsch schrieb:
  Einen Oszillator für "Notfälle" hast Du zur Hand?
Quoted text here. Click to load it


Also ich bin ja nun eher Anfänger und dachte ich nehm für die ersten
Versuche die Schaltung die auf diesem Testboard drauf ist. Das Board ist
das von shop.microcontroller.net (oder so ähnlich).

Das ist jetzt ein 4 MHz Quartz zwischen Pin 9 und 10 und dann jeweils
ein kleiner Keramikkondensator von den beiden Pins nach Masse.

Ist das jetzt nicht gut ? Welche Fuse-Bits muß ich denn nun setzen damit
das auch funktioniert ?


Gruß
Matthias


Re: AVR-Programm hochladen

Quoted text here. Click to load it

Die funktionieren auch mit 1MHz. Das Testboard enthält Quarz und
Kondensatoren nur, weil ältere AVRs keinen internen Oszillator enthalten.
 
Quoted text here. Click to load it
Gut? Schlecht? Es besteht halt kein Grund, an den Fuses rumzudaddeln. Aber
nun denn:

CKSEL sind die Bits 0-3 des Fuse-L-Bytes. Im Auslieferungszustand des
ATmega8 ist das Fuse-L-Byte
11  10  0001 --> 0xE1
BOD SUT CKSEL

BOD bleibt, wie es ist, SUT wird auf 11 geändert, CKSEL auf 1111 (SUT und
CKSEL0 zusammen ergeben 65ms Verzögerung nach dem Reset, CKSEL 3-1 legen
den Frequenzbereich 3-8MHz fest; Tabellen S. 24ff im Datenblatt):

11 11 1111 --> 0xFF.

Wie immer - keine Gewähr. Und sieh erstmal nach, ob uisp beim Auslesen der
Fuses tatsächlich einen Wert von 0xE1 für das L-Byte anzeigt. Giftig ist
der Wert 0000 für CKSEL, der stellt externen Takt ein.

Gruß,
Sebastian


Re: AVR-Programm hochladen
Sebastian Voitzsch schrieb:

Quoted text here. Click to load it



Ok, versteh ich das richtig ? Wenn ich an den Fuses nichts ändere, dann
läuft der uC mit einem internen Oszillator auf 1 MHz ? Das wäre dann
natürlich das optimale für mich.
Ignoriert der dann auch die externe Beschaltung oder muß ich dann den
Quartz und die beiden Kondensatoren auslöten ?

Gruß
Matthias



Re: AVR-Programm hochladen

Quoted text here. Click to load it

Du verstehst richtig.

Quoted text here. Click to load it

Ich würd's ausprobieren. Lt. Datenblatt sollen XTAL1 & 2 unverbunden
bleiben, wenn der int. Oszillator benutzt wird. Aber es sollte auch mit
Beschaltung funktionieren.

Sebastian


Re: AVR-Programm hochladen
Hallo,

Matthias Sinjen schrieb:

Quoted text here. Click to load it

Aber Achtung: Es gibt iirc recht große Toleranzen und eine
Temperaturabhängigkeit. Wenn Du einen genauen Takt (z.B. zur
Zeitmessung) brauchst, taugt der interne Oszillator nichts.

CU Christian
--
Christian Zietz  -  CHZ-Soft  -  czietz (at) gmx.net
WWW: http://chzsoft.com.ar/ - Fido: Christian Zietz@2:2437/74.9
We've slightly trimmed the long signature. Click to see the full one.
Re: AVR-Programm hochladen
Christian Zietz schrieb:

Quoted text here. Click to load it


Ok, werd dran denken wenn ich mal sowas mache. Bei mir gehts jetzt um
erste Schritte in der Programmierung...

Aber Danke für den Tipp.

Gruß
Matthias


Site Timeline