The hostname of the Pi Zero is pi3, it was the third Pi Zero I have setup (it is a bad hostname). The default bootload address on the RPUftdi (e.g. my multi-drop RS-422 board) is '0', and I have not changed it, I keep the i2c-debug firmware on an ATmega328p board under the RPUftdi for use on my test bench, so I will just upload that same program compiled from the Pi Zero.
rsutherland@pi3:~/Samba/RPUno/i2c-debug $ uname -a Linux pi3 4.9.41+ #1023 Tue Aug 8 15:47:12 BST 2017 armv6l GNU/Linux rsutherland@pi3:~/Samba/RPUno/i2c-debug $ make bootload avr-gcc -Os -g -std=gnu99 -Wall -ffunction-sections -fdata-sections -DF_CPU=16000000UL -DBAUD=38400UL -I. -mmcu=atmega328p -c -o main.o main.c avr-gcc -Os -g -std=gnu99 -Wall -ffunction-sections -fdata-sections -DF_CPU=16000000UL -DBAUD=38400UL -I. -mmcu=atmega328p -c -o i2c-scan.o i2c-scan.c avr-gcc -Os -g -std=gnu99 -Wall -ffunction-sections -fdata-sections -DF_CPU=16000000UL -DBAUD=38400UL -I. -mmcu=atmega328p -c -o i2c-cmd.o i2c-cmd.c avr-gcc -Os -g -std=gnu99 -Wall -ffunction-sections -fdata-sections -DF_CPU=16000000UL -DBAUD=38400UL -I. -mmcu=atmega328p -c -o ../Uart/id.o ../Uart/id.c avr-gcc -Os -g -std=gnu99 -Wall -ffunction-sections -fdata-sections -DF_CPU=16000000UL -DBAUD=38400UL -I. -mmcu=atmega328p -c -o ../lib/timers.o ../lib/timers.c avr-gcc -Os -g -std=gnu99 -Wall -ffunction-sections -fdata-sections -DF_CPU=16000000UL -DBAUD=38400UL -I. -mmcu=atmega328p -c -o ../lib/uart.o ../lib/uart.c avr-gcc -Os -g -std=gnu99 -Wall -ffunction-sections -fdata-sections -DF_CPU=16000000UL -DBAUD=38400UL -I. -mmcu=atmega328p -c -o ../lib/twi.o ../lib/twi.c avr-gcc -Os -g -std=gnu99 -Wall -ffunction-sections -fdata-sections -DF_CPU=16000000UL -DBAUD=38400UL -I. -mmcu=atmega328p -c -o ../lib/rpu_mgr.o ../lib/rpu_mgr.c avr-gcc -Os -g -std=gnu99 -Wall -ffunction-sections -fdata-sections -DF_CPU=16000000UL -DBAUD=38400UL -I. -mmcu=atmega328p -c -o ../lib/adc.o ../lib/adc.c avr-gcc -Os -g -std=gnu99 -Wall -ffunction-sections -fdata-sections -DF_CPU=16000000UL -DBAUD=38400UL -I. -mmcu=atmega328p -c -o ../lib/parse.o ../lib/parse.c avr-gcc -Wl,-Map,I2c-debug.map -Wl,--gc-sections -mmcu=atmega328p main.o i2c-scan.o i2c-cmd.o ../Uart/id.o ../lib/timers.o ../lib/uart.o ../lib/twi.o ../lib/rpu_mgr.o ../lib/adc.o ../lib/parse.o -o I2c-debug.elf avr-size -C --mcu=atmega328p I2c-debug.elf AVR Memory Usage ---------------- Device: atmega328p Program: 8684 bytes (26.5% Full) (.text + .data + .bootloader) Data: 375 bytes (18.3% Full) (.data + .bss + .noinit) rm -f I2c-debug.o main.o i2c-scan.o i2c-cmd.o ../Uart/id.o ../lib/timers.o ../lib/uart.o ../lib/twi.o ../lib/rpu_mgr.o ../lib/adc.o ../lib/parse.o avr-objcopy -j .text -j .data -O ihex I2c-debug.elf I2c-debug.hex rm -f I2c-debug.elf avrdude -v -p atmega328p -c arduino -P /dev/ttyAMA0 -b 115200 -U flash:w:I2c-debug.hex avrdude: Version 6.1, compiled on Jul 7 2015 at 10:29:47 Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/ Copyright (c) 2007-2014 Joerg Wunsch System wide configuration file is "/etc/avrdude.conf" User configuration file is "/home/rsutherland/.avrduderc" User configuration file does not exist or is not a regular file, skipping Using Port : /dev/ttyAMA0 Using Programmer : arduino Overriding Baud Rate : 115200 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 : Arduino Description : Arduino Hardware Version: 3 Firmware Version: 4.4 Vtarget : 0.3 V Varef : 0.3 V Oscillator : 28.800 kHz SCK period : 3.3 us avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.00s avrdude: Device signature = 0x1e950f avrdude: safemode: lfuse reads as 0 avrdude: safemode: hfuse reads as 0 avrdude: safemode: efuse reads as 0 avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed To disable this feature, specify the -D option. avrdude: erasing chip avrdude: reading input file "I2c-debug.hex" avrdude: input file I2c-debug.hex auto detected as Intel Hex avrdude: writing flash (8684 bytes): Writing | ################################################## | 100% 1.20s avrdude: 8684 bytes of flash written avrdude: verifying flash memory against I2c-debug.hex: avrdude: load data flash data from input file I2c-debug.hex: avrdude: input file I2c-debug.hex auto detected as Intel Hex avrdude: input file I2c-debug.hex contains 8684 bytes avrdude: reading on-chip flash data: Reading | ################################################## | 100% 0.95s avrdude: verifying ... avrdude: 8684 bytes of flash verified avrdude: safemode: lfuse reads as 0 avrdude: safemode: hfuse reads as 0 avrdude: safemode: efuse reads as 0 avrdude: safemode: Fuses OK (E:00, H:00, L:00) avrdude done. Thank you. rsutherland@pi3:~/Samba/RPUno/i2c-debug $ picocom -b 38400 /dev/ttyAMA0 picocom v1.7 port is : /dev/ttyAMA0 flowcontrol : none baudrate is : 38400 parity is : none databits are : 8 escape is : C-a local echo is : no noinit is : no noreset is : no nolock is : no send_cmd is : sz -vv receive_cmd is : rz -vv imap is : omap is : emap is : crcrlf,delbs, Terminal ready /0/id? {"id":{"name":"I2Cdebug^1","desc":"RPUno Board /w atmega328p and LT3652","avr-gcc":"4.8"}} /1/id? {"id":{"name":"PwrMgt","desc":"RPUno Board /w atmega328p and LT3652","avr-gcc":"4.9"}} Thanks for using picocom rsutherland@pi3:~/Samba/RPUno/i2c-debug $
So this seems to have worked. The Pi cross compiler for AVR is older than the one on Ubuntu 16.04.
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.