Programmierung chinesischer Arduinos


7

Ich habe eine authentische Arduino UNO, aber ich wollte nicht den vollen Preis für eine neue bezahlen, um semi-perminate Projekte zu bauen, also kaufte ich ein paar ATMEGA328P-PU-Chips von AliExpress:

https://www.aliexpress.com/item/1pcs-lot-ATMEGA328P-PU-CHIP-ATMEGA328-Microcontroller-MCU-AVR-32K-20MHz-FLASH-DIP-28/32346944696.html

Wenn ich jedoch versuche, die Skizze mit Arduino IDE auf die neuen Chips hochzuladen, werden folgende Fehler angezeigt:

avrdude: stk500_recv (): Programmierer antwortet nicht
avrdude: stk500_getsync () Versuch 1 von 10: nicht synchron: resp = 0x00

Es passiert 10 Mal und wird beendet.

Es funktioniert gut, wenn ich den Originalchip wieder einsetze.

Wenn jemand Erfahrung damit hat, wäre ich sehr dankbar!

BEARBEITEN:

Wenn ich die Schritte zum Brennen des Bootloaders versuche, wird ein neuer Fehler angezeigt.

Schritte, die ich unternommen habe:

Ich mache die 8MHz-Option und habe daher die Breadboard-1-6-x.zip-Datei heruntergeladen. (Ich verwende Arduino IDE 1.6.5 auf einem Mac).

Ich habe das ArduinoISP-Beispiel auf meinen Arbeitschip hochgeladen und es dann gemäß dem Bild mit dem Steckbrett verbunden.

Ich habe den Programmierer auf Arduino als ISP umgestellt und die Karte auf ATMEGA328 auf dem Steckbrett (8-MHz-Takt) eingestellt.

Ich ging zu tools> burn bootloader und bekam diesen Fehler:

Arduino: 1.6.5 (Mac OS X), Board: "ATmega328 auf einem Steckbrett (8 MHz interner Takt)"

/Users/andy/Desktop/Arduino.app/Contents/Java/hardware/tools/avr/bin/avrdude -C / Users / andy / Desktop / Arduino.app / Inhalt / Java / hardware / tools / avr / etc / avrdude .conf -v -patmega328p -cstk500v1 -P / dev / cu.usbmodem411 -b19200 -e -Ulock: w: 0x3F: m -Uefuse: w: 0x05: m -Uhfuse: w: 0xDA: m -Ulfuse: w: 0xE2 : m

avrdude: Version 6.0.1, zusammengestellt am 14. April 2015 um 16:30:25 Uhr Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/ Copyright (c) 2007-2009 Jörg Wunsch

     System wide configuration file is "/Users/andy/Desktop/Arduino.app/Contents/Java/hardware/tools/avr/etc/avrdude.conf"
     User configuration file is "/Users/andy/.avrduderc"
     User configuration file does not exist or is not a regular file, skipping

     Using Port                    : /dev/cu.usbmodem411
     Using Programmer              : stk500v1
     Overriding Baud Rate          : 19200 avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x15
     AVR Part                      : ATmega328P
     Chip Erase delay              : 9000 us
     PAGEL                         : PD7
     BS2                           : PC2
     RESET disposition             : dedicated
     RETRY pulse                   : SCK
     serial program mode           : yes
     parallel program mode         : yes
     Timeout                       : 200
     StabDelay                     : 100
     CmdexeDelay                   : 25
     SyncLoops                     : 32
     ByteDelay                     : 0
     PollIndex                     : 3
     PollValue                     : 0x53
     Memory Detail                 :

                              Block Poll               Page                       Polled
       Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
       ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
       eeprom        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
       flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
       lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
       hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
       efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
       lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
       calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
       signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

     Programmer Type : STK500
     Description     : Atmel STK500 Version 1.x firmware

avrdude: stk500_getparm (): (a) Protokollfehler, erwarten = 0x14, resp = 0x14

avrdude: stk500_getparm (): (a) Protokollfehler, erwarten = 0x14, resp = 0x02

avrdude: stk500_getparm (): (a) Protokollfehler, erwarten = 0x14, resp = 0x10 Hardwareversion: -1543397124 Firmware-Version: 2165568.-1543397124 Topcard: STK502 Vtarget: 1,8 V Varef: 0,0 V Oszillator: Aus SCK-Zeitraum: 0,1 us

avrdude: stk500_initialize (): (b) Protokollfehler, erwarten = 0x10, resp = 0x01 avrdude: Initialisierung fehlgeschlagen, rc = -1 Überprüfen Sie die Verbindungen und versuchen Sie es erneut, oder verwenden Sie -F, um diese Prüfung zu überschreiben.

avrdude: stk500_disable (): Protokollfehler, erwarten = 0x14, resp = 0x10

avrdude fertig. Vielen Dank.

Problem beim Hochladen an Bord. Vorschläge finden Sie unter http://www.arduino.cc/en/Guide/Troubleshooting#upload .

Zumindest ein wenig Fortschritte machen ...

Lösung:

Ich habe dieses Layout verwendet:

Geben Sie hier die Bildbeschreibung ein

Da dies fehlschlug, entschied ich mich, den Nano zu verwenden, den ich gleichzeitig bekam, und nach vielen Recherchen fand ich dieses Video:

https://www.youtube.com/watch?v=94KCYqS3--A

Ich habe die an der 1: 30-Marke angezeigten Pins an den ICSP-Port gehängt und versucht, den Bootloader zweimal pro Chip zu brennen, und beim zweiten Versuch hat es funktioniert! Ich weiß nicht, warum es zweimal versucht werden musste.

Ich werde vielleicht wieder die Breadboard-Methode ausprobieren, um zu sehen, ob sie funktioniert, wenn ich sie zweimal brenne.


1
Teil eines authentischen Arduino ist ein bereits vorhandener Bootloader auf dem Chip.
gre_gor

Sie brauchen auch einen chinesischen Programmierer, da die chinesischen Chips unsere Sprache nicht verstehen. Ich hatte Glück mit der avr USB / ASP- oder USB / isp-Serie. r.ebay.com/lALcjc
Paul

^ Wahre Lösung, aber nicht richtige Erklärung, Ben Heck deckt den Unterschied am Anfang sehr gut ab: "Make a Avr Development Board" -Video ( youtu.be/ncobWc61wL4 )
Paul

Wie ist es verbunden? Und Sie können -F zum Befehl avrdude hinzufügen?
Paul

Antworten:


9

Dies liegt daran, dass es sich um nicht programmierte Chips handelt, was bedeutet, dass noch kein Bootloader programmiert wurde. Hier ist ein Tutorial für die Verwendung Ihres Arduino-Boards zum Programmieren eines Bootloaders (es gibt viele solcher Tutorials).

Es muss nur einmal pro Chip durchgeführt werden, sodass es sich lohnt, alle zu programmieren, sobald Sie sich für einen eingerichtet haben. Dies ist ein sehr wirtschaftlicher Weg, um "Home-Brew-Duinos" zu bauen.


Ich habe den Kristall nicht, also muss ich einige bestellen, nehme ich an ... Ich habe in diesem Instructible gesehen, dass Sie zumindest einige davon ohne den Kristall ausführen können. Ich habe jedoch auch einen Arduino Nano, der funktioniert ... Könnte ich den 328P-PU in die UNO einbauen und ihn dann mit dem Nano programmieren?
AndyD273

@ AndyD273: Sicher, verwenden Sie einfach die ISP-Verbindung in der Nähe der Haupt-MCU, nicht die ISP-Verbindung in der Nähe des USB-Anschlusses.
Ignacio Vazquez-Abrams

Sie können sie mit 8 MHz ohne Kristall betreiben, 16 mit einem.
Dandavis

Ok, ich habe es mit der internen 8-MHz-Uhr wie in Ihrem Link verkabelt, aber ich erhalte einen neuen Fehler. Ich habe es oben gepostet.
AndyD273

-2

Stellen Sie sicher, dass Sie den richtigen Treiber für die chinesischen Boards und den richtigen COM-Port in der Idee ausgewählt haben.


1
Das sind nackte Chips. Überhaupt keine USB-Verbindung.
Gerben

Der Autor der Frage verwendete ein anderes Arduino, das über eine USB-Verbindung verfügt und den richtigen Port auswählen muss.
Avamander
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.