Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

[Solved] Arduino Nano (klon CH340) wgrywanie

lighter1974 07 Oct 2018 17:20 19911 19
  • #1
    lighter1974
    Level 2  
    Witam
    W kwestii programowania jestem „świeżakiem” podobnie jak w programowaniu Arduino. Proszę o pomoc w poniższej sprawie:
    Arduino Nano (klon CH340), System Windows 7,zainstalowany sterownik, po podłączeniu system widzi Arduino jako USB-SERIAL CH340 (COM12).
    Przy próbie załadowania programu (podstawowy z migającą diodą LED) do Arduino za pomocą Arduino 1.8.7 po dłuższej chwili wyświetla komunikat: Problem z wgrywaniem na płytkę. "



    Diody na Arduino:
    - L pulsuje co ok. 3 sek,
    - POW – świeci ciągle (zasilanie jak domniemam ;)),
    - EX - nie świeci,
    - RX „pomryguje” w okresie ok. 1 sek. niepełną jasnością przez kilka sek. ,a później cisza,
    Poniżej opis błędów
    Arduino:1.8.7 (Windows 7), Płytka:"Arduino Nano, ATmega328P"

    Szkic używa 930 bajtów (3%) pamięci programu. Maksimum to 30720 bajtów.
    Zmienne globalne używają 9 bajtów (0%) pamięci dynamicznej, pozostawiając 2039 bajtów dla zmiennych lokalnych. Maksimum to 2048 bajtów.
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0xb2
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0xb2
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0xb2
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0xb2
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0xb2
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0xb2
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0xb2
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0xb2
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0xb2
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0xb2
    Problem z wgrywaniem na płytkę.


    Sterownik jest aktualny, wybrana płytka i procesor prawidłowe, programator AVRISP mkII.
    Czy coś robię nie tak? Czy powinienem wcześniej wypalić bootloader’a ?
    Próbowałem z drugą płytką i wymienionym kablem – jest tak samo.
    Z góry dziękuję za pomoc.
    Do you have a problem with Arduino? Ask question. Visit our forum Arduino.
  • #2
    adamz74
    Level 32  
    Spróbuj nacisnąć na chwilę przycisk reset na płytce.

    Pozdr!
  • #3
    lighter1974
    Level 2  
    Dzięki, ale nic się nie zmieniło ;(
  • #4
    khoam
    Level 41  
    lighter1974 wrote:
    Sterownik jest aktualny, wybrana płytka i procesor prawidłowe, programator AVRISP mkII.


    Wgrywałem do Nano poprzez CH340 z ustawionym programatorem AVR ISP (bez mkII).
  • Helpful post
    #5
    emarcus
    Level 38  
    lighter1974 wrote:
    Witam

    Sterownik jest aktualny, wybrana płytka i procesor prawidłowe, programator AVRISP mkII.
    Czy coś robię nie tak? Czy powinienem wcześniej wypalić bootloader’a ?
    Próbowałem z drugą płytką i wymienionym kablem – jest tak samo.
    Z góry dziękuję za pomoc.


    Oczywiście(!) , robisz błąd; inaczej nie byłoby problemu z wgrywaniem programu...

    Wybrany programator w tym sposobie komunikacji nie ma znaczenia, bo go wcale nie używasz i ta opcja jest pomijana. Programator jest używany przy metodzie programowania poprzez ICSP (MISO,MOSI, SCK,RST) z pominięciem bootloadera.
    U ciebie programowanie następuje poprzez USB/CH340/UART (Txd/Rxd) - obsługiwane przez bootloader.

    Czy na pewno masz wybrane poprawnie opcje: ‘wybrana płytka i procesor prawidłowe’? .
    Zauważ, ze Nano/Clone może miec wpisany inny bootloader niż oryginalny NANO (może to byc ‘stary’ standardowy (2k), albo nowszy ‘Opti’ (512 bits).
    Spróbuj wybrac alternatywnie tą drugą opcję, gdyż z twojego opisu nie jest wiadomo czym dysponujesz.
    Ponizej masz sposób wyboru ustawień, albo spróbuj wybrac UNO zamiast NANO przed kompilacją i próbą wpisu.
    Arduino Nano (klon CH340) wgrywanie

    Któraś z tych opcji powinna funkcjonowac poprawnie, a wtedy dowiesz się co masz zainstalowane...

    Ograniczenie max. rozmiaru programu do 30720 wskazuje na stosowanie 'starego' bootloadera (2k=2048).
    Rachunek jes taki: Processor posiada 32k flash mem., co jest równe32768; od tego należy odjąc zajętośc bootloadera czyli: 32768 - 2048 = 30720 i tyle pozostaje na program.
    Popdczas gdy 'Opti' bootloader zajmuje 512 bits ; zatem: 32768 - 512 = 32256 - dostępny obszar pamięci dla programu.

    e marcus
  • #6
    lighter1974
    Level 2  
    [quote="emarcus"]
    Czy na pewno masz wybrane poprawnie opcje: ‘wybrana płytka i procesor prawidłowe’? .
    Zauważ, ze Nano/Clone może miec wpisany inny bootloader niż oryginalny NANO (może to byc ‘stary’ standardowy (2k), albo nowszy ‘Opti’ (512 bits).
    Spróbuj wybrac alternatywnie tą drugą opcję, gdyż z twojego opisu nie jest wiadomo czym dysponujesz.
    Ponizej masz sposób wyboru ustawień, albo spróbuj wybrac UNO zamiast NANO przed kompilacją i próbą wpisu.


    Po zmianie płytki na OLD pomogło.
    Dziękuję bardzo za wskazówki i pomoc.
  • #7
    emarcus
    Level 38  
    lighter1974 wrote:


    Po zmianie płytki na OLD pomogło.
    Dziękuję bardzo za wskazówki i pomoc.


    No to teraz wpisz nowy bootloader "OPTI" i będziesz miał w pełni kontabilną płytkę -UNO, o wiele szybszą w programowaniu; 115200 baud zamiast 57600 i nieco więcej dostępnej pamięci we flash (różnica ok 1,5k).
    Jeżeli masz dwie płytki, to jedną wykorzystaj na tymczasowy programator dla tej drugiej.
    Nie jest to process ani długi , ani skomplikowany...
  • #9
    kaczakat
    Level 33  
    Żeby wgrać nowy bootloader do Arduino najprościej użyć klonów programatora USBASP (kłopotliwy w Arduino IDE>1.8.5, ale są tu na forum informacje jak podminić AVRDUDE) lub AVR ISP MKII. Można też zrobić programator z innego Arduino, opis np. tu: Link i jest też mnóstwo tutoriali na Youtube, np.: Link.
  • #10
    Wlodek22
    Level 30  
    Mam dwa identyczne klony nano i próbowałem wgrać przez ISP, ale się nie da. Tak samo jak przy pierwszym uruchomieniu bez zmienny na Old bootloader nie pasuje mu sygnatura. I nie zależnie już ot tego czy wybieramy stary czy nowy bootloader, zawsze kończy się błędem.
  • #11
    kaczakat
    Level 33  
    Albo masz uszkodzony sprzęt albo nie umiesz wgrać. Opisz mi jak to robisz zakładając, że właśnie wylądowałem na Ziemi i nie mam pojęcia jak to robić, a chcesz mi wytłumaczyć jak, wgraj swój log błędów (z pełnymi komunikatami ustawionymi w opcjach), pokaż schemat podłączeń z którego korzystasz, to może ktoś zauważy gdzie robisz błąd. Jak np. korzystałem z AVR LAB++ z programatorem zrobionym na NANO to jedyną akceptowalną prędkością była 115200 (w przykładowym szkicu jest 19200). Problemem może być też wersja AVRDUDE z Arduino, trzeba podmienić na tą z AVR LAB ++ 2.4.
  • #12
    Wlodek22
    Level 30  
    W końcu kupiłem programator USBasp i wgrałem za pierwszym razem.

    Dziękuję za chęć pomocy.
  • #14
    Wlodek22
    Level 30  
    On miał jedną z nowym bootloaderem, a ja obie "lewe", pewnie dlatego nie dało się wgrać
  • #15
    kaczakat
    Level 33  
    Bootloder jest nieważny w tym trybie programowania, ważna jest wersja AVRDUDE, nowa nie obsługuje Arduino ISP i USBASP, przynajmniej tak było u mnie. Po zainstalowaniu nowszej jak nie działa USBASP należy podmienić AVR DUDE, polecam tą z AVR LAB Link , plik exe i konfiguracyjny, w Arduino są w różnych katalogach. Błędów możesz mieć więcej, najprościej zainwestuj dychę w USBASP. Jak masz Arduino Micro możesz też sobie zrobić programator MKII opisany przeze mnie tutaj: Link, działa w nowej wersji AVR DUDE bez problemu i Atmel Studio 6 i 7.
  • #16
    Wlodek22
    Level 30  
    Kupiłem USBasp, podłączyłem kable, w arduino ide wybrałem ten programator (USBasp) i wgrało bez problemów. Nie instalowałem AVRDUDE i widzę, że uniknąłem dodatkowych problemów.
  • #17
    khoam
    Level 41  
    Wlodek22 wrote:
    Kupiłem USBasp, podłączyłem kable, w arduino ide wybrałem ten programator (USBasp) i wgrało bez problemów. Nie instalowałem AVRDUDE i widzę, że uniknąłem dodatkowych problemów.

    Jaką wersję Arduino IDE masz zainstalowaną?
  • #18
    Wlodek22
    Level 30  
    1.8.8(Windows Store 1.8.19.0)
    Instalowana z Microsoft Store
  • #20
    Wlodek22
    Level 30  
    Nie mając zielonego pojęcia o C++ oto co udało mi się zmajstrować przez dwa dni, gdzie półtora spędziłem póbując odczytać nie właściwy rejestr modbusa.
    Jest to dwufazowy monitor energii na bazie chińskiego PZEM-016 na rs485. Zrobiony w programie FLprog.