Използване на Flash паметта от програмата в АТtiny84
Автор
Съобщение
Ugeen
Ранг: Новодошъл
Регистриран на: Пон Яну 16, 2006 5:20 pm Мнения: 122 Местоположение: гр. Горна Оряховица
Използване на Flash паметта от програмата в АТtiny84
Колеги,от опита който имам с ползването на контролери ATMEGA и ATTINY разбрах, че EEPROM не е сигурно място за съхраняване на константи ,особено ако устройството работи в автомобили където захранването е пълно с пикове от четките на генератора, когато двигателят работи.Налага ми се да съхраня една 16 битова константа и искам да я запиша във Flash паметта.Проблема е че тази константа
се генерира еднократно от програмата която изпълнява процесора при първото включване на захранването на устройството .Четох по въпроса от пдф на АТtiny84 и разбрах че това става с инструкциите SPM ,LPM ,но нещо не ми стана ясно от тези обяснения.Наясно съм с това че за да се запише една клетка от flash трябва да се изтрие цялата страница в която се намира адреса и после да се запише пак с новото съдържание.Тъй като програмата ми няма да заеме цялата памет мисля да ползвам празна страница която в АТtiny84 е 64 байта ,което не налага да съхранявам данните във временен буфер и след това да ги връщам обратно.Явно в С кода ще трябва да включа и асемблер за да ползвам гореспоменатите инструкции(Ползвам CodevisionAVR).Искам от програмата да мога да изтривам въпросната страница и в нея да записвам само един адрес с 16 битова константа.Ще ви бъда благодарен ако ми подскажете с някакъв примерен асемблерски код за тази операция.
Що не пробваш с някой по-голям кондензатор. Иначе наистина можеш да пишеш само цели страници. И не бих разчитал на дадена страница ако е презаписвана над 1000 пъти.
Някъде бях писал за пробата един код, ще се пробвам да го изровя.
Бутлоудъри за AVR има много по нета. Разглеждаш сорса на някой от тях и си вземаш готови функции. Иначе Atmel имаха Aplication Note за бутлоудър също може и от него да видиш. Отделно си спомням че като ми трябваше в документацията беше ясно описано как става и си правих бутлоудър само по нея.
Чет Май 14, 2009 9:29 pm
Ugeen
Ранг: Новодошъл
Регистриран на: Пон Яну 16, 2006 5:20 pm Мнения: 122 Местоположение: гр. Горна Оряховица
ОК ,ще поровя из нета за някой bootloader за да видя как става.По принцип на мен ще ми трябва за едно RF дистанционно,като целта е е само при първия старт на предавателя ,той да си генерира random 16битов адрес което ще го направи уникален сам по себе си.Така че страницата ще се запише еднократно и това е.Не гоня сигурност иначе бих го направил със скачащ код,просто искам ако имам няколко устройства в близост да не реагират на команди които не са за тях.
Потребители разглеждащи този форум: 0 регистрирани и 4 госта
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл