ATMega328P Programme bei 2 V, aber nicht bei 1,8 V

Mich verwundert diese hier:

Ich versuche, meinen ATMega328P mit 1,8 V zu betreiben. Die Spannung am Chip (Pin 4 und 21) liegt bei 1,82V (BK Precision Multimeter). Bei Verwendung des AVRISP mkII leuchtet die Programmierer-LED grün (wodurch ein eingeschalteter Chip erkannt wird), die Programmierung schlägt jedoch fehl.

Mit einem Tischnetzteil entdeckte ich, dass bei genau 2 V die Fähigkeit, den Chip zu programmieren, zurückkehrt. Dies gilt unabhängig von der Einstellung BOD/Extended Fuse (die ich mit 0xFF abgesetzt habe).

Ich habe bemerkt, dass die 1,8-V-BOD-Einstellung (0xFE für die erweiterte Sicherung) die MCU auch nach dem Flashen nicht einschaltet. Wenn es ausgeschaltet ist, läuft der Chip mit der 1,8-V-Schiene. Ich dachte, dies könnten nützliche Debugging-Informationen sein, aber Ignacio wies in den Kommentaren darauf hin, dass dies angesichts des angegebenen Bereichs des BOD-Schwellenwerts ein erwartetes Verhalten ist.

  • Habe ich etwas Offensichtliches übersehen?
  • Wird die 1,8-V-Programmierung bei 1 MHz auf dem ATMega328P nicht unterstützt?
  • Muss ich stattdessen eine 2-V-Stromversorgung entwerfen, wenn ich flashen möchte?
  • Hat die BSB-Schaltung während der Programmierung eine gewisse Schutzwirkung, auch wenn sie deaktiviert ist? Kann es am Programmierer liegen?

Vielen Dank für Vorschläge/Debugging-Ideen!

Bearbeitet: Ignacio wies darauf hin, dass der BSB-Grenzwert für die 1,8-V-Einstellung um bis zu 2 V variieren könnte, sodass sich der BSB wie erwartet verhält. Ich dachte, vielleicht wäre die "Fehlzündung" des BOD ein nützlicher Hinweis darauf, warum es möglicherweise nicht programmiert, aber das scheint nicht mehr der Fall zu sein. Das obige wurde aus Gründen der Übersichtlichkeit bearbeitet.

Was ist die Spezifikation für die Programmierung des Chips?
Die 1,8 V für den BSB sind der typische Wert. Er kann sogar bis zum Maximalwert reichen .
Ah, fair genug - der BOD ist nicht der Teil, über den ich mir Sorgen mache, ich dachte, es hat vielleicht nur geholfen, den Chip zu diagnostizieren, der 1,8 V nicht als 1,8 V erkennt. Das Datenblatt scheint vorzuschlagen, dass es mit einer echten 1,8-V-Stromversorgung in den Programmiermodus versetzt werden kann, aber vielleicht fehlt mir auch hier eine Toleranz.
@dramsay Wenn ich deine Frage verstanden habe, denke ich, dass Ignacio das Problem auf den Punkt gebracht hat. Wenn Sie die serielle Programmierung verwenden, kann der Vcc tatsächlich nur 1,8 V betragen. Ich sehe keine spezifische Spezifikation dafür, außer dass das Diagramm für mich so "liest". Sie haben jedoch keine Kontrolle über den BOD, wenn Sie ihn aktivieren. Die Spezifikation sagt, dass es überall von 1,7 V bis 2,0 V auslösen kann, wenn es als 110 programmiert ist. Dies ist kein Konflikt. Es besagt nur, dass diese spezielle BOD-Einstellung keinen zuverlässigen Nutzen hat, wenn Ihr Vcc unter etwa 2,2 V liegt. Verwenden Sie einen höheren Vcc, wenn Sie möchten, dass der BOD etwas für Sie tut. Oder verwenden Sie 1,8 V und schalten Sie den BOD aus.
@jonk Danke euch beiden für die schnellen/umsichtigen Antworten! Was ich in meinem ursprünglichen Beitrag zu sagen versuchte (aber vielleicht nicht betonte), war, dass ich den Atmega auch bei ausgeschaltetem BOD immer noch nicht mit der 1,8-V-Versorgung programmieren kann. Ich dachte nur, es wäre eine nützliche Information, dass die 1,8-V-Schiene möglicherweise nicht richtig von der MCU erkannt wurde, aber dank Ignacio denke ich, dass ich das ausschließen kann. Als ich sah, dass ich den Chip mit ausgeschalteter BOD-Sicherung mit Strom versorgen konnte, versuchte ich sofort, das Programm zu flashen, ohne Erfolg.
@dramsay Der Chip scheint einen Bootloader, einen seriellen Programmiermodus und einen parallelen Programmiermodus zu haben. Ich nahm an, Sie sprachen über den seriellen Modus, da der parallele Modus eine große Spannung erfordert und der Bootloader so aussieht, als ob er von der Software aufgerufen wird. Das Diagramm scheint 1,8 V für die serielle Programmierung zu zeigen. Aber ich habe auch keine Spezifikation gesehen. Wenn ich das also professionell machen würde und es ernsthaft nicht finden könnte, würde das bedeuten, dass ich die FAE anrufen und einfach fragen würde. Sie liegen wahrscheinlich außerhalb der Spezifikation, wenn Sie die richtigen Werkzeuge und alles verwenden.
Ich erinnere mich an ein ATTINY406-Datenblatt, dass eine bestimmte Spannung angegeben wurde, die für die Programmierung erforderlich ist, getrennt von der BSB-Schwelle. Gibt es im Datenblatt dieses Teils spezifische Programmierschwellenwerte?

Antworten (1)

Ich habe einen Freund besucht, der den AVR ICE-Programmierer hat, und es hat mit meinem Board einwandfrei funktioniert. Mein AVR ISP mkII könnte (?) gefälscht oder anderweitig nicht richtig gepuffert sein, obwohl es über 2 V funktioniert.

Für alle anderen, die auf diese Art von Problem stoßen (Programmierung schneidet genau bei 2 V ab), ist es wahrscheinlich Ihr Programmierer, und es lohnt sich, den Atmel ICE über eine seriöse Quelle zu kaufen.

Danke an @jonk und @Ignacio für die Hilfe!