Forum: Mikrocontroller und Digitale Elektronik AVR-Programmer selber bauen


von Jonathan A. (jonathan_a53)


Angehängte Dateien:

Lesenswert?

Hi,

ich hab schon erfolgreich einen Arduino als Programmer zum Laufen 
gebracht; jetzt möchte ich das mit einem µC und dazu nötigen Bauteilen 
machen. Dazu hab ich schon 
http://www.ullihome.de/wiki/USBAVRLab/Firmwares/AVRISPmkII gefunden. 
Dieser ist genau das, was ich mir vorstelle, nur dass ich keinen ATmega8 
habe. Funktioniert dies auch, wenn ich einen ATmgea328P oder ATtiny84 
einsetze (diese hab ich gerade da)? Die Firmware liegt zum Download 
leider nur im hex-Format da. Den Schaltplan hab ich mal in einer PDF 
heruntergeladen. Von wo, weiss ich nicht mehr; habs also im Anhang. (Ich 
weiss nicht, ob mikrocontroller.net PDFs als Anhang annimmt. Falls 
nicht, lad ich es auf einen anderen Server hoch und poste datu den 
Link.)

Kurz gefasst:
Ich möchte einen AVR-Programmer bauen, und möchte wissen, ob ich einen 
ATmega328P oder ATtiny84 statt dem ATmega8 benutzen kann.


Danke
cheeseburgerohnekaese

von Thomas E. (thomase)


Lesenswert?

Jonathan A. schrieb:
> ob ich einen ATmega328P oder ATtiny84 statt dem ATmega8 benutzen kann.
Nein. Wenn du nur das Hexfile hast, geht das nicht.
Auch mit Sourcecode wirst du diesen erstmal anpassen müssen. Danach 
würde es mit dem 328 auf jeden Fall gehen.

mfg.

von Jonathan A. (jonathan_a53)


Lesenswert?

Thomas Eckmann schrieb:
> Auch mit Sourcecode wirst du diesen erstmal anpassen müssen.

Muss da die PORTs, etc. anpassen; oder noch etwas?

Danke
cheeseburgerohnekaese

von Michael D. (etzen_michi)


Lesenswert?

Hbe ihn mir jetzt nicht angeschaut aber:

Es müssen alle Register angepasst werden.

Timer, Port`s, Speicher, StatusRegister, ConfigurationsRegister ....

von Jonathan A. (jonathan_a53)


Lesenswert?

Ok. Danke
cheeseburgerohnekaese

von Thomas E. (thomase)


Lesenswert?

Jonathan A. schrieb:
> Muss da die PORTs, etc. anpassen; oder noch etwas?
Bei den Ports musst du nichts ändern.
Aber so ziemlich alles andere. Der 328 hat mehr Register, diese liegen 
folglich an anderen Adressen und werden auch anders konfiguriert.

mfg.

von Michael D. (etzen_michi)


Lesenswert?

Thomas Eckmann schrieb:
> Bei den Ports musst du nichts ändern.


Beim ATmega8:
PORTB: 0x18, DDRB: 0x17, PINB: 0x16
PORTC: 0x15, DDRC: 0x14, PINC: 0x13
PORTD: 0x12, DDRD: 0x11, PIND: 0x10

Beim ATmega328P:
PORTD: 0x0B, DDRD: 0x0A, PIND: 0x09
PORTC: 0x08, DDRC: 0x07, PINC: 0x06
PORTB: 0x05, DDRB: 0x04, PINB: 0x03

von Thomas E. (thomase)


Lesenswert?

Michael D. schrieb:
> Beim ATmega8:
> PORTB: 0x18, DDRB: 0x17, PINB: 0x16
> PORTC: 0x15, DDRC: 0x14, PINC: 0x13
> PORTD: 0x12, DDRD: 0x11, PIND: 0x10
>
> Beim ATmega328P:
> PORTD: 0x0B, DDRD: 0x0A, PIND: 0x09
> PORTC: 0x08, DDRC: 0x07, PINC: 0x06
> PORTB: 0x05, DDRB: 0x04, PINB: 0x03
Und was willst du damit zum Ausdruck bringen?
Wen interessieren die Adressen der Register? Darum kümmert sich der 
Compiler solange die Namen für die Portregister und die Pins gleich 
sind.

mfg.

von Michael D. (etzen_michi)


Lesenswert?

Ich war jetzt davon ausgegangen das er nur das Hex-File hat.

von Peter R. (pnu)


Lesenswert?

Mein Rat:

Also entweder einen Programmer mit atmega8 bauen oder ein bestehendes 
atmega8-Programm auf einen 328 umstellen.

Beides aber gleichzeitig zu tun dürfte die Probleme quadrieren.

Schau Dir  http://www.loetlabor.org/Ulliasp
und:       http://www.loetlabor.org/USBasp     an.

Dort findest Du ein Angebot für einen Bausatz zu ca. 5Euro.
Dann zuerst die atmega8-Version bauen, danach kanns ja eine mit 328 
werden.

Bei älteren Softwareversionen von Ulli ist meines Wissens auch der 
Sourcecode für den bootloader zu finden.

von Jonathan A. (jonathan_a53)


Lesenswert?

Hab noch weiter gesucht und bin auf der der Seite von USBasp 
(http://www.fischl.de/usbasp/) gelandet. Bei diesem kann man entweder 
einen ATmega8 oder ATmega88 verwenden. Jetzt meine Frage: Kann ich bei 
diesem auch einen ATmega328P verwenden, weil es nur ein Datenblatt für 
den ATmega88, ATmega328P, und noch ein paar gibt?

Danke
cheeseburgerohnekaese

von Jonathan A. (jonathan_a53)


Lesenswert?

Muss ich für den USBasp den Bootloader von der Website (fischl.de) 
nehmen?

Danke
cheeseburgerohnekaese

von Thomas E. (thomase)


Lesenswert?

Jonathan A. schrieb:
> Jetzt meine Frage: Kann ich bei
> diesem auch einen ATmega328P verwenden, weil es nur ein Datenblatt für
> den ATmega88, ATmega328P, und noch ein paar gibt?
Wenn du den Sourcecode von der 88er-Version hast, kannst du das einfach 
für den 328 neu kompilieren. Ohne Änderungen.
Hast du nur das Hexfile, geht das nicht.

Jonathan A. schrieb:
> Muss ich für den USBasp den Bootloader von der Website (fischl.de)
> nehmen?
Grundsätzlich kannst du die Anwendung auch per ISP flashen und auf den 
Bootloader verzichten. Es sei denn, es sind da irgendwelche 
Schweinereien eingebaut, die es erforderlich machen, daß vorher der 
Bootloader gestartet
wird. Aber normalerweise macht man so einen Unsinn nicht.

Das Hexfile für den 88er Bootloader nützt dir alleine aber auch nichts, 
da das in den Bootsektor des 88er geflasht wird. Dieser Speicherbereich 
ist aber beim 328er im Applikationssektor.

Das wird dieses Wochenende nichts mehr. Bestell' beim Lieferanten deines 
Vertrauens den 88er und verschieb' das auf Dienstag.

mfg.

von Jonathan A. (jonathan_a53)


Lesenswert?

Also von dem USBasp hab ich zum Glück den Source Code. Also einfach neu 
kompilieren? Ich habs jetzt mal auf der schnelle mit der 88er-HEX 
getestet. Der AVR tut noch und die rote LED leuchtet, wie sie es soll.

Danke
cheesebugerohnekaese

von Jonathan A. (jonathan_a53)


Lesenswert?

Noch was: Aus dem Schaltplan müsste ich alles haben; bis auf die zwei 
Dioden, die an den USB-Leitung hängen. Wenn ich das richtig ergooglet 
habe (Beitrag "Warum Zener Diode bei USB asp (und anderen)"), sind diese dafür da, 
weil die Datenleitung von USB mit 3,3V arbeitet. Wenn ich das: 
http://www.electronicspoint.com/using-1n4001-zener-diode-t124073.html 
richtig verstanden hab, müsste ich doch 2 1N4001 hintereinander schalten 
können und ich hab meine 3,3V. Oder? Falls nicht, ich hab auch 
Spannungregler, die auf 3,3V regeln. Würde sowas gehen, oder ist das zu 
langsam (Schaltgeschwindigkeit)?

Danke
cheeseburgerohnekaese

von Thomas E. (thomase)


Lesenswert?

Jonathan A. schrieb:
> Ich habs jetzt mal auf der schnelle mit der 88er-HEX
> getestet. Der AVR tut noch und die rote LED leuchtet, wie sie es soll.
Der Programmer besteht aber aus mehr als einer LED, die zufällig 
leuchtet.

Beim 168/328 ist die Vektortabelle doppelt so lang wie beim 48/88.
Somit fängt das eigentliche Programm im Flash auch dementsprechend 
später an.
Das ist auch ein Grund dafür, daß das Programm für den 168/328 etwas 
länger ist als für die beiden Kleinen.

mfg.

von Jonathan A. (jonathan_a53)


Lesenswert?

Thomas Eckmann schrieb:
> Jonathan A. schrieb:
>> Ich habs jetzt mal auf der schnelle mit der 88er-HEX
>> getestet. Der AVR tut noch und die rote LED leuchtet, wie sie es soll.
> Der Programmer besteht aber aus mehr als einer LED, die zufällig
> leuchtet.
>
> Beim 168/328 ist die Vektortabelle doppelt so lang wie beim 48/88.
> Somit fängt das eigentliche Programm im Flash auch dementsprechend
> später an.
> Das ist auch ein Grund dafür, daß das Programm für den 168/328 etwas
> länger ist als für die beiden Kleinen.
>
> mfg.

Ja. Ich werd das noch richtig machen. Das war halt, bevor ich das noch 
nicht wusste. :)

von Thomas E. (thomase)


Lesenswert?

Jonathan A. schrieb:
> Würde sowas gehen, oder ist das zu langsam (Schaltgeschwindigkeit)?
Wofür soll der zu langsam sein?
Entscheidend ist die minimale Eingangsspannung.

> 2 1N4001
Kannst auch eine rote Leuchtdiode nehmen. Macht man bei VUSB auch.

mfg.

von Coder (Gast)


Lesenswert?

Mich würde mal interessieren, warum man den eine Programmier-Hardware 
selber bauen möchte?

von Jonathan A. (jonathan_a53)


Lesenswert?

Thomas Eckmann schrieb:
>> 2 1N4001
> Kannst auch eine rote Leuchtdiode nehmen. Macht man bei VUSB auch.

Aber die Dioden gehen auch?

Und muss ich das dann so schalten (USB hier ohne +5V und GND):


|-----+ D+  -----------+
| USB |                |
|-----+ D-  ----+     | | 1N4001 2x
                |     | |
     1N4001 2x | |     |
               | |     |
                |      |
GND  -----------+------+


UND: Muss ich dann nur eine LED nehmen?


Danke
cheeseburgerohnekaese

von Jonathan A. (jonathan_a53)


Lesenswert?

Coder schrieb:
> Mich würde mal interessieren, warum man den eine Programmier-Hardware
> selber bauen möchte?

1.) Weil ich dadurch lerne.
2.) Weil es mir Spaß macht. ;)


Danke
cheeseburgerohnekaese

von Thomas E. (thomase)


Lesenswert?

Jonathan A. schrieb:
> UND: Muss ich dann nur eine LED nehmen?
Guck dir mal an, wie die das hier gemacht haben:
http://www.recursion.jp/avrcdc/cdc-spi.html#schematic

mfg.

von Coder (Gast)


Lesenswert?

Spaß ist immer ein guter und unschlagbarer Grund. Allerdings PDI und 
DebugWire kann der wohl nicht?

von Jonathan A. (jonathan_a53)


Lesenswert?

Laut den Bildern von deinem Link, ist zwischen dem µC und dem 
USB-Stecker jeweils ein 68 Ohm Wiederstand und an der einen Leitung ein 
1,5 kO Pullup-Wiederstand. Die LED, die dort drin ist hängt an den 5V, 
die USB liefert. Sehe ich das richtig?

Danke
cheeseburgerohnekaese

von Jonathan A. (jonathan_a53)


Angehängte Dateien:

Lesenswert?

Hier (http://www.recursion.jp/avrcdc/cdc-spi.html#schematic) sieht der 
Bereich, der von der USB-Buchse zum µC geht ganz anders aus als bei dem 
USBasp (siehe Anhang) kann ich den USBasp mit der Schaltung von 
http://www.recursion.jp/avrcdc/cdc-spi.html#schematic nehmen oder muss 
ich dazu die Schaltung aus dem Anhang nehmen?

Danke
cheeseburgerohnekaese

von Thomas E. (thomase)


Lesenswert?

Jonathan A. schrieb:
> Sehe ich das richtig?
Die Schaltung wird vom USB versorgt.
Hinter der LED sind 3,xV als Spannung für den Controller. Bisschen 
seltsam, funktioniert aber.
Die 68 Ohm Widerstände sind zum Schutz, der 1K5-Pullup dient dazu, daß 
der PC merkt, daß da was angestöpselt wurde.

mfg.

von Jonathan A. (jonathan_a53)


Lesenswert?

Danke. Jetzt verstehe ich das. :)
cheeseburgerohnekaese

von Jonathan A. (jonathan_a53)


Lesenswert?

Mir fällt gerade ein, dass der Controller zum laufen mit 8MHz und mehr 
4.5 -5.5V braucht. Wieso funktioniert dann das?

Danke
cheeseburgerohnekaese

von Jonathan A. (jonathan_a53)


Lesenswert?

WIESO hängt die LED ohne Wiederstand da dran. Das hat mir grad ne LED 
zerschossen (das ist zwar net schlimm um die LED, aber ...). Mein 
USB-Anschluss geht zum Glück noch. Ist das, weil der Controller noch 
hintendran hängt???

Danke
cheeseburgerohnekaese

von Thomas E. (thomase)


Lesenswert?

Jonathan A. schrieb:
> Schaltung aus dem Anhang
Bei der LED-Geschichte wird der Controller mit 3,xV versorgt, sodaß er 
gar keine 5V auf den USB geben kann.
Bei der anderen Schaltung wird der Controller mit 5V versorgt und würde 
demzufolge auch 5V auf den USB geben. Dazu sind die Z-Dioden.
Jetzt stellt sich mir allerdings gerade die Frage, ob die Schaltung wenn 
sie mit 3,xV versorgt wird, noch zuverlässig programmieren kann. Da 
schafft man sich u.U. einen Nebenkriegsschauplatz, den man nicht 
gebrauchen
kann.

> Oder? Falls nicht, ich hab auch
> Spannungregler, die auf 3,3V regeln. Würde sowas gehen, oder ist das zu
> langsam (Schaltgeschwindigkeit)?
Jetzt verstehe ich auch erst, wie das gemeint ist. Ich denke mal nicht, 
daß das geht, wenn man die Daten über den Spannungsregler schiebt.
Da wären wohl doch die 4001 besser geeignet. Nur nicht 2, sondern 5 
Stück in Reihe. Damit hättest du dann in Durchflussrichting ca. 3,5V 
Sopannungsabfall. Also in etwa wie die Z-Diode.
Etwas halbgar ist das schon. Aber zum Testen wird es wohl gehen. Bis man 
wieder Z-Dioden kaufen kann.

> Wieso funktioniert dann das?
Die Frage sollte man sich nicht wirklich stellen. Aber mit tiny45, 
interner Takt und mega 48 mit 20MHz funktioniert es. Die Arduinos laufen 
auch mit 3,3V und 16MHz, obwohl sie das eigentlich gar nicht dürften.

> WIESO hängt die LED ohne Wiederstand da dran. Das hat mir grad ne LED
> zerschossen (das ist zwar net schlimm um die LED, aber ...). Mein
> USB-Anschluss geht zum Glück noch. Ist das, weil der Controller noch
> hintendran hängt???
Der Controller ist der Vorwiderstand. Da muss eine 20mA LED rein.
2mA ist zu klein. Der Controller läuft dann mit 3,3V.

mfg.

von Jonathan A. (jonathan_a53)


Lesenswert?

Thomas Eckmann schrieb:
>> Oder? Falls nicht, ich hab auch
>> Spannungregler, die auf 3,3V regeln. Würde sowas gehen, oder ist das zu
>> langsam (Schaltgeschwindigkeit)?
> Jetzt verstehe ich auch erst, wie das gemeint ist. Ich denke mal nicht,
> daß das geht, wenn man die Daten über den Spannungsregler schiebt.
> Da wären wohl doch die 4001 besser geeignet. Nur nicht 2, sondern 5
> Stück in Reihe. Damit hättest du dann in Durchflussrichting ca. 3,5V
> Sopannungsabfall. Also in etwa wie die Z-Diode.
> Etwas halbgar ist das schon. Aber zum Testen wird es wohl gehen. Bis man
> wieder Z-Dioden kaufen kann.

Dann nehme ich wohl diese Lösung, weil ich grad letztens 30 1N4001 
bestellt hab. D.h.: Ich nehme die Schaltung aus dem Schaltplan nur statt 
den Z-Dioden jeweils 5x 1N4001. Wenn ich irgendwo falsch liege, bitte 
sagen; ich will ja nichts kaputt machen. :)


Danke
cheeseburgerohnekaese

von Jonathan A. (jonathan_a53)


Lesenswert?

Kann ich statt dem 4.7µF-Kondensator auch einen mit 10µF nehmen? Und 
evtl. sagen, was der macht? Dann könnte ich evtl. auch selber drauf 
kommen.

Danke
cheeseburgerohnekaese

von Jonathan A. (jonathan_a53)


Lesenswert?

Oder einen mit 47µF? Weil davon hab ich ganz viele.

Danke
cheeseburgerohnekaese

von Jonathan A. (jonathan_a53)


Lesenswert?

Hab grad nen Kondensator mit 4.7µF gefunden. Allerdings hat der eine 
Spannungfestigkeit von 350V. Ist das schlimm (ich denke nicht)?

EDIT: Hat sich geklärt. Ist nicht schlimm.


Danke
cheeseburgerohnekaese

von Thomas E. (thomase)


Lesenswert?

Jonathan A. schrieb:
> Kann ich statt dem 4.7µF-Kondensator auch einen mit 10µF nehmen? Und
> evtl. sagen, was der macht? Dann könnte ich evtl. auch selber drauf
> kommen.
Das kommt so genau nicht drauf an. Ist ja kein Taktgeber. Der soll die 
Spannung stabil halten. Nur kleiner sollte man ihn nicht machen, dann 
verfehlt er evtl. seinen Sinn.
Und? Läuft das schon?

mfg.

von Jonathan A. (jonathan_a53)


Lesenswert?

Nein. Noch nicht. War grad weg und suche noch zwei 68 Ohm Widerstände 
auf alten Platinen. :)

EDIT: Kann ich auch 470 Ohm statt 68 Ohm nehmen? Bis jetzt hab ich nur 
einen 68 Ohm Widerstand gefunden.


cheeseburgerohnekaese

von Jonathan A. (jonathan_a53)


Lesenswert?

Und tut es ein 100 Ohm Widerstand auch? Ich hab fast alle, nur nict 68 
Ohm.

Danke
cheeseburgerohnekaese

von Jonathan A. (jonathan_a53)


Lesenswert?

This can be attributed to the voltage divider consisting of the 68 ohm 
resistor and the 1.5k ohm pull up resistor on the device. This causes a 
voltage difference of 68 / (68 + 1500) * (3 volts) = 130 mV to occur.
Quelle: 
http://lackawanna.hackhut.com/2011/10/04/using-v-usb-and-the-hid-class-part-i/

Wenn ich da meine 100 Ohm und meine 2,2 kO einsetze, kommt da auch 
ungefähr 130 mV raus. Müsste das dann also funktionieren?


Danke
cheeseburgerohnekaese

von Thomas E. (thomase)


Lesenswert?

Jonathan A. schrieb:
> Müsste das dann also funktionieren?
Denke schon.
Das hat evtl. negative Auswirkungen auf die mögliche Kabellänge.
Maximallänge bei USB ist 5m.
Bei den üblichen 1,8m sollte das keine Auswirkungen haben.

mfg.

von Jonathan A. (jonathan_a53)


Lesenswert?

Ok. Danke. Hab doch noch einen letzten 68 Ohm Widerstand. Hab jetzt die 
Schaltung auf dem Steckbrett exact so, wie im Schaltplan, bis auf die 
Dioden (jetzt jeweils 5x 1N4001 in Reihe), aufgebaut. Hatte erst schiss 
an den Lappi anzuschliessen, weil wenn ich was falsch gemacht hab, ... 
Aber ich habs angeschlossen und es hatte Strom wie es Strom haben soll 
und keinen Kurzschluss. Es kommt nur eine Meldung, dass ein USB-Gerät da 
ist, aber nicht erkannt wurde. Genaure Infos über das Gerät sind nicht 
vorhanden. Also ATmega-Problem. Oder liegt das ein meinen "Fake-Dioden"? 
Oder was?

Danke
cheeseburgerohnekaese

von Jonathan A. (jonathan_a53)


Lesenswert?

EDIT zu POST [15.07.2012 23:15]:

Fehlercode unter Windows:
----------------------------------
Dieses Gerät wurde angehalten, weil es Fehler gemeldet hat. (Code 43)


Danke
cheeseburgerohnekaese

von Thomas E. (thomase)


Lesenswert?

Jonathan A. schrieb:
> Hatte erst schiss
> an den Lappi anzuschliessen, weil wenn ich was falsch gemacht hab, ...
Immer einen Hub dazwischen hängen.
Wenn dann was schief geht, ist der 499-Cent-Hub im Arsch und nicht der
499-Euro-Laptop.
Zumindest ist sie Wahrscheinlichkeit groß, daß dem Laptop nichts 
passiert.

> Dieses Gerät wurde angehalten, weil es Fehler gemeldet hat. (Code 43)
D+/D- vertauscht?

Spannung auf D+/D- zu gering?
Da kommt jetzt wieder die halbgare 5-Dioden-Schaltung ins Spiel. Einfach 
mal messen, ob die 3,5V auch da sind. 1N4001 brauchen, wie alle Dioden, 
auch ein wenig Strom, um sich auf 0,7V einzustellen. Und zwar einiges 
mehr als eine 1N4148. Möglicherweise ist der zu gering.
Also besser Z-Dioden besorgen.

(Richtiger) Treiber installiert?

Richtiges Programm auf Atmega geflasht?

mfg.

von AVR Bastler (Gast)


Lesenswert?

Schaut so aus, ob kein Treiber auf dem Lappi installiert wurde. 
Stichwort LibUSB.

von Thomas E. (thomase)


Lesenswert?

AVR Bastler schrieb im Beitrag #2756530:
> Schaut so aus, ob kein Treiber auf dem Lappi installiert wurde.
Möglich. Aber "Code 43" ist leider eine genauso aussagekräftige 
Fehlermeldung wie "kaputt".

mfg.

von Jonathan A. (jonathan_a53)


Lesenswert?

Thomas Eckmann schrieb:
> Immer einen Hub dazwischen hängen.
> Wenn dann was schief geht, ist der 499-Cent-Hub im Arsch und nicht der
> 499-Euro-Laptop.
> Zumindest ist sie Wahrscheinlichkeit groß, daß dem Laptop nichts
> passiert.

Gut zu wissen.



Thomas Eckmann schrieb:
>> Dieses Gerät wurde angehalten, weil es Fehler gemeldet hat. (Code 43)
> D+/D- vertauscht?

Nein. Sogar öfters überprüft. Hatte ich auch schon gedacht. Hier könnte 
nur der Fehler sein, wenn 
http://4.bp.blogspot.com/-Jm5HRvqog8E/T8em9sKzQlI/AAAAAAAABq8/IqXq_cL-JWw/s1600/color_code_usb_pins.JPG 
nicht stimmt!




Thomas Eckmann schrieb:
> Spannung auf D+/D- zu gering?
> Da kommt jetzt wieder die halbgare 5-Dioden-Schaltung ins Spiel. Einfach
> mal messen, ob die 3,5V auch da sind. 1N4001 brauchen, wie alle Dioden,
> auch ein wenig Strom, um sich auf 0,7V einzustellen. Und zwar einiges
> mehr als eine 1N4148. Möglicherweise ist der zu gering.
> Also besser Z-Dioden besorgen.

Leider hab ich letztens die Sichrung meines Multi-Meters zum Messen 
zerschossen; ... Gibt es noch eine andere Möglichkeit? Aber um die 
Z-Dioden, komm ich wohl nicht drum herum. Ich vermute, dass hier der 
Fehler ist.

Thomas Eckmann schrieb:
> (Richtiger) Treiber installiert?
AVR Bastler schrieb im Beitrag #2756530:
> Schaut so aus, ob kein Treiber auf dem Lappi installiert wurde.
> Stichwort LibUSB.

Ich hatte schon mal Probleme mit uC und hab deswegen LibUSB schon 
installiert. Sonst hab ich keine anderen Treiber dazu gefunden.


Danke
cheeseburgerohnekaese

von Jonathan A. (jonathan_a53)


Lesenswert?

EDIT zu POST [16.07.2012 00:37]:

Thomas Eckmann schrieb:
> Richtiges Programm auf Atmega geflasht?

Ich glaub ja. Ich hab in der Makefile hab ich die Fuses, den Prozessor, 
den Port die Baud-Rate und die CPU-Geschwindigkeit eingestellt und so 
alles neu kompiliert. Der Compiler gab keine Warnings und keine Errors 
aus.
Der Code ist für den ATmega8  ATmega48  ATmega88 entwickelt. Aber das 
hatten wir ja schon oben geklärt. Sonst müsste der Code richtig sein.
Falls ich doch irgendwo falsch liege einfach wieder posten.



Danke
cheeseburgerohnekaese

von AVR Bastler (Gast)


Lesenswert?

Mögliche weitere Fehlerquellen:

Es wird ein Quarz ungleich 12MHz verwendet. Das Timing bei USB ist sehr 
kritisch und ein umprogrammieren der Timer allein ist nicht erfolgreich.

Sind die 4001 Dioden richtig gepolt. Im Gegensatz zu den empfohlenen 
Zenerdioden müssen diese mit den Kathoden Richtung Masse verwendet 
werden (in Durchlassrichtung, nicht in Sperrrichtung).

von Jonathan A. (jonathan_a53)


Lesenswert?

AVR Bastler schrieb im Beitrag #2756589:
> Es wird ein Quarz ungleich 12MHz verwendet. Das Timing bei USB ist sehr
> kritisch und ein umprogrammieren der Timer allein ist nicht erfolgreich.

Ich hab letztens mehre Qurze bestellt und verwende im Momenen exact 12 
MHz.
Der Rest des Schaltplans hab ich exact aufgebaut, jetzt auch mit den 68 
Ohm Widerständen, die ich zu erst nicht gefunden hatte.




AVR Bastler schrieb im Beitrag #2756589:
> Sind die 4001 Dioden richtig gepolt. Im Gegensatz zu den empfohlenen
> Zenerdioden müssen diese mit den Kathoden Richtung Masse verwendet
> werden (in Durchlassrichtung, nicht in Sperrrichtung).

Ah. Ok. Hatte ich falsch. Danke!! Mein Programmer tut aber immer noch 
nicht. :(


Danke
cheeseburgerohnekaese

von Jonathan A. (jonathan_a53)


Lesenswert?

Jetzt funktioniert es etwas mehr. Es wird als USBasp erkannt, findet 
aber keine Treiber. Ich suche nochmal danach. Problem war der 
4.7uF-Kondensator. Der ist mir beim Umpolen der Dioden "rausgeruscht" 
und hatte keine Kontakt mehr.

EDIT: Treiber aus dem Ordner /bin/win-driver/ automatisch installieren 
lassen und es wird erkannt. Danke für jede Hilfe. Jetzt teste ich, ob es 
auch andere MCU's programmiert. :)


Danke
cheeseburgerohnekaese

von Jonathan A. (jonathan_a53)


Lesenswert?

Das Teil wird im Geräte-Manager unter "Atmel USB Devices" als "USBasp" 
erkannt. Nur steht da kein COMx-Port. Wie kann ich den USBasp jetzt 
ansprechen?

Danke
cheeseburgerohnekaese

von Jonathan A. (jonathan_a53)


Lesenswert?

Cool. Jetzt geht es. In der Arduino IDE kann ich zwar USBasp auswählen, 
aber es bewirkt nichts. Mit AVRDUDE geht es. Ich habe folgendes Kommando 
benutzt: avrdude -c usbasp -p m328p -e -u -U flash:w:.hex

Danke für alles antworten!!!
cheeseburgerohnekaese

von Jonathan A. (jonathan_a53)


Lesenswert?

Jetzt wollte ich einen weiteren Sockel für den zu proramierenden 
Controller auflöten (hab es jetzt auf einer Platine). Nur seit dem 
blinkt die rote Led ganz schnell und unregelmäßig. Sie müsste eigtl. 
leuchten. Direkt am Controller hab ich das mit einer Led getestet. Dort 
blinkt die Led nicht. Ist der Controller kaputt (das kann eigtl. nur 
sein, wenn 3-5 sec bei 350° C mit dem Lötkolben am Sockel, wo der 
Controller drin ist, schlimm ist)?

Danke
cheeseburgerohnekaese

von Jonathan A. (jonathan_a53)


Lesenswert?

Kann mir einer helfen? Auf dem Steckbrett ging es ja. Ich bin fast am 
verzweifeln !?

EDIT: Ach ja. Der Controller kann nicht kaputt sein, weil ich ihn gerade 
neu geflasht habe.


Danke
cheeseburgerohnekaese

von Jonathan A. (jonathan_a53)


Lesenswert?

So. Jetzt geht wieder (nachdem ich manche Stellen nochmal gelötet habe 
und die Platine mit einer alten Zahnbürste gesäubert hab). Ob das jetzt 
nicht wieder irgendwann anfängt? ...

Sonst danke für alle Antworten.
cheeseburgerohnekaese

von Jonathan A. (jonathan_a53)


Lesenswert?

Kann man die 1N4001-Dioden als Dauerlösung verwenden? Weil funktionieren 
tut es. :)

Danke
cheeseburgerohnekaese

von Thomas E. (thomase)


Lesenswert?

Jonathan A. schrieb:
> Kann man die 1N4001-Dioden als Dauerlösung verwenden? Weil funktionieren
> tut es. :)
Warum nicht.
Ausserdem weisst du ja wenigsten, welchen Sinn das hat.

mfg.

von Jonathan K. (burgerohnealles)


Lesenswert?

Ok. Danke
burgerohnealles (bin jetzt burgerohnealles, weil cheeseburgerohnekaese 
ist zu lang :( und das mit dem GoogleAcc einloggen ist Kaese)
EDIT: Und das mein Nachname jetzt K. statt .A ist liegt daran, dass ich 
in meinem GoogleAcc Jonathan Anonymous heiße. Also nicht wundern wegen 
dem neuen Namen.

von Dered (Gast)


Lesenswert?

Jonathan A. schrieb:
> http://www.ullihome.de/wiki/USBAVRLab/Firmwares/AVRISPmkII gefunden.
> Dieser ist genau das, was ich mir vorstelle, nur dass ich keinen ATmega8
> habe.

hallo, das teil hatte ich auch mal aufgebaut. ohne ullis arbeit 
schmälern zu wollen, das teil lief bei mir ziemlich wackelig, besonders 
bei größeren programmen (=längere datenübertragung).

war dann vorübergehend wieder auf sp12 (parallelprogger) umgestiegen und 
hab mir dann ein einen echten AVRISPmkII neu für 29€ geholt. das teil 
ist im gegensatz zum clon absolut zuverlässig, auch bei langen 
.hex-files und hoher taktrate.

nur mal so als tipp!

:O)

von Jonathan K. (burgerohnealles)


Lesenswert?

Dered schrieb:
> hallo, das teil hatte ich auch mal aufgebaut. ohne ullis arbeit
> schmälern zu wollen, das teil lief bei mir ziemlich wackelig, besonders
> bei größeren programmen (=längere datenübertragung).
>
> war dann vorübergehend wieder auf sp12 (parallelprogger) umgestiegen und
> hab mir dann ein einen echten AVRISPmkII neu für 29€ geholt. das teil
> ist im gegensatz zum clon absolut zuverlässig, auch bei langen
> .hex-files und hoher taktrate.
>
> nur mal so als tipp!
>
> :O)

Also mit meinem selbstgebauten USBasp hab ich eine 
Schreibgeschwindigkeit von ca. 200 Byte/s. Ist das schnell?

Danke
burgerohnealles

von spess53 (Gast)


Lesenswert?

Hi

>Also mit meinem selbstgebauten USBasp hab ich eine
>Schreibgeschwindigkeit von ca. 200 Byte/s. Ist das schnell?

Das ist schnarchlangsam. AVR ISP MKII (Controller @ 11MHz) ca. 10K/s.

MfG Spess

von Jonathan K. (burgerohnealles)


Lesenswert?

spess53 schrieb:
> Das ist schnarchlangsam. AVR ISP MKII (Controller @ 11MHz) ca. 10K/s.

Na ja. Dafür konnte ich es machen, ohne extra Teile zu kaufen. (Bin 13 
-> Hab nicht so viel Taschengeld.)

Es funktioniert und das ist für mich die Hauptsache.
Ach ja. Bringt es was nen schnelleren Quarz einzubauen. Oder gibt es 
dann Probleme mit dem USB?


Danke
burgerohnealles

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.