2 заметки с тегом

SPI

Прошивка AVR микроконтроллеров с помощью Orange Pi

AVRDUDE  — мощная программа для прошивки микроконтроллеров Atmel серии AVR. Разработчик Brian S. Dean. Программа поддерживает множество программаторов. AVRDUDE кросплатформенная.

apt-get install bison flex
git clone https://github.com/kcuzner/avrdude
cd ./avrdude/avrdude
./bootstrap
./configure --prefix=/usr
make
sudo make install

После инсталляции avrdude посмотрим что он умеет:

avrdude -c ?type

В списке программаторов должны увидеть linuxspi — это то, что нам нужно.

Подключаем микроконтроллер к Orange Pi по следующей схеме:

в файле /usr/etc/avrdude.conf
меняем строку reset = 25; на reset = 19;
Используя библиотеку WiringOtherPi и команду gpio readiall вывод reset можно заменить на любой другой, смотрим в столбце BCM.

читаем Flash и пишем в файл dump.hex

avrdude -p m328p -c linuxspi -P /dev/spidev0.0  -U flash:r:dump.hex:i

выполняем сравнение (верификацию) Flash памяти с указанным hex файлом

avrdude -p m328p -c linuxspi -P /dev/spidev0.0  -U flash:v:dump.hex

Подробнее о AVRDUDE и примеры использования можно найти здесь AVRDUDE Windows, или в документации AVRDUDE — AVR Downloader/UploaDEr.

2017   armbian   AVRDUDE   OrangePI PC   SPI

Прошивка чипов с SPI интерфейсом при помощи OrangePi

Flashrom — консольная утилита для идентификации, чтения, записи, проверки и стирания микросхем Flash.
на Orange Pi Zero замечательно работает Программатор из Orange Pi Zero, также и у меня на raspberry.
C OrangePi Pc пока не победил.
Отметьтесь в комментариях, у кого завелся программатор на OpiPC

Установкаf flashrom :

apt-get install pciutils-dev pkg-config
git clone https://github.com/flashrom/flashrom.git
cd flashrom

make CONFIG_INTERNAL=no CONFIG_RAYER_SPI=no CONFIG_NIC3COM=no CONFIG_GFXNVIDIA=no CONFIG_SATASII=no \
CONFIG_ATAHPT=no CONFIG_DRKAISER=no CONFIG_NICREALTEK=no CONFIG_NICNATSEMI=no \
CONFIG_NICINTEL=no CONFIG_NICINTEL_SPI=no CONFIG_OGP_SPI=no CONFIG_SATAMV=no

make install

spi_mosi = port:PC00
spi_miso = port:PC01
spi_sclk = port:PC02
spi_cs0 = port:PC03

Поддерживаемые микросхемы флэш-памяти
тест замкнкть MOSI and MISO

wget https://raw.githubusercontent.com/raspberrypi/linux/rpi-3.10.y/Documentation/spi/spidev_test.c
gcc -o spidev_test spidev_test.c
./spidev_test -D /dev/spidev0.0

root@orangepipc:~/flashrom# ./spidev_test -D /dev/spidev0.0
spi mode: 0
bits per word: 8
max speed: 500000 Hz (500 KHz)

FF FF FF FF FF FF
40 00 00 00 00 95
FF FF FF FF FF FF
FF FF FF FF FF FF
FF FF FF FF FF FF
DE AD BE EF BA AD
F0 0D


Если запустить flashrom без параметров, то он попытается определить тип подключенного чипа
-V — verbose режим (вывод служебных сообщений )

flashrom -p linux_spi:dev=/dev/spidev0.0  -V

Для прошивки чипа используется команда:

sudo flashrom -w /home/firmware.bin -V -p linux_spi:dev=/dev/spidev0.0

здесь -w — команда на запись прошивки (write), после неё указывается путь до файла с прошивкой (/home/firmware.bin), -p — тип программатора.
Если в качестве программатора выступает OrangePi, то тип будет linux_spi:dev=/dev/spidev0.0,
-V — verbose режим (вывод служебных сообщений во время прошивки)

Перед записью чип желательно очистить командой

sudo flashrom -E -p linux_spi:dev=/dev/spidev0.0

Считать прошивку в файл можно командой

sudo flashrom -r /путь_до_файла/ -p linux_spi:dev=/dev/spidev0.0

Верификация

sudo flashrom -v /путь_до_файла/ -p linux_spi:dev=/dev/spidev0.0
2017   armbian   Flashrom   GPIO   OrangePI PC   SPI