Перейти к содержанию

Простой SPI Flash программатор...


Рекомендуемые сообщения

Опубликовано

Oчень простой SPI Flash memory программатор SPI программатор, для LPT-порта.

Это скрытый контент, для просмотра сообщения Вы должны быть Участником форума.

SPI FlashROM Programmer 1.6 © 2008-2009 by Martin Rehak; rayer@seznam.cz
Compiled by GCC 3.4.5 (mingw-vista special r3) at 22:49:21, Jan 21 2009
(Win9x/NT/2K/XP compatability)
 
SYNTAX: spipgm /i|r|d|e|p [filename] [address] [/l=iobase] [/d=delay]
/i - identify SPI FlashROM
/r address size - read & display data block (0x prefix = hexa number)
/d filename - dump entire FlashROM to file
/p filename - program entire FlashROM from file (without erase)
/e - erase entire FlashROM
/u - unlock write protection bits (may depend on WP# level)
/l= LPT port I/O base address (default is 378h - LPT1)
/d= additional delay for SPI clock pulse width [usec] (default is 0)
 
LPT to SPI pin assignment (based on BSD AVR programmer):
pin 7 = D5 -> CS#
pin 8 = D6 -> SCK (CLK)
pin 9 = D7 -> MOSI (DIO)
pin 10 = ACK -> MISO (DO)
pin 18 = GND -> GND
 
1) Идентифицируем флешку ===> SPIPGMW.EXE /i
 
spipgm>SPIPGMW.EXE /i
 
SPI FlashROM Programmer 1.6 © 2008-2009 by Martin Rehak; rayer@seznam.cz
Compiled by GCC 3.4.5 (mingw-vista special r3) at 22:49:21, Jan 21 2009
(Win9x/NT/2K/XP compatability)
 
SPI connected to LPT port at I/O base address: 378h, SCK pulse width: t+0us
FlashROM JEDEC ID, type: 010214h
Spansion S25FL016A (2MB)
Status = 00h (SRP, RES, TB , BP2, BP1, BP0, WEL, BSY)
0 0 0 0 0 0 0 0
 
2) Делаем дамп SPIPGMW.EXE /d
 
spipgm>SPIPGMW.EXE /d flash.bin
 
SPI FlashROM Programmer 1.6 © 2008-2009 by Martin Rehak; rayer@seznam.cz
Compiled by GCC 3.4.5 (mingw-vista special r3) at 22:49:21, Jan 21 2009
(Win9x/NT/2K/XP compatability)
 
SPI connected to LPT port at I/O base address: 378h, SCK pulse width: t+0us
FlashROM JEDEC ID, type: 010214h
Spansion S25FL016A (2MB)
Reading sector at: 001FF000h (100%)
3) Разблокируем флешку для записи ===> SPIPGMW.EXE /u
spipgm>SPIPGMW.EXE /u
SPI FlashROM Programmer 1.6 © 2008-2009 by Martin Rehak; rayer@seznam.cz
Compiled by GCC 3.4.5 (mingw-vista special r3) at 22:49:21, Jan 21 2009
(Win9x/NT/2K/XP compatability)
SPI connected to LPT port at I/O base address: 378h, SCK pulse width: t+0us
FlashROM JEDEC ID, type: 010214h
Spansion S25FL016A (2MB)
Status = 02h, WE bit is enabled
Unlocking...
Status = 00h, device is unlocked now
 
4) Стираем флешку ! ===> SPIPGMW.EXE /e
 
spipgm>SPIPGMW.EXE /e
 
SPI FlashROM Programmer 1.6 © 2008-2009 by Martin Rehak; rayer@seznam.cz
Compiled by GCC 3.4.5 (mingw-vista special r3) at 22:49:21, Jan 21 2009
(Win9x/NT/2K/XP compatability)
 
SPI connected to LPT port at I/O base address: 378h, SCK pulse width: t+0us
FlashROM JEDEC ID, type: 010214h
Spansion S25FL016A (2MB)
Status = 02h, WE bit is enabled
Please wait... done.
 
5) Запишим дамп ===> SPIPGMW.EXE /p
 
spipgm>SPIPGMW.EXE /p Flash.bin
 
SPI FlashROM Programmer 1.6 © 2008-2009 by Martin Rehak; rayer@seznam.cz
Compiled by GCC 3.4.5 (mingw-vista special r3) at 22:49:21, Jan 21 2009
(Win9x/NT/2K/XP compatability)
 
SPI connected to LPT port at I/O base address: 378h, SCK pulse width: t+0us
FlashROM JEDEC ID, type: 010214h
Spansion S25FL016A (2MB)
Programming page at: 001FFF00h (100%)
6) Сделаем дамп что бы проверить успешность записи ===> SPIPGMW.EXE /d
spipgm>SPIPGMW.EXE /d flash.bin
SPI FlashROM Programmer 1.6 © 2008-2009 by Martin Rehak; rayer@seznam.cz
Compiled by GCC 3.4.5 (mingw-vista special r3) at 22:49:21, Jan 21 2009
(Win9x/NT/2K/XP compatability)
SPI connected to LPT port at I/O base address: 378h, SCK pulse width: t+0us
FlashROM JEDEC ID, type: 010214h
Spansion S25FL016A (2MB)
Reading sector at: 001FF000h (100%)
 
Поддерживаемые  памяти:
AMIC:

A25L05PU/PT (64kB)
A25L10PU/PT (128kB)
A25L20PU/PT (256kB)
A25L40PU/PT (512kB)
A25L80PU/PT (1MB)
A25L16PU/PT (2MB)
A25L32PU/PT (4MB)
A25L64PU/PT (8MB)
A25L512 (64kB)
A25L010 (128kB)
A25L020 (256kB)
A25L040 (512kB)
A25L080 (1MB)

Atmel:
AT26F004 (512kB)
AT26DF041 (512kB)
AT26DF081A (1MB)
AT26DF161A (2MB)
AT26DF321 (4MB)

EON:
EN25P16 (2MB)
EN25P32 (4MB)
EN25P64 (8MB)
EN25P128 (16MB)
EN25F20 (256kB)
EN25F40 (512kB)
EN25F80 (1024B)
EN25F16 (2MB)
EN25F32 (4MB)
EN25F64 (8MB)
EN25F128 (16MB)

ESMT:
F25L004A (512kB)
F25S04PA (512kB)
F25L08PA (1024B)
F25L16PA (2MB)
F25L32PA (4MB)
F25L32QA (4MB)

Macronix:
MX25L1005 (128kB)
MX25L2005 (256kB)
MX25L4005 (512kB)
MX25L8005 (1MB)
MX25L1605 (2MB)
MX25L3205 (4MB)
MX25L6405 (8MB)

PMC:
Pm25LV512A (64kB)
Pm25LV010A (128kB)
Pm25LV020 (256kB)
Pm25LV040 (512kB)
Pm25LV080B (1MB)
Pm25LV016B (2MB)
Pm25LV032B (4MB)
Pm25LV064B (8MB)

Spansion:
S25FL004A (512kB)
S25FL008A (1MB)
S25FL016A (2MB)
S25FL032A (4MB)
S25FL064A (8MB)
S25FL128P (16MB)

SST:
SST25VF010 (128kB)
SST25VF020 (256kB)
SST25VF040 (512kB)
SST25VF080 (1MB)
SST25VF016 (2MB)
SST25VF032 (4MB)
SST25VF064 (8MB)
SST25VF128 (16MB)
SST26VF016 (2MB)
SST26VF032 (4MB)
SST26VF064 (8MB)
SST25VF064C (8MB)

ST Microelectronic:
M25P10 (128kB)
M25P20 (256kB)
M25P40 (512kB)
M25P80 (1MB)
M25P16 (2MB)
M25P32 (4MB)
M25P64 (8MB)
M25P128 (16MB)

Winbond:
W25Q10 (128kB)
W25Q20BV (256kB)
W25Q40BV (512kB)
W25Q80BV (1MB)
W25Q16BV (2MB)
W25Q32BV (4MB)
W25Q64BV (8MB)
W25Q128BV (16MB)
W25X10 (128kB)
W25X20 (256kB)
W25X40 (512kB)
W25X80 (1MB)
W25X16 (2MB)
W25X32 (4MB)
W25X64 (8MB)


Это скрытый контент, для просмотра сообщения Вы должны быть Участником форума.

P.S
Хороший программатор, но при стирании памяти вылезло следующее сообщение: 10h, unlock failed,
set WP# PIN AT HIGH LEVEL для решения этой проблемы подаем на 3 ногу (WP) логический ноль, т.е. спаиваем  3 и 4 ногу вместе.

Обратная связь здесь

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Это очень просто!

Регистрация

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...