Stk500 в ubuntu - не удается залить прошивку

Тема в разделе "Arduino & Shields", создана пользователем pav_77, 12 ноя 2020.

  1. pav_77

    pav_77 Нерд

    Понемногу "перелезаю" на на линукс. В Win самодельный stk500 прекрасно шьет из AvrStudio. В Linux при попытке прошить из Adruino-IDE выдает следующее:

    System wide configuration file is "/home/user/arduino-1.8.13/hardware/tools/avr/etc/avrdude.conf"
    User configuration file is "/home/user/.avrduderc"
    User configuration file does not exist or is not a regular file, skipping

    Using Port : usb
    Using Programmer : stk500v2
    avrdude: usbdev_open(): did not find any USB device "usb" (0x03eb:0x2104)

    при использовании встроенного загрузчика все шьется нормально - в какую сторону копать?
    ps. В качестве моста usb-uart пробовал использовать cp2102 и ch340.
    На плате ардуино стоит ch340
     
  2. AlexU

    AlexU Гуру

    Подключите свой самопальный stk500 к системе и посмотрите на вывод команды:
    Код (Bash):
    lsusb
    есть ли в списке устройство с ID 03eb:2104 ?
     
  3. pav_77

    pav_77 Нерд

    Нет. В винде программатор подключался через виртуальный ком-порт на cp2102 и ch340. В линуксе, как я понимаю, нужно прописать настройки в какой-то конфиг???

    lsusb выводит при подключении через cp2102 и ch340:
    Bus 005 Device 002: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP210x UART Bridge / myAVR mySmartUSB light
    Bus 005 Device 003: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter

    при команде ls -l /dev/ttyUSB* выдает dev/ttyUSB0

    Наверное не очень корректно сформулировал вопрос, просто похоже, что линукс обрабатывает подключение программатора через виртуальный ком-порт на cp2102 и ch340 по-другому. Как это можно исправить?
     
  4. ZAZ-965

    ZAZ-965 Гуру

    @pav_77, включите в Arduino IDE подробный вывод загрузки. После распаковки Arduino IDE из tar.xz архива выполняли от рута "arduino_linux_setup.sh username"?
    P.S. Этот скрипт удаляет ModemManager, рекомендую перед запуском скрипта закомментировать удаление ModemManager и всего лишь останавливать службу
    Код (Bash):
    sudo systemctl stop ModemManager.service
    sudo systemctl disable ModemManager.service
     
    Последнее редактирование: 13 ноя 2020
  5. pav_77

    pav_77 Нерд

    Да, т.к. из под юзера установка завершалась с ошибкой. После того как прописал конфиг - встроенный загрузчик arduiono шьет нормально без sudo.
    Хочется использовать свой stk500, который в Винде нормально работает, для прошивки avr в linux.
     
  6. AlexU

    AlexU Гуру

    Т.е. программатор подключается к компу через адаптер?
    Если так, то ошибка связана с тем, что Вы выбираете не правильный тип программатора в Arduino IDE. С тем типом программатора, который выбираете, Arduino IDE "хочет видеть" определённое USB устройство, а не адаптер.
    Поэтому для ответа нужна более подробная информация о Вашем самопальном программаторе.
     
  7. AlexU

    AlexU Гуру

    И ещё, согласно avrdude.conf (по крайней мере в последней версии avrdude) программатор stk500 должен работать через COM-порт. В Вашем случае, например, через /dev/ttyUSB0.
    Но вот это:
    говорит о том, что Arduino IDE почему-то хочет именно определённое USB-устройство.
    Поэтому повторюсь:
    - либо не правильный программатор выбран в Arduino IDE;
    - либо какая-то ошибка в avrdude.conf (что маловероятно).
     
  8. pav_77

    pav_77 Нерд

    программатор такой https://www.drive2.ru/b/518107197389930618/. В AvrStudio программатор выбирался как stk500 и отлично работает, как через адаптер на cp2102 так и на ch340. В Arduino-IDE выбрал AVR-ISP - вывод:
    Код (C++):
    avrdude: Version 6.3-20190619
             Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
             Copyright (c) 2007-2014 Joerg Wunsch

             System wide configuration file is "/home/user/arduino-1.8.13/hardware/tools/avr/etc/avrdude.conf"
             User configuration file is "/home/user/.avrduderc"
             User configuration file does not exist or is not a regular file, skipping

             Using Port                    : /dev/ttyUSB0
             Using Programmer              : stk500v1
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x00
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x00
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x00
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x00
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x00
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x00
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x00
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x00
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x00

    avrdude done.  Thank you.

    Ошибка при записи загрузчика.
     
  9. AlexU

    AlexU Гуру

    Скорее всего Arduino IDE не поддерживает Ваш программатор, но поддержку можно добавить путём правки файла hardware/arduino/avr/programmers.txt.
    Нужно добавить строки типа (за более точной информацией обращайтесь к документации на Arduino IDE):
    Код (Text):
    mySTK500.name=mySTK500
    mySTK500.communication=serial
    mySTK500.protocol=stk500v1
    mySTK500.speed=19200
    mySTK500.program.protocol=stk500v1
    mySTK500.program.speed=19200
    mySTK500.program.tool=avrdude
    mySTK500.program.extra_params=-P{serial.port} -b{program.speed}
    Только нужно прописать правильные значения для параметров 'protocol' и 'speed' (в обоих случаях). Какие не знаю, можно попробовать покопаться в прошивке -- программатор самопальный, значит исходники прошивки должны быть или должна быть информация там, откуда качали прошивку.

    Тот вывод консоли, что привели, может говорить о не правильной скорости COM-порта.
     
  10. pav_77

    pav_77 Нерд

    собственно про это я и спрашивал.
    программатор заработал с такими настройками:
    Код (Text):
    mySTK500.name=mySTK500
    mySTK500.communication=serial
    mySTK500.protocol=stk500v2
    mySTK500.speed=115200
    mySTK500.program.protocol=stk500v2
    mySTK500.program.speed=115200
    mySTK500.program.tool=avrdude
    mySTK500.program.extra_params=-P{serial.port} -b{program.speed}
    AlexU - огромное спасибо за помощь