Skip to content
  • Категории
  • Главная
  • Документация
  • Последние
  • Пользователи
Collapse
  1. Главная
  2. Блоги сообщества Raspberry Pi
  3. Прошивка чипов с SPI интерфейсом при помощи Raspberry Pi

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

Запланировано Прикреплена Закрыта Перенесена Блоги сообщества Raspberry Pi
1 Сообщения 1 Posters 569 Просмотры
  • Сначала старые
  • Сначала новые
  • По количеству голосов
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • piP Не в сети
    piP Не в сети
    pi
    написал в отредактировано pi
    #1

    Всем привет!

    Как-то раз мне потребовалось прошить чип Flash памяти типа 25x40 Если прошивка заливается в чип через SPI интерфейс, то я обычно использую дешёвый китайский программатор CH341A. Но в этот раз чип никак не хотел прошиваться, хотя статусная полоска прогресса записи добегала до 100% без ошибок.

    Тогда я решил подключить чип к SPI линии Raspberry Pi и прошить чип при помощи RasPi и программы Flashrom Сделать это оказалось несложно. Для тех, кто захочет использовать RasPi в качестве программатора я приведу в этом блоге небольшую инструкцию.

    Подключаем чип к Raspberry Pi

    e1214dd5-2892-4b8a-b68e-dec3164c9b18-image.png

    CS - SPI_CE0
    DO - MISO
    WP - 3.3V
    GND - GND
    VCC - 3.3V
    HOLD -3.3V
    CLK - SPI_CLK
    DIO - MOSI
    

    Устанавливаем Flashrom

    Перед установкой активируем SPI-интерфейс через raspi-config, либо подгружаем spi-модули ядра вручную при помощи modprobe
    Устанавливаем необходимые пакеты, от которых зависит успешная компиляция Flashrom:

    sudo apt-get install subversion pciutils pciutils-dev libusb-0.1 libusb-1.0 libusb-1.0-dev
    

    Скачиваем последнюю версию исходников Flashrom из SVN репозитория, компилируем, устанавливаем

    $ svn co svn://flashrom.org/flashrom/trunk flashrom 
    $ cd flashrom 
    $ make 
    $ sudo make install
    

    Прошиваем чип

    Flashrom умеет определять тип подключенного чипа, стирать чип, записывать/считывать прошивку, верифицировать (проверять соответствие файла прошивки с записанной в чип информацией) чип.

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

    sudo flashrom -w /home/pi/firmware.bin -V -p
    

    здесь

    • -w - команда на запись прошивки (write), после неё указывается путь до файла с прошивкой (/home/pi/firmware.bin),
    • -p - тип программатора. Если в качестве программатора выступает Raspberry Pi, то тип будет 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
    

    Если запустить flashrom без параметров, то он попытается определить тип подключенного чипа

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

    Более подробно о командах flashrom можно прочитать тут:

    man flashrom
    

    https://www.flashrom.org/Supported_hardware - на этой странице можно найти список чипов, с которыми flashrom реально тестировался

    На этом всё. Всем добра!
    cb3a4804-9947-40d1-8fe5-947766d7c13b-image.png

    1 ответ Последний ответ
    0

    • Войти

    • Нет учётной записи? Зарегистрироваться

    • Login or register to search.
    • Первое сообщение
      Последнее сообщение
    0
    • Категории
    • Главная
    • Документация
    • Последние
    • Пользователи