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

 
 
> SPM ATtiny84
Artёm
сообщение Nov 22 2007, 06:29
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 17
Регистрация: 12-04-07
Пользователь №: 26 980



Добрый День!

Правильно ли я понял, что SPM инструкции в ATtiny84 можно выполнять из любого места программы?

И у него нет битов BOOTRST, BOOTSZ1, BOOTSZ2.
В этом случае где разместить Boot Loader и как передать ему управление.

И понятие Boot sector пременимо к этому МК?

Сообщение отредактировал Artёm - Nov 22 2007, 06:31
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Artёm
сообщение Nov 23 2007, 11:27
Сообщение #2


Участник
*

Группа: Новичок
Сообщений: 17
Регистрация: 12-04-07
Пользователь №: 26 980



Пробую записать страницу во flash предварительно заполнив последовательностью чисел.
Проверяю в симуляторе: записывает по адресу 0х0200 только одно слово 3F 3E т.е. последнее записываемое слово. Куда пропадают остальные байты


ErasePageFlash(0x0200);
for (i=0;i<32;i++)
{
a = i;
a = a<<1;
FillBuf((i*2), (i*2)+1, a);
}

WritePageToFlash(0x0200);


void FillBuf(unsigned char low, unsigned char hi, unsigned int c)
{
#asm
ldd r1,y+3
ldd r0,y+2
ldd R30,y+1
ldd R31,y+0
#endasm
SPMCSR = 0x01;
#asm
spm
#endasm
}

void WritePageToFlash(unsigned int c)
{
#asm
ldd R31,y+1
ldd R30,y+0
#endasm
SPMCSR = 0x05;
#asm
spm
#endasm
}
Go to the top of the page
 
+Quote Post
=GM=
сообщение Nov 23 2007, 13:05
Сообщение #3


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(Artёm @ Nov 23 2007, 11:27) *
Пробую записать страницу во flash предварительно заполнив последовательностью чисел. Проверяю в симуляторе: записывает по адресу 0х0200 только одно слово 3F 3E т.е. последнее записываемое слово. Куда пропадают остальные байты

У вас адреса разные при заполнении и при записи. Переставьте r30 и r31, чтобы были одинаковые адреса.


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
Artёm
сообщение Nov 23 2007, 13:29
Сообщение #4


Участник
*

Группа: Новичок
Сообщений: 17
Регистрация: 12-04-07
Пользователь №: 26 980



Цитата(=GM= @ Nov 23 2007, 16:05) *
У вас адреса разные при заполнении и при записи. Переставьте r30 и r31, чтобы были одинаковые адреса.


Разные - это я пробывал переставлять, остался последний вариант. Если переставить то все равно не работает.
При заполнении используется ведь адрес слова во временной странице, а при записи номер страницы во flash.
Go to the top of the page
 
+Quote Post
bodja74
сообщение Nov 23 2007, 19:13
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 543
Регистрация: 22-10-05
Пользователь №: 9 984



Цитата(Artёm @ Nov 23 2007, 16:29) *
Разные - это я пробывал переставлять, остался последний вариант. Если переставить то все равно не работает.
При заполнении используется ведь адрес слова во временной странице, а при записи номер страницы во flash.


Процедура сложнее, чем Вы ее себе представляете.

1 Загружаем R0,R1
2 SPMCSR = 0x01
3 Ждем сброса SELFPRGEN
4 Делаем п 1,2,3 пока не заполним страницу
5 SPMCSR = 0x03
6 Ждем сброса SELFPRGEN
7 SPMCSR = 0x05
8 Ждем сброса SELFPRGEN

Если хотим потом прочитать ,что записали
9 SPMCSR = 0x11
10 Ждем сброса SELFPRGEN

Если опять ничего не записали ,смотрим ,может у нас есть фуз SELFPRG smile.gif
Go to the top of the page
 
+Quote Post
=GM=
сообщение Nov 26 2007, 10:27
Сообщение #6


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(bodja74 @ Nov 23 2007, 19:13) *
Процедура сложнее, чем Вы ее себе представляете.

1 Загружаем R0,R1
2 SPMCSR = 0x01
3 Ждем сброса SELFPRGEN
4 Делаем п 1,2,3 пока не заполним страницу
5 SPMCSR = 0x03
6 Ждем сброса SELFPRGEN
7 SPMCSR = 0x05
8 Ждем сброса SELFPRGEN

Если хотим потом прочитать, что записали
9 SPMCSR = 0x11
10 Ждем сброса SELFPRGEN


SELFPRGEN - это фьюз, он не изменяется просто так, например, он программируется внешним последовательным программатором, с помощью команды Write Extended Fuse Bits.


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
Artёm
сообщение Nov 26 2007, 10:56
Сообщение #7


Участник
*

Группа: Новичок
Сообщений: 17
Регистрация: 12-04-07
Пользователь №: 26 980



Цитата(=GM= @ Nov 26 2007, 13:27) *
SELFPRGEN - это фьюз, он не изменяется просто так, например, он программируется внешним последовательным программатором, с помощью команды Write Extended Fuse Bits.


Я и говорю зачем его ждать если он фьюз...

Нашел в исходниках:
while( SPMControllRegister & (1<<SPMEN) ); // Wait until Flash write completed

Может bodja74 это имел ввиду?...
Go to the top of the page
 
+Quote Post
bodja74
сообщение Nov 26 2007, 11:30
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 543
Регистрация: 22-10-05
Пользователь №: 9 984



Цитата(Artёm @ Nov 26 2007, 14:56) *
Я и говорю зачем его ждать если он фьюз...

Нашел в исходниках:
while( SPMControllRegister & (1<<SPMEN) ); // Wait until Flash write completed

Может bodja74 это имел ввиду?...

Да ,я примерно это имел ввиду.

Вы в своих исходниках привели регистр SPMCSR ,а не SPMCR,поэтому я подумал ,что адекватнее было бы говорить про бит SELFPRGEN ,бит SPMEN просто переименовали так smile.gif
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Artёm   SPM ATtiny84   Nov 22 2007, 06:29
- - defunct   Цитата(Artёm @ Nov 22 2007, 09:29) Правил...   Nov 22 2007, 10:58
- - Artёm   Еще вопрос: где находится (в какой памяти) Tempora...   Nov 23 2007, 10:39
|- - Сергей Борщ   Цитата(Artёm @ Nov 23 2007, 12:39) Еще во...   Nov 23 2007, 11:01
|- - defunct   Цитата(Artёm @ Nov 23 2007, 16:29) Если п...   Nov 23 2007, 14:37
|- - Artёm   Цитата(bodja74 @ Nov 23 2007, 22:13) ... ...   Nov 26 2007, 05:41
|- - =GM=   Можно и подождать, вреда не будет, а можно и не жд...   Nov 26 2007, 12:40
|- - Artёm   Цитата(=GM= @ Nov 26 2007, 15:40) Можно и...   Nov 26 2007, 13:14
|- - =GM=   Само собой для вашего случая. Не будем же мы обсуж...   Nov 26 2007, 14:51
- - Artёm   Спасибо всем ответившим. Разобрался. #asm ldd r1,...   Nov 26 2007, 07:41


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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 11:39
Рейтинг@Mail.ru


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