El software parpadea attiny167 de RPi con avrdude

1

Estoy tratando de flashear un programa en un attiny167 (ya cargado con el cargador de arranque micronucleus ) con una Raspberry Pi a través de avrdude y USB.

Fondo

Tengo 50 Raspberry Pi 3B conectados a un servidor de Amazon que recopila datos.

Tengo 50 PCB con sensores USB personalizados basados en attiny167 que conectaré a la Pis vía USB ( vea este anterior para más detalles )
Es una lucha para acceder y conectar cada dispositivo (especialmente 50 de ellos), y, por lo tanto, necesito poder volver a actualizar un programa a través de la línea de comandos de un RPi.

Los he cargado todos desde mi máquina con Windows 10 y puedo flashear cualquier programa a través de USB.

RPis

He flasheado programas del RPi con un Arduino Uno, tanto con el IDE como con avrdude.  Arduino y avrdude están instalados y funcionan (se instalan ambos con apt-get).

El RPi puede ejecutar un programa ya flasheado, con lectura y escritura  posible desde el dispositivo USB.  Cuando está enchufado, el comando lsusb ve el dispositivo durante 5 segundos.  El programa pre-flash entonces se ejecuta y lsusb no muestra ningún dispositivo:

lsusb inmediatamente después de conectar el dispositivo al puerto

 pi@raspberrypi:/usr/bin $ lsusb
 Bus 001 Device 005: ID 046d:c077 Logitech, Inc.
 Bus 001 Device 006: ID 413c:2011 Dell Computer Corp. Multimedia Pro Keyboard
 Bus 001 Device 004: ID 413c:1005 Dell Computer Corp. Multimedia Pro Keyboard Hub
 Bus 001 Device 007: ID 16d0:0753 MCS Digistump DigiSpark
 Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
 Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
 Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

lsusb ~ 5 segundos después de conectar el dispositivo al puerto

 pi@raspberrypi:/usr/bin $ lsusb
 Bus 001 Device 005: ID 046d:c077 Logitech, Inc.
 Bus 001 Device 006: ID 413c:2011 Dell Computer Corp. Multimedia Pro Keyboard
 Bus 001 Device 004: ID 413c:1005 Dell Computer Corp. Multimedia Pro Keyboard Hub
 Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
 Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
 Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

udev rules

He seguido el tutorial para las reglas de udev por digistump y colocó el archivo en /etc/udev/rules.d/49-micronucleus.rules

UDEV de tinseey (similar a micronucleus de arranque para attiny167)

Dispositivo AVR

esta publicación insinúa que puede no ser posible, sin embargo, este problema puede haberse resuelto, ya que estoy usando un attiny167 (en lugar de un 85), y el Pi no se reinicia en el USB que se está enchufando.

Al usar dmesg puede ver que no se puede enumerar. dmesg

[ 9820.701327] usb 1-1.2: new low-speed USB device number 7 using dwc_otg
[ 9820.803813] usb 1-1.2: New USB device found, idVendor=16d0, idProduct=0753
[ 9820.803838] usb 1-1.2: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 9825.208851] usb 1-1.2: USB disconnect, device number 7
[ 9828.001334] usb 1-1.2: new low-speed USB device number 8 using dwc_otg
[ 9833.081359] usb 1-1.2: device descriptor read/64, error -110
[ 9833.271389] usb 1-1.2: device descriptor read/64, error -71
[ 9833.461352] usb 1-1.2: new low-speed USB device number 9 using dwc_otg
[ 9833.541349] usb 1-1.2: device descriptor read/64, error -71
[ 9833.731352] usb 1-1.2: device descriptor read/64, error -71
[ 9833.921349] usb 1-1.2: new low-speed USB device number 10 using dwc_otg
[ 9834.341388] usb 1-1.2: device not accepting address 10, error -71
[ 9834.421361] usb 1-1.2: new low-speed USB device number 11 using dwc_otg
[ 9834.841371] usb 1-1.2: device not accepting address 11, error -71
[ 9834.841480] usb 1-1-port2: unable to enumerate USB device

avrdude

Estoy usando el comando, con diferentes puertos serie

usr/bin/avrdude -p attiny167 -c arduino -C /etc/avrdude.conf -b 19200 -P [COM PORT] -U flash:w:[MyHexFile.ino.hex]:i

esto da el error

avrdude: ser_open(): can't open device "[COM PORT]": No such file or directory

avrdude done.  Thank you.

El mismo método funciona con el Uno en Pi y el dispositivo AVR en mis máquinas con Windows 10.

He actualizado el archivo de configuración avrdude.conf para incluir el attiny167, Como lo hice con mi máquina con Windows 10.

Puerto serie

serial y ttyACMO aparecen con Uno en / dev, no para el dispositivo AVR.

IDE de Arduino

Intenté hacer esto a través del IDE pero obtuve el error:

/home/pi/Downloads/arduino-1.8.1/arduino-builder -dump-prefs -logger=machine -hardware /home/pi/Downloads/arduino-1.8.1/hardware -hardware /home/pi/.arduino15/packages -tools /home/pi/Downloads/arduino-1.8.1/tools-builder -tools /home/pi/Downloads/arduino-1.8.1/hardware/tools/avr -tools /home/pi/.arduino15/packages -built-in-libraries /home/pi/Downloads/arduino-1.8.1/libraries -libraries /home/pi/Arduino/libraries -fqbn=digistump:avr:digispark-tiny -ide-version=10801 -build-path /tmp/arduino_build_279218 -warnings=none -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.micronucleus.path=/home/pi/.arduino15/packages/digistump/tools/micronucleus/2.0a4 -prefs=runtime.tools.avr-gcc.path=/home/pi/.arduino15/packages/arduino/tools/avr-gcc/4.8.1-arduino5 -verbose /home/pi/sensicorn/sensicorn/indoorSoftware/Arduino Code/neopixel_simple/neopixel_simple.ino
/home/pi/Downloads/arduino-1.8.1/arduino-builder -compile -logger=machine -hardware /home/pi/Downloads/arduino-1.8.1/hardware -hardware /home/pi/.arduino15/packages -tools /home/pi/Downloads/arduino-1.8.1/tools-builder -tools /home/pi/Downloads/arduino-1.8.1/hardware/tools/avr -tools /home/pi/.arduino15/packages -built-in-libraries /home/pi/Downloads/arduino-1.8.1/libraries -libraries /home/pi/Arduino/libraries -fqbn=digistump:avr:digispark-tiny -ide-version=10801 -build-path /tmp/arduino_build_279218 -warnings=none -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.micronucleus.path=/home/pi/.arduino15/packages/digistump/tools/micronucleus/2.0a4 -prefs=runtime.tools.avr-gcc.path=/home/pi/.arduino15/packages/arduino/tools/avr-gcc/4.8.1-arduino5 -verbose /home/pi/sensicorn/sensicorn/indoorSoftware/Arduino Code/neopixel_simple/neopixel_simple.ino
Using board 'digispark-tiny' from platform in folder: /home/pi/.arduino15/packages/digistump/hardware/avr/1.6.7
Using core 'tiny' from platform in folder: /home/pi/.arduino15/packages/digistump/hardware/avr/1.6.7
Detecting libraries used...
"/home/pi/.arduino15/packages/arduino/tools/avr-gcc/4.8.1-arduino5/bin/avr-g++" -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections  -w -x c++ -E -CC -mmcu=attiny85 -DF_CPU=16500000L -DARDUINO=10801 -DARDUINO_AVR_DIGISPARK -DARDUINO_ARCH_AVR  "-I/home/pi/.arduino15/packages/digistump/hardware/avr/1.6.7/cores/tiny" "-I/home/pi/.arduino15/packages/digistump/hardware/avr/1.6.7/variants/digispark" "/tmp/arduino_build_279218/sketch/neopixel_simple.ino.cpp" -o "/dev/null"
Generating function prototypes...
"/home/pi/.arduino15/packages/arduino/tools/avr-gcc/4.8.1-arduino5/bin/avr-g++" -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections  -w -x c++ -E -CC -mmcu=attiny85 -DF_CPU=16500000L -DARDUINO=10801 -DARDUINO_AVR_DIGISPARK -DARDUINO_ARCH_AVR  "-I/home/pi/.arduino15/packages/digistump/hardware/avr/1.6.7/cores/tiny" "-I/home/pi/.arduino15/packages/digistump/hardware/avr/1.6.7/variants/digispark" "/tmp/arduino_build_279218/sketch/neopixel_simple.ino.cpp" -o "/tmp/arduino_build_279218/preproc/ctags_target_for_gcc_minus_e.cpp"

fork/exec /home/pi/.arduino15/packages/arduino/tools/avr-gcc/4.8.1-arduino5/bin/avr-g++: no such file or directory
Error compiling for board Digispark (Default - 16.5mhz).

cuando escribo which avr-g++ : / usr / bin / avr-g ++, esto es solo una copia de mi máquina Windows. Encontré este problema de github y parece ser irrelevante por ahora, solo un problema de ruta.

He tenido que usar un archivo json personalizado para que el administrador de la junta encuentre micronúcleo y Digispark Pro.

Cuando conecto el dispositivo AVR, no se muestra ningún puerto serie nuevo en Herramientas- > Puerto (a diferencia de Arduino UNO, aparece ttyACM0).

Prefiero hacer flash a través de avrdude o similar en la línea de comandos, por lo que no me he centrado en esto.

Mi pregunta

¿Es posible flashear el dispositivo AVR con una Raspberry Pi a través de USB? Si es así, ¿qué estoy haciendo mal?

    
pregunta AidenRay

0 respuestas

Lea otras preguntas en las etiquetas