Отговори на тема  [ 4 мнения ] 
Използване на Flash паметта от програмата в АТtiny84 
Автор Съобщение
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Пон Яну 16, 2006 5:20 pm
Мнения: 122
Местоположение: гр. Горна Оряховица
Мнение Използване на Flash паметта от програмата в АТtiny84
Колеги,от опита който имам с ползването на контролери ATMEGA и ATTINY разбрах, че EEPROM не е сигурно място за съхраняване на константи ,особено ако устройството работи в автомобили където захранването е пълно с пикове от четките на генератора, когато двигателят работи.Налага ми се да съхраня една 16 битова константа и искам да я запиша във Flash паметта.Проблема е че тази константа
се генерира еднократно от програмата която изпълнява процесора при първото включване на захранването на устройството .Четох по въпроса от пдф на АТtiny84 и разбрах че това става с инструкциите SPM ,LPM ,но нещо не ми стана ясно от тези обяснения.Наясно съм с това че за да се запише една клетка от flash трябва да се изтрие цялата страница в която се намира адреса и после да се запише пак с новото съдържание.Тъй като програмата ми няма да заеме цялата памет мисля да ползвам празна страница която в АТtiny84 е 64 байта ,което не налага да съхранявам данните във временен буфер и след това да ги връщам обратно.Явно в С кода ще трябва да включа и асемблер за да ползвам гореспоменатите инструкции(Ползвам CodevisionAVR).Искам от програмата да мога да изтривам въпросната страница и в нея да записвам само един адрес с 16 битова константа.Ще ви бъда благодарен ако ми подскажете с някакъв примерен асемблерски код за тази операция.


Чет Май 14, 2009 10:34 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Съб Сеп 25, 2004 12:32 pm
Мнения: 8382
Местоположение: София
Мнение 
Що не пробваш с някой по-голям кондензатор. :) Иначе наистина можеш да пишеш само цели страници. И не бих разчитал на дадена страница ако е презаписвана над 1000 пъти.
Някъде бях писал за пробата един код, ще се пробвам да го изровя.


Чет Май 14, 2009 6:32 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Окт 31, 2004 9:19 pm
Мнения: 4464
Местоположение: Stara Zagora
Мнение 
Бутлоудъри за AVR има много по нета. Разглеждаш сорса на някой от тях и си вземаш готови функции. Иначе Atmel имаха Aplication Note за бутлоудър също може и от него да видиш. Отделно си спомням че като ми трябваше в документацията беше ясно описано как става и си правих бутлоудър само по нея.


Чет Май 14, 2009 9:29 pm
Профил
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Пон Яну 16, 2006 5:20 pm
Мнения: 122
Местоположение: гр. Горна Оряховица
Мнение 
ОК ,ще поровя из нета за някой bootloader за да видя как става.По принцип на мен ще ми трябва за едно RF дистанционно,като целта е е само при първия старт на предавателя ,той да си генерира random 16битов адрес което ще го направи уникален сам по себе си.Така че страницата ще се запише еднократно и това е.Не гоня сигурност иначе бих го направил със скачащ код,просто искам ако имам няколко устройства в близост да не реагират на команди които не са за тях.


Чет Май 14, 2009 10:16 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 4 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 1 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни