SPI Flash для AVR

Железо, связанное с TS-Conf

Postby TS-Labs » Sat, 28.06.2014 13:59:35

Запилил доступ к внешнему флэшу из аврки, цепляется на разъем JTAG вот так.

Схема подключения:
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 - стирание сектора, перед вызовом необходимо задать адрес, стирание происходит за время порядка нескольких мс, в течение этого времени в статусном регистре будет статус "занято", другие команды вызывать нельзя
User avatar
TS-Labs
 
Posts: 5222
Joined: Thu, 26.07.2012 01:29:56

Postby TS-Labs » Sat, 28.06.2014 14:02:47

Пока что конфа не грузится с флэша, это добавлю позже. Нужна утилита для спека, которая позволит записывать во флэш собсна конфу.
Есть проблема: питание разъема и напряжение сигналов берутся с питания атмеги, которое (у меня) равно 4.22В.
Микросхема флэша по даташиту допускает напряжение питания до 4В напряжение сигналов до 4.3В. Т.е. tenemos una problema. В промышленном варианте придется поставить буфер и стаб на 3.3В.
User avatar
TS-Labs
 
Posts: 5222
Joined: Thu, 26.07.2012 01:29:56


Return to Hardware

Who is online

Users browsing this forum: No registered users and 5 guests

x