Программатор Spi Flash своими руками

Микропрограммное обеспечение предварительно установлено в устройства флэш-памяти перед изготовлением печатной платы, поддерживая высокую пропускную способность. Тем не менее есть преимущества в программировании флэш-памяти уже после ее выпуска, то есть до того, как она была припаяна к плате. Программатор Spi Flash (SF) с дискретной флэш-памятью имеет существенные преимущества перед обычными SD. Его цена обычно не превышает 1/10 стоимости флешки, использует гораздо меньший форм-фактор и требует небольшого количества специального оборудования.

Выбор: SF & SD

Обоснование использования: SF & SD

Существует множество причин для выбора дискретной флэш-микросхемы вместо подсистемы SD или, наоборот, поэтому пользователю необходимо выбирать компромиссы перед приобретением устройства. Приведенный ниже список содержит несколько аргументов, которые нужно знать, перед выбором DIP-чипа или полноценного SD-решения:

  1. Аппаратная сложность, преимущество имеет SF. DIP-пакет с дискретной флеш-микросхемой намного проще использовать, чем SD.
  2. Сложность программного обеспечения, преимущество имеет SF. Подсистема флэш-памяти SD обычно опирается на библиотеки SD Fat16/32. Хотя устройства являются интерфейсом SPI, имеет смысл использовать FAT, поскольку любой ПК/MAC может считывать карту. Эти библиотеки большие и могут занимать драгоценное пространство EEPROM на малых встроенных контроллерах.
  3. Емкость и портативность, преимущество имеет SD. Можно использовать SD-карту большей емкости в существующем дизайне без изменений. Дискретная SPI имеет более низкие пределы плотности.
  4. Стоимость, преимущество имеет SF.
  5. Мощность, преимущество имеет SF. SD-карты обычно имеют более высокую мощность утечки из-за более высокой плотности и высокой динамической мощности из-за скорости доступа.
  6. Скорость, преимущество имеет SD. SD-флэш-память поставляется во многих различных SKU, основанных на скорости в основном из-за требований цифровой фотографии и использования необработанных форматов изображений.

Флэш-память SPI

Флэш-память SPI- это тип энергонезависимой памяти, основанный на технологии MOSFET. Энергонезависимое означает, что устройство сохраняет все данные, в том числе, когда не включено. Флэш-память работает, перенося группу носителей заряда на диэлектрик. Это называется программированием и обычно выполняется с более высоким напряжением. Процесс не безобидный, он на самом деле повреждает материал, и после 100 тыс. циклов устройство выходит из строя. Чтобы снять носители заряда с диэлектрика, при одинаковом высоком напряжении на обратном потенциале снимают носители с затвора. Это называется стиранием.

Запрограммированный флэш-бит имеет значение 0, а стертый бит имеет значение 1, стертый флэш-байт равен 0xFF в шестнадцатеричном формате. В настоящее время флэш-память может хранить несколько битов на ячейке, с использованием уровней напряжения. С учетом роста требований к объему памяти это становится все более сложным выполнить конструкционно.

Преимущество Spi Flash программаторов USB заключается в простоте программного обеспечения, код в основном сдвигает данные выводов DI и DO, соответственно по переднему фронту тактовой частоты. Часы контролируются хостом, для них не требуется причудливая схема синхронизации: фазы могут быть настолько асимметричными, насколько нужно, при условии соблюдения минимальных требований к ширине цикла устройства.

Утилита для идентификации

Flashrom - это утилита для идентификации, чтения, записи, проверки и удаления флеш-чипов. Она предназначена для прошивки образов BIOS/EFI/coreboot/firmware/optionROM на материнских платах, картах контроллера сети/графики/хранения и на различных других устройствах программирования. Функциональные возможности:

  1. Поддерживает более 476 чипов флэш-памяти, 291 наборов микросхем, 500 материнских плат, 79 устройств PCI, 17 устройств USB и различные программаторы Spi Flash на основе параллельных/последовательных портов.
  2. Поддерживает параллельные интерфейсы, интерфейсы флэш-памяти LPC, FWH и SPI и различные пакеты микросхем (DIP32, PLCC32, DIP8, SO8/SOIC8, TSOP32, TSOP40, TSOP48, BGA и другие).
  3. Физический доступ не требуется, root-доступ достаточен или вообще не требуется для некоторых программаторов.
  4. Не требуется загрузочная дискета, CD-ROM или другой носитель.
  5. Клавиатура и мониторы не требуются, просто перепрошиваются удаленно через SSH.
  6. Не требуется мгновенная перезагрузка.
  7. Переписывают чип в работающей системе и проверяют его, новая прошивка будет работать при следующей загрузке.
  8. Доступна частичная поддержка Windows.

DIY: универсальные программы создания

DIY универсальные

Это лучший для микроконтроллеров PIC и AVR программатор Spi Flash, своими руками, может быть, его создать не получится, но устройство не дорогое, стоит меньше 10 $ и выполняется из легко доступных компонентов.

Преимущества:

  1. Бесплатное ПО с открытым исходным кодом.
  2. Нет необходимости устанавливать дополнительные драйверы, использует драйвер HID (Human Interface Device), который обычно применяется для клавиатуры и мыши.
  3. Поддерживает много устройств PIC и AVR.
  4. Поддерживает платформы Windows и Linux.
  5. Состоит из микроконтроллера PIC18F2550 - мозга программатора Spi Flash.
  6. Разъем USB-B подключается к компьютеру.
  7. Имеется два светодиодных индикаторов, один для индикации подключения программатора, другой показывает статус программирования.

Микроконтроллер PIC18F2550

Микроконтроллер PIC18F2550

Основные три последовательных заголовка (J1, J2 и J3) используются для связи с ведомым устройством микроконтроллера. Использование выводов различно в разных микроконтроллерах. Переключатель сброса добавлен к блоку контроллера для установки сброса программатора. PIC18F2550 мигает с помощью шестнадцатеричного кода прошивки, можно использовать другие последовательные или параллельные программаторы Spi Flash PIC.

Он проверяет связь между микроконтроллером и ПК. Требуется провести тестирование HID-обнаружения (Human Interface Device), которое устранит много ошибок, таких как проблемы с микроконтроллером, кристаллами и USB. Перед началом использования программы убеждаются, что мигает светодиод LED, который затем замедляет процесс мигания. Если программатор не обнаружен, проверяют перекрестные соединения и инструкции. Если он обнаружен, переходят к следующему шагу.

Программирование через OpenProg

Программирование через OpenProg

Устанавливают программу OpenProg на ПК, запускают и проверяют подключенное устройство. Последовательность прошивки программатора Spi Flash:

  1. Подключают USB-разъем к ПК.
  2. Открывают OpenProg и убеждаются, что программатор обнаружен.
  3. Нажимают «Параметры» -> «Проверка оборудования».
  4. Выполняют аппаратный тест. Он проверяет все контакты программирования, и пользователь может легко отлаживать устройство при обнаружении ошибок.
  5. Аппаратный тест показывает напряжение на VODU, VPPU, CLK, DATA, PGM в разные моменты времени, что важно учитывать при выполнении своими руками программатора Spi Flash на SMD.
  6. Измеряют напряжение между выводами VODU, VPPU, CLK, DATA, PGM и проверяют его значениями на экране.
  7. VPP может иметь разницу в 1 В из-за преобразования переменного тока в постоянный.
  8. Если напряжение этих выводов части контроллера и то, что отображается на экране, схожи, программатор работает отлично.
  9. Если напряжение отличается, проверяют цепь соответствующих контактов.

Дизайн печатной платы

Дизайн печатной платы

Эта печатная плата разработана в Eagle 7.2. Размер пластины 7,5 х 7 см, она выполнена на автоматическом травильном станке. Печатная плата также может быть изготовлена с помощью химического травления в домашних условиях.

Компоненты JA, JB, JC являются перемычками. По схеме тщательно проверяют это и сначала, во время сборки компонентов, устанавливают перемычки. Для обеспечения безопасности PIC18F2550 во время пайки используют 28-контактное основание IC.

Плата расширения связывает программатор с микроконтроллером. Различные серии микроконтроллеров имеют разные контакты и конфигурацию для программирования. Это дает пользователям преимущество в простоте программирования микроконтроллера.

Плата расширения может быть легко сделана с использованием перфорированной доски или в специальных заготовок для плат, приобретенных в торговой сети. Для серий микроконтроллеров используется разные платы расширений. Для LVICP от 5 В до 3,3 В необходим регулятор напряжения, такой как LM1117 или аналогичный ему.

Устройство 3.3 В должно быть запрограммировано только с использованием платы расширения 3.3 В, в противном случае может произойти необратимое повреждение. Некоторые из плат имеют вариант 5 В. Если нужно запрограммировать на 5 В, можно выбрать опцию «Не требовать платы низкого напряжения». Также не рекомендуется размещать 24F-33F в гнездо 30F, которое работает при 5 В.

Завершение процесса создания

Завершение процесса создания

После изготовления части контроллера и платы расширения, можно сразу перейти к программированию устройства:

  1. Находят устройство и серию устройства для программирования.
  2. Выбирают подходящую плату расширения устройства.
  3. Подключают устройство к плате расширения.
  4. Присоединяют плату расширения к блоку контроллера.
  5. Подключают соединительный кабель USB B к программатору и к ПК.
  6. Открывают OpenProg.exe и убеждаются, что программатор обнаружен.
  7. Открывают устройства и выбирают нужное для программирования.
  8. Нажимают зеленую стрелку в верхней части, чтобы прочитать устройство.
  9. Для записи/прошивки нажимают левую кнопку сверху, чтобы выбрать код «.hex», и нажимают «Ok».
  10. Нажимают красную кнопку со стрелкой рядом с зеленой кнопкой со стрелкой, чтобы запрограммировать устройство.
  11. Убеждаются, что LED мигает во время программирования, показывая статус процесса.
  12. Проверяют результат и убеждаются, что мигание прошло успешно.
Статус программирования в ПО

Последовательная SPI AT45DB161D

Простой Spi Flash программатор SPI (AT45DB161D) представляет собой 16-мегабитную (2 МБайт) 2,5 В или 2,7 В флэш-память с последовательным интерфейсом, идеально подходящего для широкого спектра приложений, предназначенных для хранения программного кода и данных.

Всего 2097152 байта (0x1FFFFF) организованы в 4096 страниц с 512 байтами на страницу. Несмотря на то, что чип предлагает различные варианты стирания, библиотека программного обеспечения поддерживает стирание блоков, причем один блок содержит 4 Кбайт.

Чтобы перезаписать существующие данные, сначала необходимо удалить соответствующий блок. Чтение и запись данных осуществляется довольно простым способом, в основном путем предоставления адреса чтения/записи (от 0 до 0x1FFFFF) и информации о длине данных. Используя существующие базовые функции, можно расширить код для поддержки обширной системы доступа к файлам.

USB- накопитель EEPROM

USB- накопитель EEPROM

Программатор Spi Flash EEPROM серии 25 с программным обеспечением и поддержкой драйверов и 25-SPI флэш-память 8-контактный/16-контактный имеет следующие функциональные возможности:

  1. Автоматическая идентификация модели чипа 25 серия.
  2. Поддержка USB в TTL.
  3. Автоматическое определение чипа серии 25.
  4. Поддержка загрузки STC серии.
  5. Процедура однокристального микроконтроллера STC программатора Spi Flash ch341a поддерживает полный спектр загрузки программ для разнообразного ПО: резервного копирования, стирания, программирования, калибровки и других перемещений.
  6. Обеспечивает выход питания 5 В - 3,3 В.
  7. Размер: 70 мм х 27 мм
  8. CH341SER.EXE - самостоятельная установка архива с USB на последовательный драйвер.

Устранение сбоев работы микроконтроллеров

Когда пользователь начинает работать с микроконтроллерами, он, вероятно, столкнется с проблемами при программировании, на решение которых потребуются часы или дни, а иногда они просто неразрешимы. Опытные программисты поделились своими наработками устранения различных нарушений, вот некоторые из них:

  1. При любом сбое вначале проверяют блок питания. Иногда случается так, что источник питания не подходит к программатору и требуется внешний источник питания.
  2. Выбирают правильный последовательный порт в программном обеспечении.
  3. Прежде чем использовать программатор, необходимо установить драйверы, необходимые для его функционирования. Когда подключается программатор в первый раз, он автоматически устанавливает их, если есть соединение с интернетом, иногда потребуется указать расположение драйверов.
  4. Повышение напряжения. Многие микроконтроллеры требуют подтягивания в своей цепи, прежде чем могут быть запрограммированы, так микроконтроллер пикасе требует 10 кОм подтягивающего резистора на последовательном выводе, иначе показывает ошибку.
  5. Программное обеспечение для программирования не обнаруживает микроконтроллер - это опять-таки проблема с блоком питания, проверяют БП снова и подключают программатор к компьютеру.

После выполнения своими руками USB программатора Spi Flash пользователь получит SF, выполненную собственноручно для системного программирования. Она будет легко управляться компьютером через шину USB благодаря удобному интерфейсу и мощным функциями.

Статья закончилась. Вопросы остались?
Комментарии 0
Подписаться
Я хочу получать
Правила публикации
Редактирование комментария возможно в течении пяти минут после его создания, либо до момента появления ответа на данный комментарий.