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

 
 
> Слетает flash
Step_ARM
сообщение Aug 7 2008, 11:28
Сообщение #1


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

Группа: Участник
Сообщений: 132
Регистрация: 11-07-08
Пользователь №: 38 870



Доброго дня всем...
Камень mega32. Загрузка ПО через бутлоадер. Все нормально работает. Но... если создавать помехи быстрым включением и выключением изделия может слетать флэш. Это выглядет примерно так-- изделие либо полностью не рабочее , либо не работает подсветка или индикатор или любая другая часть функций. При этом если прочитать флэш через програматор, то часть оказывается не такой как исходный файл. Причем в разных случаях разная степень подпорченности.
Питание -- стабилизатор 5 В с обвязкой.
Сектор бутлоадера 512 слов. Бут закрыт от записи чтения. Программный сектор не закрыт.
Никто не сталкивался с подобным явлением?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Rst7
сообщение Aug 8 2008, 10:41
Сообщение #2


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
В этом ли дело не уверен


Дело именно в этом. И за этим надо строго следить, чтобы не напрошивали фигни на производстве.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
ReAl
сообщение Aug 9 2008, 05:39
Сообщение #3


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Цитата(Rst7 @ Aug 8 2008, 13:41) *
Дело именно в этом. И за этим надо строго следить, чтобы не напрошивали фигни на производстве.
В особо параноидальных случаях - вплоть до того, что на старте программы проверять значение fuses и в случае чего стопорить работу с какой-то явной индикацией неработоспособности.


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
Petka
сообщение Aug 9 2008, 07:38
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886



Цитата(ReAl @ Aug 9 2008, 09:39) *
В особо параноидальных случаях - вплоть до того, что на старте программы проверять значение fuses и в случае чего стопорить работу с какой-то явной индикацией неработоспособности.

Это как? Что-то не припомню что фузы программно доступны.... 07.gif
Go to the top of the page
 
+Quote Post
sKWO
сообщение Aug 9 2008, 09:53
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 355
Регистрация: 27-03-07
Из: Україна, Чуднів
Пользователь №: 26 530



Цитата(Petka @ Aug 9 2008, 10:38) *
Это как? Что-то не припомню что фузы программно доступны.... 07.gif

Поиск по форуму
Цитата
It is possible to read both the Fuse and Lock bits from software. To read the Lock bits,
load the Z-pointer with 0x0001 and set the RFLB and SELFPRGEN bits in SPMCSR.
When an LPM instruction is executed within three CPU cycles after the RFLB and
SELFPRGEN bits are set in SPMCSR, the value of the Lock bits will be loaded in the
destination register.

В иаре для меги так
Код
#include <inavr.h>

#define _GET_LOCK_BITS() __AddrToZByteToSPMCR_LPM( (void __flash *) 0x0001, 0x09 )
#define _GET_LOW_FUSES() __AddrToZByteToSPMCR_LPM( (void __flash *) 0x0000, 0x09 )
#define _GET_HIGH_FUSES() __AddrToZByteToSPMCR_LPM( (void __flash *) 0x0003, 0x09 )
#define _GET_EXTENDED_FUSES() __AddrToZByteToSPMCR_LPM( (void __flash *) 0x0002, 0x09 )
#define _SET_LOCK_BITS(data) __DataToR0ByteToSPMCR_SPM( data, 0x09 )
#define _ENABLE_RWW_SECTION() __DataToR0ByteToSPMCR_SPM( 0x00, 0x11 )

#define _WAIT_FOR_SPM() while( SPMCR_REG & (1<<SPMEN) );

// Read lock bits.
_WAIT_FOR_SPM();
sendchar( _GET_LOCK_BITS() );

// Read fuse bits.
_WAIT_FOR_SPM();
sendchar( _GET_LOW_FUSES() );

// Read high fuse bits.
_WAIT_FOR_SPM();
sendchar( _GET_HIGH_FUSES() );

// Read extended fuse bits.
_WAIT_FOR_SPM();
sendchar( _GET_EXTENDED_FUSES() );


--------------------
нельзя недооценивать предсказуемость глупости
Go to the top of the page
 
+Quote Post
ReAl
сообщение Aug 9 2008, 10:28
Сообщение #6


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Цитата(sKWO @ Aug 9 2008, 12:53) *
Поиск по форуму
Именно так. Только не по форуму, а по родной документации от атмел :-)
Кажется, у всех, у кого есть SPM - при помощи LPM можно прочесть fuses.
У тини13 точно можно :-)


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
sKWO
сообщение Aug 9 2008, 18:11
Сообщение #7


Местный
***

Группа: Участник
Сообщений: 355
Регистрация: 27-03-07
Из: Україна, Чуднів
Пользователь №: 26 530



Цитата(ReAl @ Aug 9 2008, 13:28) *
У тини13 точно можно :-)

Всё правильно. Я привёл вырезку из стандартной документации от Атмел на ATtiny13 стр.100 ДШ doc2535.pdf. Автор Xorval для даной тиньки читал содержимое фусов таким образом:
Код
char fuses_low_byte, fuses_high_byte;
SPMCSR=9;
fuses_low_byte=*((char __flash *)0); // Read fuses low byte
SPMCSR=9;
fuses_high_byte=*((char __flash *)3); // Read fuses high byte


--------------------
нельзя недооценивать предсказуемость глупости
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Step_ARM   Слетает flash   Aug 7 2008, 11:28
- - Rst7   Включите BOD. Это раз. Во вторых - было бы правиль...   Aug 7 2008, 11:35
- - GDI   Портится если в процессе программирования питание ...   Aug 7 2008, 12:11
|- - Step_ARM   Цитата(GDI @ Aug 7 2008, 16:11) Портится ...   Aug 7 2008, 12:16
- - Rst7   Попробуйте залить основной код программатором. При...   Aug 7 2008, 12:34
|- - Step_ARM   Цитата(Rst7 @ Aug 7 2008, 16:34) Попробуй...   Aug 7 2008, 12:46
- - GDI   ЦитатаВ работе. Тогда ищите источник помехи, котор...   Aug 7 2008, 12:37
|- - defunct   Цитата(GDI @ Aug 7 2008, 15:37) Тут была ...   Aug 7 2008, 15:16
|- - Step_ARM   Цитата(defunct @ Aug 7 2008, 19:16) Причи...   Aug 7 2008, 19:09
|- - defunct   Цитата(Step_ARM @ Aug 7 2008, 22:09) Разв...   Aug 7 2008, 19:37
- - Aleksandr Baranov   И что, если обычным программатором запрограммировт...   Aug 7 2008, 12:46
|- - Step_ARM   Цитата(Aleksandr Baranov @ Aug 7 2008, 16...   Aug 7 2008, 18:43
|- - SasaVitebsk   Цитата(Step_ARM @ Aug 7 2008, 21:43) Загр...   Aug 7 2008, 21:57
- - EmbedElektrik   у меня такое тоже было, но питание нарастало медле...   Aug 7 2008, 12:49
- - Rst7   ЦитатаДело в том , что я это уже делал Понятно. С...   Aug 7 2008, 13:00
- - Flasher   Схема питается от импульсного источника питания?   Aug 7 2008, 13:23
- - SasaVitebsk   1) Какая у вас частота процессора. 2) Какое напряж...   Aug 7 2008, 17:13
- - Angelo   Вместо 7805 предлагаю для эксперимента нашу 1156ЕН...   Aug 7 2008, 18:51
- - rtfcnf   конденсатор КМ-5 0,01 - 0,1 мкФ на ножки питания м...   Aug 7 2008, 19:20
|- - Step_ARM   Цитата(rtfcnf @ Aug 7 2008, 23:20) конден...   Aug 8 2008, 10:33
- - VDG   Сотрите всю флеш - и бут и программу или чистый ко...   Aug 7 2008, 19:27
|- - Petka   Цитата(sKWO @ Aug 9 2008, 13:53) Поиск по...   Aug 9 2008, 10:27
- - ArtemKAD   ЦитатаЯ не могу электролиты убрать помехи слишком ...   Aug 8 2008, 18:52
- - demaven   столкнулись с такой проблеммой на меге16, перепроб...   Aug 9 2008, 04:08
|- - Step_ARM   Цитата(demaven @ Aug 9 2008, 08:08) столк...   Aug 9 2008, 07:46
- - Flasher   так в схему встроить автономный программатор, чтоб...   Aug 9 2008, 07:43
- - Petka   Цитата(Flasher @ Aug 9 2008, 11:43) так в...   Aug 9 2008, 08:15


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

 


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


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