Хаклаб/Проекти/Arduino базиран EPROM програматор

Од Сподели wiki
Прејди на: содржини, барај

Идејата е да се искористи Arduino наместо да се купува посебен E(E)PROM програматор. Комуникацијата со PC ќе биде по постоечкиот USB-to-Serial кој го има на Arduino-то. Во прв момент се фокусираме само на EPROM, како на пр. 27C64 (8 килобајти), а понатаму би пробале да го адаптираме и за EEPROMи.

Arduino хардверски ресурси

Arduino има на располагање 14 дигитални I/O pin-ови. Распределбата би била вака:

  • 8 pin-а за дата D2-D9 (I/O)
  • 1 pin OE (output enable - се користи при верификација) - Output
  • 1 pin PGM (program mode - 100uS е low со што се активира програмирањето) - Output
  • 1 pin Clock/Increment према бројачите - Output
  • 1 pin Vpp/Vcc контрола - при програмирање мора да уклучиме напони од Vpp=13.0V и Vcc=6.5V кон EPROM-от - Output (алтренативно за reset на бројачите)
  • 2 pin-а D0-D1, сериска комуникација со PC (преку стандардниот USB)
  • reset-от на arduino-то е врзано на reset-от на бројачите CD4040

Шема

Додатни компоненти

  • 2 бројачи CD4040 за адресирање на EPROM-от, вкупно со нив ќе може да се адресира 2^24 т.е. 16MBтни EPROM-и (какви не постојат, но сепак)
  • посебен power supply уред, кој ќе ги дава специјалните напони по потреба

PSU

Ни треба PSU кое работи во два режима. Нормален READ режим кога дава Vcc=Vpp=5V и режим за програмирање кога дава Vcc=6.5V и Vpp=13.0V за EEPROM-от. Режимот се контролира од Arduino-то (алтернативно со физичка преклопка делува многу многу поедноставно).

Во режимот за програмирање веројатно и Arduino-то би се напојувало на 6.5V

Софтверска контрола

Arduino-то не смее да прави ништо на своја рака, додека не добие инструкции од PC-то седи мирно. Отприлика би работело вака (дополнително ќе се осмисли во детали):

  • на бутирање Vpp/Vcc контролата е поставена во нормален режим?
  • бројачите се ресетирани на 0
  • OE е low (active)?
  • Чека команда на серискиот порт од PC-то, првата команда е режимот во кој ќе работи до следниот reset на arduino-то:
    • командата може да биде WRITE, се користи за режење на EPROM-от
    • командата може да биде READ, би се користело за верификација на среженото

Веројатно е многу попаметно да се искористи Firmata (сега кога знам за тоа)

WRT\n (4 бајти)

протокол за режење по блокчиња од 512 бајти ?


RED\n (4 бајти)

протокол за читање на блокчиња од 512 бајти ?

Референци