nach erfolgreichem layouten meiner Platine wollte ich diese nun Programmieren.
Hierbei habe ich versucht den Bootloader zu flashen leider ohne Erfolg unten stehen meine Quellen nach denen ich mich gerichtet habe. Der 10µF Kondensator wurde auch berücksichtigt.
Nun meine Frage, hat jemand hinbekommen, den ATmega328PB zu flashen und wenn ja wie?
Es kann ja nicht sein, dass ich nach 6 Stunden noch keine Anleitung gefunden habe welche funktioniert.
Kann es sein, dass es eine neue Version vom 328PB gibt, bei meiner früheren Version der Platine welche einen ATmega328PB-AU verbaut hatte ging es, jedoch funktioniert es nicht mit den ATmega328PB-U.
Im Anhang befindet sich die Fehlermeldung aus der IDE, sowie die Board- und die Schaltplandatei.
ich hatte mir auch eine Platine mit ATmega328PB gebaut. Habe auch das Package von MCUdude in Verwendung. Als Bootloader habe ich von dem das optiboot File mit uart0, 115200 Baud und 16MHz geflasht. Allerdings habe ich einen AVRISP mkII zum flashen, gibts leider nicht mehr.
Zum Flashen. Nicht gleich drauflos flashen. Das ist ungesund.
Erstmal einen einfachen Kontaktversuch starten.
In meinem Fall sieht das so aus.
avrdude -c avrispmkII -p m328pb -v
oder
avrdude -c avrispmkII -p m328pb -v -P usb
Vermutlich ist schon dein µC Name "atmega328bp" falsch, den wird es in der avrdude.conf nicht geben. Versuch das erstmal mit meinem adaptierten Bsp. Die Port Option bitte so -P COM3
Wenn ich mir allerdings deinen Schaltplan anschaue, ist mir nicht ganz klar ob das überhaupt funktioniert. Ich betrachte nur den Teil vom µC links unten. Die Klemmleiste macht mich stutzig mit der grauen Beschriftung. Ist das dein ISP Port? Desweiteren werden sicherlich deine Motoren während des Flashvorgangs zucken, weil die Pins die in die Schaltung führen nicht getrennt werden. Das solltest du abklären bzw. mir/uns erklären wie das gedacht ist. Ich kann ja auch einen Denkfehler beim lesen haben.
Edit:
beim nächstenmal hängste den Schaltplan bitte als .pdf ran. Hat nur 38kB.
In Eagle Datei > Drucker einrichten, Drucker "in eigene Datei pdf"
Papiergröße A3 oder andere passendes Format das man etwas sieht
Danach Datei > drucken, hier in Ausgabedatei Pfad ändern und Name anpassen.
Fertig.
HotSystems:
Hast du einen Quarz am Controller angeschlossen ?
Leider sind das keine Links, sondern nur URL, wovon das pdf nicht funktioniert.
Links kann man anklicken.
@HotSystems
Habe einen 16MHZ Quarz angeschlosse. Schaltbild ist bisschen verkehrt wegen den Widerstände, in der Realität sind aber Kondensatoren eingebaut wo die Widerstände eingezeichnet sind.
Welche Signatur hat bei dir der 328PB?
Gibt es einen Unterschied zwischen den 328PB-AU und den 328PB-U bei den Signaturen?
Den Link [url=Bootloader für Atmega328pb - Deutsch - Arduino Forum werde ich die Tage mal probieren.
#
------------------------------------------------------------
# ATmega328PB
#------------------------------------------------------------
part parent "m328"
id = "m328pb";
desc = "ATmega328PB";
signature = 0x1e 0x95 0x16;
ocdrev = 1;
memory "efuse"
size = 1;
min_write_delay = 4500;
max_write_delay = 4500;
read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
"x x x x x x x x o o o o o o o o";
write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
"x x x x x x x x x x x x i i i i";
;
;
Die Devicesignatur 0x0 ist immer falsch.
Die deutet auf einen Fehler hin, das meist nichts ausgelesen werden kann.
Das tritt auch auf, wenn der Oszillator im Controller nicht arbeitet.
Kann aber auch andere Ursachen haben.
Signatur lautet: 0x1E9516, also wie in der .conf steht. Eine weitere Unterscheidung gibts da nicht.
Wegen deinem Problem. Deswegen solltest du erstmal nur einfache Kontaktaufnahmen/Abfragen mit avrdude starten, solange bis das klappt. Vorher brauchst mit Flashen oder Fuse ändern nichts probieren. Wenn du einen jungfräulichen ATmega µC hast, taktet der interne RC mit 8MHz mit aktiven 1/8 Bit. Also taktet der mit sicheren 1MHz. Der ATmega328PB hat noch ein Clock Fail Detect Feature, der taktet immer, im dümmsten Fall wieder mit internen Takt, spätestens nach Reset. Wie das genau funktioniert steht im Manual. Müßte ich jetzt auch erst wieder nachlesen. Auf jeden Fall kann man den Typ bei falscher/defekter Taktquelle nicht verfusen. Man bekommt ihn immer zum Leben erweckt. Wenn du noch keine Fuse ändern konntest, taktet der sowieso noch mit dem internen Takt.
Du solltest mindestens die Spannungsversorgung, ISP Verkabelung und Resetpegel prüfen/messen. Ich vermute irgendein Anschlussproblem.
Wegen Programmer. Wenn es etwas kosten darf, nimmste den Atmel-ICE mit Kabel. Der kann auch aktuelle ATmega µC mit UPDI ansprechen. Wenn es etwas günstiges sein soll, kann man vielleicht einen Diamax USB ISP-Programmer für Atmel AVR nehmen. Wäre ein reiner ISP Programmer.
sieht doch mal gut aus. Die fehlende Vtarget kann am anderen Programmer liegen, dass die Daten nicht ausgelesen/übertragen werden. Der µC selbst hat hoffentlich seine 5V Spannungsversorgung und die Massen sind verbunden. Wenn avrdude sich so "meldet" besteht eine funktionierende Verbindung. Dann kannste mal den Bootloader flashen. Ich drück die Daumen.
Okay alles klar.
Die 5V und Masse sind vorhanden und kommen auch am µC an.
Warum kommt den die Meldung beim testen der Verbindung?
avrdude: Device signature = 0x1e950f (probably m328p)
avrdude: Expected signature for ATmega328PB is 1E 95 16
Double check chip, or use -F to override this check.
Bevor ich den Bootloader flashe muss ich die Fuse-Bits setzen oder?
Sprich den Befehl eingeben:
Bisher konnte ich mit dem Atmega328PB noch keine Erfahrungen sammeln, aber was in Post#8 steht, ist für mich eindeutig.
Evtl. ist der Chip ja ein Fake.
avrdude: Device signature = 0x1e950f (probably m328p)
avrdude: Expected signature for ATmega328PB is 1E 95 16
Double check chip, or use -F to override this check.
Du willst einen ATmega328PB programmieren, aber AVRdude sieht einen ATmega328P.
Das kann nichts werden!
Welchen Programmieradapter nutzt du?
Du siehst die Chip Signatur des Programmers.
Marvin97: @HotSystems
Denke mal nicht, dass der Chip ein Fake ist der stammt von Reichelt.
Das muss nichts zu sagen haben. Wenn AVRdude eine andere Signatur empfängt, würde ich der eher glauben schenken, als irgendeinem Händler, der auch nur das verkaufen kann, was er geliefert bekommt.
avrdude: Device signature = 0x1e950f (probably m328p)
avrdude: Expected signature for ATmega328PB is 1E 95 16
Double check chip, or use -F to override this check.
Und nochmal: Du siehst die Signatur des UNO!
Dafür müssen mehrere Sachen falsch laufen, damit das überhaupt passiert!
Unter anderem hast du den 10µF Kondensator falsch dran.
Und die AVRdude Parameter stimmen wohl auch nicht.
auf meinem steht natürlich ATmega328PB drauf mit entsprechender Signatur die du ja auch schon korrekt angezeigt bekommen hast. Jetzt hast du eine andere Signatur angezeigt bekommen. Wie die anderen User schon geschrieben haben. Irgendwas ging schief.
Eine brauchbare deutsche Anleitung scheint diese hier zu sein.
bzw.
Meine Fuse hatte ich wie folgt eingestellt. CFD enabled, BOD Level 4.3V, ext. Quarz, Boot Size 256, EESave
extended: 0xFC
high: 0xD6
Low: 0xFF
Bsp.: avrdude -c avrispmkII -p m328pb -v -P usb -U hfuse:w:0xD6:m -U lfuse:w:0xFF:m
Bei der Bootzize bin ich mir allerdings bis heute nicht 100% sicher was mit Optiboot nun richtig ist. Vielleicht kann jemand dafür nochmal etwas Detaill bringen.
hab mir ein Refresh verpasst. Also der Bootloader ist kleiner 512Bytes groß. Bootsize Einstellung von 256 Words sind 512Bytes. Soweit okay. Was mich jedoch immer wieder stutzig macht ist, dass das optiboot.hex File 1.418 Bytes groß ist. Woher kommt dann die Bootloadergröße von <=512 Bytes?