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

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

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

Вибір: SF & SD

Існує безліч причин для вибору дискретної флеш-мікросхеми замість підсистеми SD або, навпаки, тому користувачеві необхідно вибирати компроміси перед придбанням пристрою. Наведений нижче список містить кілька аргументів, які потрібно знати, перед вибором DIP-чіпа або повноцінного SD-рішення:


  1. Апаратна складність, перевага має SF. DIP-пакет з дискретною флеш-мікросхемою набагато простіше використовувати, ніж SD.
  2. Складність програмного забезпечення, перевагу має SF. Підсистема флеш-пам 'яті SD зазвичай спирається на бібліотеки SD Fat16/32. Хоча пристрої є інтерфейсом SPI, має сенс використовувати FAT, оскільки будь-який ПК/МАС може зчитувати карту. Ці бібліотеки великі і можуть займати дорогоцінний простір 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/op^ ROM на материнських платах, картах контролера мережі/графіки/зберігання і на різних інших пристроях програмування. Функціональні можливості:

  1. Підтримує понад 476 чіпів флеш-пам 'яті, 291 наборів мікросхем, 500 материнських плат, 79 пристроїв PCI, 17 пристроїв USB і різні программатори Spi Flash на основі паралельних/послідовних портів.
  2. Підтримує паралельні інтерфейси, інтерфейси флеш-пам 'яті LPC, FWH і SPI і різні пакети мікросхем (, , , , , , BGA та інші).
  3. Фізичний доступ не потрібен, root-доступ достатній або взагалі не потрібен для деяких программаторів.
  4. Не потрібна завантажувальна дискета, КД-ROM або інший носій.
  5. Клавіатура і монітори не потрібні, просто перепрошуються віддалено через SSH.
  6. Не потрібно миттєве перезавантаження.
  7. Переписують чіп в працюючій системі і перевіряють його, нова прошивка буде працювати при наступному завантаженні.
  8. Доступна часткова підтримка Windows.

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

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

Він перевіряє зв 'язок між мікроконтролером і ПК. Потрібно провести тестування HID-виявлення (Human Interface Device), яке усуне багато помилок, таких як проблеми з мікроконтролером, кристалами і USB. Перед початком використання програми переконуються, що блимає світлодіод LED, який потім уповільнює процес миготіння. Якщо программатор не виявлено, перевіряють перехресні з 'єднання та інструкції. Якщо його виявлено, переходять до наступного кроку.

Програмування за допомогою 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) та інформації про довжину даних. Використовуючи існуючі базові функції, можна розширити код для підтримки великої системи доступу до файлів.


Накопичувач USBEEPROM

Программатор 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. EXE - самостійне встановлення архіву з USB на послідовний драйвер.

Усунення збоїв роботи мікроконтролерів

Коли користувач починає працювати з мікроконтролерами, він, ймовірно, зіткнеться з проблемами при програмуванні, на вирішення яких будуть потрібні години або дні, а іноді вони просто нерозв 'язні. Досвідчені програмісти поділилися своїми напрацюваннями усунення різних порушень, ось деякі з них:

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