Схема подключения:
- Code: Select all
SPI AVR
--------------------
1 nCSO TMS PF5
2 DATA0 TDO PF6
3 VCC
4 GND
5 ASDO TCK PF4
6 DCLK TDI PF7
7 VCC
8 VCC
Доступ через порты глючасов:
#EFF7 - запись #80 чтоб открыть доступ
#DFF7 - запись номера регистра часиков
#BFF7 - чтение/запись регистра
Для выбора интерфейса флэша в регистр #F0 надо записать #80.
Функционал регистров:
#F0 W - переключение расширенного функционала глючасов (описано в доке на бейзу)
#F1 W - запись контрола/команд
#F1 R - чтение статуса
#F2 RW - адрес, биты 0-7
#F3 RW - адрес, биты 8-15
#F4 RW - адрес, биты 16-23
#F8 RW - данные
#FF R - чтение версии (текущая #01).
Регистр контроля:
бит 7 - включение интерфейса: включен SPI Flash (1), включен JTAG (0)
биты 0-3 - запись команды
Биты статуса:
7 - интерфейс активен
1 - ошибка
0 - занят выполнением команды
Адрес увеличивается на 1 при каждом чтении/записи байта данных.
Команды:
0x01 DONE - завершение выполнения команд: чтения, записи
0x02 ID - чтение байта идентификации микросхемы флэша
0x03 READ - чтение, перед вызовом необходимо задать адрес, при чтении адрес зациклен на весь объем флэша, после прочтения нужного кол-ва байт необходимо вызвать команду DONE
0x04 WRITE - запись, перед вызовом необходимо задать адрес, при записи адрес зациклен на 256 байт, после записи нужного кол-ва байт необходимо вызвать команду DONE. Запись происходит за время порядка 1мс, в течение этого времени в статусном регистре будет статус "занято", другие команды вызывать нельзя
0x05 ERSBLK - стирание чипа, стирание происходит за время порядка нескольких секунд, в течение этого времени в статусном регистре будет статус "занято", другие команды вызывать нельзя
0x06 ERSSEC - стирание сектора, перед вызовом необходимо задать адрес, стирание происходит за время порядка нескольких мс, в течение этого времени в статусном регистре будет статус "занято", другие команды вызывать нельзя