Hab mir einen NIBO Burger gekauft
(http://www.nicai-systems.com/de/nibo-burger , Schaltplan gibt es unter
dem Menüpunkt "Bauen") kämpf jetzt schon einige Zeit damit herum, aber
ich schaffs nicht den ATmega1284p im Burger zu programmieren.
Da es mit dem eingebauten Programmer (usbasp mit einem ATtiny44A) nicht
funktioniert hat, habe ich meinen stk500 Klon an die externe (Arduino)
Schnittstelle angeschlossen, weil dort die Programmier Pins zugänglich
waren. Hab auch alle Signale mit dem Oszi überprüft (auf der Programmer
Seite und direkt an den Pins des ATmega), und die Signale scheinen
sinnvoll zu sein. Der ATmega ist aber nicht kaputt, weil in einer
externen Schaltung kann ich ihn programmieren.
avrdude Befehl: sudo avrdude -c stk500v2 -p atmega1284p -P /dev/ttyUSB0
-B 50 -e -B 10 -v
Fehlermeldung:
avrdude: stk500v2_command(): command failed
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.
Moin,
In der Beschreibung steht, dass der Hauptprozessor ein ATmega16 ist.
Hast Du den ausgetauscht? Hast Du evtl. ein Problem mit der
Prozessoridentifikation?
Hatte vergessen zu erwähnen, dass ich auf den ATmega1248p upgegraded
habe.
Der ist auch Pinkompatibel mit dem ATmega16.
Siehe hier: http://www.nicai-systems.com/de/robotik/nibobee/tuning-kit
Hab den ATmega1284p nicht aus dem Tuning-Kit sonder extra gekauft, die
Fuses sollten auch passen (External Clock mit max Startup Time)
Werde heute Abend noch überprüfen ob vielleicht mit dem Clock Signal
(XTAL1) was nicht passt, weil soweit ich mich errinern kann hatte das
Signal nur eine VPP von ca 600mV
Hallo,
ich habe mal einen Blick in den Schaltplan geworfen.
Was mir zuerst aufgefallen ist, dass am Reset Pin kein 10K Widerstand
gegen VCC zu finden ist.
Mein erster Gedanke war, das Teil kann man so nicht direkt
programmieren. Die Programmierung erfolgt über das USB Interface.
Ergo, Du musst extern die Standardsoftware brennen und kannst
anschließend über die USB Schnittstelle Deine Programme aufspielen.
Gruß
Frank
Hallo,
noch vergessen, die ISP Schnittstelle ist mit dem ATTINY44 verbunden. Da
geht sowieso nix.
Wenn Du den Kontroller in der Schaltung programmieren willst, musst Du
den ATTINY44 entfernen und einen Widerstand von 10K gegen VCC einbauen.
Alles in allem mehr Aufwand, als die Standardsoftware einmal extern
aufzuspielen und den Rest über die USB Schnittstelle zu erledigen.
Hast Du auch die anderen Teile wie im Kit beschrieben gewechselt?
Gruß
Frank
Die anderen Teile habe ich nicht gewechselt, weil der 20MHz Quarz im
Burger sowieso nicht funktioniert, und ein besser ATtiny würde mir
nichts bringen, ist ja sowieso nur ein ISP Adapter. Und Zitat von der
Seite mit dem Tuning Kit: "Hinweise zum NIBO Burger: Aus dem Tuning-Kit
wird nur der ATmega1284 benötigt und gegen den ATmega16A ausgetauscht!"
Wegen dem Reset: ich vermute das der Reset über einen interne Pullup des
ATtinys auf VCC gezogen wird.
Und ISP sollte schon gehen, weil die ISP Pins ja über 100Ohm Widerstände
mit dem ATtiny verbunden sind.
Das mit dem ATtiny rausnehmen ist nicht so einfach, weil dann der ATmega
sonst kein Clock Signal hat. Werde aber heute Abend den Trotdem mal
rausnehmen und eine externes Clock Signal "reinpfuschen".
Auch mit dem originalen (bereits programmierten ATmega16) funktioniert
das programmieren auf beide Arten nicht.
Hallo,
dann würde ich sagen, Du fängst vorne an!
1. Ist alles korrekt bestückt (ich gehe davon aus, dass Du das Teil
selbst gelötet hast)?
2. Keine kalten Lötstellen?
3. Wird die USB Schnittstelle erkannt?
4. Wenn die USB Schnittstelle erkannt wird und Du programmierst über die
USB Schnittstelle, kommen am ISP Interface des ATMEGA Signale an?
5. Kommt das generierte Clock Signal an
usw.
Wenn die Fuses des ATMEGA nicht auf extern stehen, benötigt der ATMEGA
kein Clock Signal um ein Programm aufzuspielen.
Gruß
Frank
Hallo,
noch vergessen, wenn das ein neuer nicht programmierter ATMEGA ist, kann
der mit dem externen Clock Signal eh nichts anfangen, da die Fuses nicht
gesetzt sind.
Du wirst also nicht darum kommen, das Teil einmal extern zu
programmieren um zu mindestens die Fuses korrekt zu setzen.
Aber Achtung einmal auf externen Takt umgestellt, musst Du immer einen
externen Takt haben um das Teil zu programmieren.
Gruß
Frank
Frank L. schrieb:> Hallo,>> dann würde ich sagen, Du fängst vorne an!>> 1. Ist alles korrekt bestückt (ich gehe davon aus, dass Du das Teil> selbst gelötet hast)?
Ja, zumindest ist mir in ca 3~ mal überprüfen nichts aufgefallen
> 2. Keine kalten Lötstellen?
Hab alle Lötstellen die mit ISP in Verbindungen stehen nachgelötet und
mit dem Durchgangsmesser überprüft
> 3. Wird die USB Schnittstelle erkannt?
Ja
> 4. Wenn die USB Schnittstelle erkannt wird und Du programmierst über die> USB Schnittstelle, kommen am ISP Interface des ATMEGA Signale an?
Ja
> 5. Kommt das generierte Clock Signal an
Ja, hat aber nur eine sehr kleine VPP von 600mv, finde im ATmega1284p
Datenblatt aber nicht die Thresholdspannungen für eine externe Clock.
>> usw.>> Wenn die Fuses des ATMEGA nicht auf extern stehen, benötigt der ATMEGA> kein Clock Signal um ein Programm aufzuspielen.
Hatte ich bereits in einer externen Schaltung mit einem Clock Generator
geflashed
>> Gruß> Frank
Habs jetzt auch geschafft den ATmega in der Schaltung zu Programmieren,
mit folgender Modifikation:
1. ATtiny rausgenommen
2. Externes Clock Signal an XTAL1 angeschlossen (ca 500kHz)
3. 1k Widerstand von Reset nach VCC angeschlossen (10k waren zu viel
wegen der Programmier LED)
sobald ich alles auf original zurückbaue gehts nicht mehr (das MISO
Signal sieht auch anders aus)
Ich vermute mal das die Amplitude des Clock Signals einfach zu klein
ist.
werde mir am Besten so einen Oszillator Baustein dazu bauen und den
direkt am ATmega anschließen, oder ich muss mit der internen CLock
auskommen
Vielen Dank für deine Hilfe.
LG
Funkenkitzler
Funkenkitzler schrieb:> sehr kleine VPP von 600mv
Das ist wenig. Das Signal kommt vom Tiny über einen Kondensator. Der hat
laut Schaltbild 10nF. Den solltest du kontrollieren, ob der Wert stimmt
und ob irgendwo ein Kurzschluss ist.
Georg G. schrieb:> Funkenkitzler schrieb:> sehr kleine VPP von 600mv>> Das ist wenig. Das Signal kommt vom Tiny über einen Kondensator. Der hat> laut Schaltbild 10nF. Den solltest du kontrollieren, ob der Wert stimmt> und ob irgendwo ein Kurzschluss ist
Der Kondensator ist glaub ich nicht dran schuld, hab auch direkt am
xtal2 des ATtinys nur so ein schwaches Signal
Dein Burger funktioniert, wenn der 1284 extern programmiert wurde. Also
ist die Taktversorgung hinreichend.
Womit hast du die Amplitude des XTAL2 am Tiny gemessen?
Wenn also der Takt vom Prinzip her in Ordnung ist, kann es an der
Frequenz liegen.
Hast du zufällig die clkdiv8 falsch gesetzt? Lass eine LED im
Sekundentakt blinken, um sicher zu sein.
Gemessen wurde mit einem Digitaloszi mit einer Bandbreite von 50MHz und
einem Tastkopf mit 10x Einstellung.
>Wenn also der Takt vom Prinzip her in Ordnung ist, kann es an der Frequenz
liegen.
Wie meinst du das? Zu schnell sollte er ja nicht sein, ATmega verträgt
ja ab 4,5V die maximale Frequenz.
Zu langsam zum programmieren ist sie auch nicht, weil die ISP Clock
liegt im Moment bei ca 100kHz, sonst würde es ja auch nicht in meiner
externen Schaltung funktionieren (da wird eine 500kHz mit einem NE555
generiert)
CLKDIV8 sollte nicht gesetzt sein, habe die Fuses mit
http://www.engbedded.com/fusecalc/ berechnet und kontrolliert.
Ich weis nicht ob der Burger funktioniert wenn der ATmega von extern
programmiert wurde, werde das dann heute mal ausprobieren. Somit wäre
dann es dann echt leicht zu überprüfen ob das Clock Signal passt, danke
für den Tipp.
Funkenkitzler schrieb:> direkt am> xtal2 des ATtinys nur so ein schwaches Signal
Dann hast du ein Problem, entweder dein Scope misst falsch oder dein
Tiny ist defekt oder ein Schluss auf der Platine.
Nimm den Tiny aus der Fassung, biege XTAL2 etwas nach oben und setze ihn
wieder in die Fassung, so dass XTAL2 frei in der Luft hängt. Miss die
Amplitude an XTAL2. Es sollten gut 4Vss sein (bei 5V Vcc). Sonst hat der
Tiny einen Schuss weg.
Wenn der Pegel in Ordnung ist, ihn mit XTAL2 auf "normal", aber den 1284
entfernt. Kommt es zu einem Einbruch, hast du ein Problem auf der
Platine.
Noch ein Nachtrag: Wenn die USB Schnittstelle erkannt wird, ist der Tiny
in Ordnung.
Du schreibst "50MHz DSO". Meinst du vielleicht 50Msamples/s DSO? Das wäe
etwas anderes. Ist der Tastkopf richtig abgeglichen? Irgendwie passen
deine Beobachtungen nicht zueinander. Ich tippe nach wie vor auf falsche
Fuses im 1284.
> Nimm den Tiny aus der Fassung, biege XTAL2 etwas nach oben und setze ihn> wieder in die Fassung, so dass XTAL2 frei in der Luft hängt. Miss die> Amplitude an XTAL2. Es sollten gut 4Vss sein (bei 5V Vcc). Sonst hat der> Tiny einen Schuss weg.
Wenn ich das mache liegt am XTAL2 eine GLEICH-Spannung von 1V.
Georg G. schrieb:> Noch ein Nachtrag: Wenn die USB Schnittstelle erkannt wird, ist> der Tiny> in Ordnung.
Ja die Schnittstelle wird ja erkannt.
> Du schreibst "50MHz DSO". Meinst du vielleicht 50Msamples/s DSO? Das wäe> etwas anderes. Ist der Tastkopf richtig abgeglichen? Irgendwie passen> deine Beobachtungen nicht zueinander.
50MHz wird denke ich die maximale Frequenz sein, sampling rate liegt bei
1GS/s. Tastkopf wurde am Oszi Testausgang abgeglichen
> Ich tippe nach wie vor auf falsche> Fuses im 1284.
Habs nochmal ausgelesen:
lfuse: 0xE0
hfuse: 0xDF
efuse: 0xFF
Funkenkitzler schrieb:> Wenn ich das mache liegt am XTAL2 eine GLEICH-Spannung von 1V.
Der Test war ein geistiger Fehlschuss von mir. Ohne XTAL2 schwingt da
natürlich nichts. Der Sinn war, festzustellen ob irgendwo ein Schluss
ist.
Die Fuses sind so in Ordnung.
Du siehst mich ratlos. Aus der Entfernung fällt mir nichts ein. Ich kann
dir nur anbieten, dass du das Ding her schickst und ich suche den
Fehler.
Zu dir senden ist wirklich nicht nötig, werden mir einfach einen
Oszillator besorgen, den irgendwie dazu Basteln und fertig ist.
Jedoch danke das du mir so viel geholfen hast!