ATmega1248p lässt sich im Nibo Burger nicht programmieren

Gast #4667808
Lesenswert?

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.
Gast #4671002
Lesenswert?

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
#4671056
Lesenswert?

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
#4671067
Lesenswert?

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
Gast #4671198
Lesenswert?

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.
#4671681
Lesenswert?

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
#4671686
Lesenswert?

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
Gast #4671824
Lesenswert?

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
Gast #4671925
Lesenswert?

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
#4672238
Lesenswert?

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.
Gast #4672261
Lesenswert?

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.
#4672300
Lesenswert?

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.
#4673459
Lesenswert?

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.
Gast #4674736
Lesenswert?

> 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
#4674816
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren