реклама на сайте
подробности

 
 
> Прошивка ATtiny по spi другим микроконтроллером
Twen
сообщение Apr 16 2012, 10:07
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 163
Регистрация: 7-02-09
Пользователь №: 44 543



Добрый день! Есть задача прошить Attiny через spi c помощью другого контроллера. Сам обмен с контроллером происходит нормально, возвращается байт 0x53, но есть вопрос по поводу алгоритмов записи и чтения, у меня он происходит как-то не корректно, возможно я что-то упустил.
С начала я посылаю команду Programming Enable, получаю необходимый байт 0x53(третий), потом посылаю комманду Chip Erase (которая происходит успешно), получаю сдвинутые байты.

Теперь самое интересное, запись. Я выполняю команды Load Instruction(сначала загужаю младший байт):
-Load Program Memory Page, Low byte
-Load Program Memory Page, Hight byte

Для примера, есть массив c 6 байт array[6] = { 1, 2, 3, 4, 5, 6 }; для загрузки я делаю следующее:
0x40 0x00 0x00(адрес) 0x01(младший байт)
0x48 0x00 0x00(адрес) 0x02(старший байт)

0x40 0x00 0x01(адрес) 0x03(младший байт)
0x48 0x00 0x01(адрес) 0x04(старший байт)

0x40 0x00 0x02(адрес) 0x05(младший байт)
0x48 0x00 0x02(адрес) 0x06(старший байт)

Потом выполняю инструкцию Write Program Memory Page:
0x4C adr_MSB adr_LSB 0x00, где adr_MSB - это номер страницы(даташит, рис. 21.8), а Add_LSB смещение относ. базового адреса страницы. Начальный адресс флешь = 0x00.

0x4C 0x00(первая страница) 0x00(смещение относ. адреса текущей стр.) 0x00(всегда 0) - запись первого слова;
0x4C 0x00(первая страница) 0x01(смещение относ. адреса текущей стр.) 0x00(всегда 0) - запись второго слова(2-ух байт);
0x4C 0x00(первая страница) 0x02(смещение относ. адреса текущей стр.) 0x00(всегда 0) - запись третего слова;


Чтение:
Выполняю инструкцию Read(нужно прочитать 6 байт, те которые и записал...если записал):
Read Program Memory, Low byte 0x20 addr_MSB(номер стр.) adr_LSB(смещ. относ. адреса текущей стр.), любой байт(вернет low_data_byte);
Read Program Memory, High byte...

0x20 0x00(номер стр.) 0x00(смещ.) X(любой байт - возвр. low_data_byte) - должен получить значение "1"
0x28 0x00(номер стр.) 0x00(смещ.) X(любой байт - возвр. high_data_byte) - должен получить значение "2"

0x20 0x00(номер стр.) 0x01(смещ.) X(любой байт - возвр. low_data_byte) - должен получить значение "3"
0x28 0x00(номер стр.) 0x01(смещ.) X(любой байт - возвр. high_data_byte) - должен получить значение "4"

0x20 0x00(номер стр.) 0x02(смещ.) X(любой байт - возвр. low_data_byte) - должен получить значение "5"
0x28 0x00(номер стр.) 0x02(смещ.) X(любой байт - возвр. high_data_byte) - должен получить значение "6"

На самом деле, когда я по такому алгоритму записываю байт 50(сначала загружаю load, потом write, потом читаю) получается при чтении не то-что я писал, какая-то каша...когда пишу 6 байт, как у примере, то не записывается первый байт, а остальные 5 запис., опять же при увелич. колич. записанных байт за раз выходи каша.

Возможно я не правильно понял алгоритм записи и чтения, буду благодарен за просветление.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Twen   Прошивка ATtiny по spi другим микроконтроллером   Apr 16 2012, 10:07
- - YAM   Приведу рабочий пример для tiny2313: Код// Load Pr...   Apr 16 2012, 14:36
- - Twen   У меня Attiny48, но суть таже, спасибо, завтра буд...   Apr 16 2012, 15:31
|- - YAM   Цитата(Twen @ Apr 16 2012, 18:31) Выходит...   Apr 17 2012, 05:34
- - ReAl   Цитата(Twen @ Apr 16 2012, 13:07) Потом в...   Apr 17 2012, 06:33
- - Twen   Спасибо, сейчас буду пробовать.   Apr 17 2012, 07:33
- - Twen   Прошить получилось! Прошил бинарный файл, счит...   Apr 17 2012, 11:10
|- - YAM   Цитата(Twen @ Apr 17 2012, 14:10) Прошить...   Apr 17 2012, 17:01
- - Twen   Ребята, заработало, я скомпилировал bin файл у Win...   Apr 18 2012, 07:36
- - Twen   Ребята, заработало, я скомпилировал bin файл у Win...   Apr 18 2012, 07:45
- - Twen   Когда я объявляю хотям бы одну переменную и компил...   Apr 18 2012, 18:15
- - ReAl   Работа с переменными в ОЗУ организуется в программ...   Apr 18 2012, 18:52
- - Twen   Частота по умолчанию 1Mhz, разную задержку ставил....   Apr 18 2012, 21:12
- - Twen   Зашил программу написанную на ассемблере, в которо...   Apr 20 2012, 09:37
- - Twen   Итог сегодняшней работы таков: - в иаре для аvr со...   Apr 21 2012, 12:29


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 14:32
Рейтинг@Mail.ru


Страница сгенерированна за 0.0137 секунд с 7
ELECTRONIX ©2004-2016