|
Конфигурационные биты и биты защиты Для Mega16, Работаем с PonyProg2000 |
|
|
|
Jul 5 2007, 05:03
|

Местный
  
Группа: Участник
Сообщений: 322
Регистрация: 21-06-07
Из: СНГ
Пользователь №: 28 596

|
Я раньше работал с 51 серией - сейчас потребовалось больше производительности - перешел на AVR... Выбрал МК ATmega16 написал и прогнал на эмуляторе прошивку, собрал SPI внутрисхемный программатор, залез в енет скачал PonyProg2000, но совершенно непонятно как выставлять конфигурационные биты и биты защиты Для Mega16 на PonyProg2000.... Из прочитанного стало ясно, что разные фирмы под включением/отключением битов подразумевают разное... (например по Атмелу включённые биты = 0 , а отключённые = 1 ) А при неправильном выставлении МК можно откачать только высоковольтным программированием... (А у меня такого программатора нет ) Вопрос - как выставить (какие ставить галки в PonyProg2000) конфигурационные биты и биты защиты Для Mega16 ? В общем: 1) Сторожевым таймером я не пользуюсь... 2) Загрузочного сектора (само программирования) у меня нет3) Отключать методы программирования МНЕ НЕ НАДО4) Устанавливать запрет чтения/записи МНЕ тоже НЕ НАДО5) кварц внешний (11,0592)
Сообщение отредактировал QuickWitted - Jul 5 2007, 05:04
--------------------
|
|
|
|
3 страниц
1 2 3 >
|
 |
Ответов
(1 - 35)
|
Jul 5 2007, 06:23
|
Местный
  
Группа: Свой
Сообщений: 234
Регистрация: 30-03-07
Из: Одесса
Пользователь №: 26 621

|
Да, и следуя дружескому совету от QuickWitted , не забывайте, что внутренний программер у АВРов тактируется от основного генератора и при експириментах с фузами генератора никто не запретит переключить их на работу с внешним генератором, вследствии чего проц тоже станет немым до тех пор, пока ему на XTAL1 не сунуть импульсы с какой-нибудь разумной частотой. Я сую ему с генератора импульсов 1 Мгц, кто-то сует с другой Меги, уже сконфигурированной на работу с внешним кварцем сигнал с лапки XTAL2. Мне уже раза 2-3 приходилось производить подобную процедуру, пользуясь ПониПрогом. Даже если запомнить, что 0 - это имеется ввиду "запрограммировано", то бишь с точки зрения программатора 1, а 1 - "незапрограммировано", т.е. 0. На фига придумали такую путаницу, непонятно, возможно для повышения сбыта. В производство мы вместе с хексом мы отдавали снимок экрана с фузами во избежании путаницы. Сейчас перешли на программирование с помощью Атмеловкого программера - стоит всего $50, а шьет на голову быстрее и с фузами рака мозгов нет.
|
|
|
|
|
Jul 5 2007, 07:53
|

Mute Beholder
  
Группа: Свой
Сообщений: 260
Регистрация: 4-04-07
Из: Третья планета от Солнца
Пользователь №: 26 754

|
Цитата(oran-be @ Jul 5 2007, 12:23)  Даже если запомнить, что 0 - это имеется ввиду "запрограммировано", то бишь с точки зрения программатора 1, а 1 - "незапрограммировано", т.е. 0. На фига придумали такую путаницу, непонятно, возможно для повышения сбыта. Из FAQ к WinAVR: 9.9.26 Why have "programmed" fuses the bit value 0? Basically, fuses are just a bit in a special EEPROM area. For technical reasons, erased E[E]PROM cells have all bits set to the value 1, so unprogrammed fuses also have a logical 1. Conversely, programmed fuse cells read out as bit value 0.
--------------------
Common sense is not so common.
|
|
|
|
|
Jul 5 2007, 09:56
|

Местный
  
Группа: Участник
Сообщений: 322
Регистрация: 21-06-07
Из: СНГ
Пользователь №: 28 596

|
Воз и поныне там Может объясните что и как ставить? Установленная галка => Это 1 => Опция выключена? Про внешний кварц галки на: CKSel1, CKSel3 галки нет на: CKSel0, CKSel2, CKOPT Как отрубить бут область? Т.е прерывания идут сразу после метки сброса... галки на: IVSEL, BOOTSZ1, BOOTSZ0 галки нет на: BOOTRST Время сброса максимальное - 16.0 галки нет на: SUT0, SUT1 Порог напряжения сброса схемы контроля питания = 4в галки нет на: BODLEVEL, BODEN JTAG включён галки нет на: JTAGEN Что ещё забыл? Если не сложно закиньте сюда готовый скрипт от лошади... Что бы не было конфузов, например с тактированием или как вариант посоветуете любой другой софт для программатора под WinSP2 ? Вот откопал пример файла конфигурации 1n1p.e2s #------ START -------- #Programming sequence SELECTDEVICE ATmega8 CLEARBUFFER LOAD-PROG FLEA.hex #LOAD-DATA FLEA.epp PAUSE "Connect and powerup the 1n1p, are you ready?" READ-CALIBRATION 0x21FF DATA 3 # <EEProm 8Mhz ERASE-ALL WRITE&VERIFY-ALL #Pay attention to NOT disable RSTDISBL #FUSE HIGH BYT:{RSTDISBL,WDTON,x,CKOPT,EESAVE,BOOTSZ1,BOOTSZ0,BOOTRST} FUSE LOW BYT:{BODLEVEL,BODEN,SUT0,CKSEL3,CKSEL2,CKSEL1,CKSEL0} # 0 0 1 0 0 1 1 0 0 0 0 1 1 0 1 1 WRITE-FUSE 0x261b #Lock: {X,X,X,X,X,x,"Lock2 ","Lock1 "} # 0 0 0 0 0 0 0 0 WRITE-LOCK 0x00 #------- END ---------
Сообщение отредактировал QuickWitted - Jul 5 2007, 09:59
--------------------
|
|
|
|
|
Jul 5 2007, 10:24
|

Народный чинитель
  
Группа: Участник
Сообщений: 415
Регистрация: 15-07-05
Пользователь №: 6 811

|
Цитата Установленная галка => Это 1 => Опция выключена? Б-р-р-р…Версия PonyProg2000 какая? Установленная галка =>Это 0=>Т.е. запрограммировано (programmed) Если в PonyProg открыть панель “Configuration and Security bits” там внизу написано. В скрипте 1 - значит запрограммировано, т.е. галка установлена Вот пример скрипта для вас: #------ START -------- #Programming sequence SELECTDEVICE ATMEGA16 CLEARBUFFER #Вместо myprog.hex и myprog.eep подставляем свою программу LOAD-PROG myprog.hex LOAD-DATA myprog.eep PAUSE "Готов к программированию?" ERASE-ALL WRITE&VERIFY-ALL #Fuse High Byte: {OCDEN,JTAGEN,SPIEN,CKOPT,EESAVE,BOOTSZ1,BOOTSZ0,BOOTRST} # 0 0 0 0 0 0 0 0 #Fuse Low Byte: {BODLEVEL,BODEN,SUT1,SUT0,CKSEL3,CKSEL2,CKSEL1,CKSEL0} # 0 0 0 0 0 0 0 0 WRITE-FUSE 0x0000 #Lock: {X,X,BLB12,BLB11,BLB02,BLB01,LB2,LB1} # 0 0 0 0 0 0 0 0 WRITE-LOCK 0x00 #------- END ---------
|
|
|
|
|
Jul 5 2007, 11:37
|

Местный
  
Группа: Свой
Сообщений: 386
Регистрация: 1-12-05
Пользователь №: 11 639

|
Цитата(QuickWitted @ Jul 5 2007, 12:56)  Воз и поныне там Может объясните что и как ставить? READ-CALIBRATION 0x21FF DATA 3 # <EEProm 8Mhz ERASE-ALL WRITE&VERIFY-ALL А вот с READ-CALIBRATION будьте поосторожней !!!.... Был у меня прикол из-за недопонимания этой процедуры. Суть ее проста - считать значения настройки калибровки внутреннего RC генератора и записать в нужную область памяти ( в данном примере в 0x21FF DATA 3 # <EEProm 8Mhz)... Прикол был в том что у меня фактически перезаписывался файл .hex по адрессу куда указывала READ-CALIBRATION значением калибровочного регистра.... Поведение программы после этого было не предсказуемым Так вот: если вы не используете RC генератор - лучше вообще убрать READ-CALIBRATION или записывать в тот адресс где уж точно нет других данных
|
|
|
|
|
Jul 5 2007, 12:08
|

Местный
  
Группа: Участник
Сообщений: 322
Регистрация: 21-06-07
Из: СНГ
Пользователь №: 28 596

|
jasper Это получается ПУСТАЯ болванка?
#Fuse High Byte: {OCDEN,JTAGEN,SPIEN,CKOPT,EESAVE,BOOTSZ1,BOOTSZ0,BOOTRST} # 0 0 0 0 0 0 0 0 #Fuse Low Byte: {BODLEVEL,BODEN,SUT1,SUT0,CKSEL3,CKSEL2,CKSEL1,CKSEL0} # 0 0 0 0 0 0 0 0 WRITE-FUSE 0x0000
Так что писать то? У тебя сверху одно, а с низу нули пробиты...
В общем вопрос остался что выставлять И КАК ? Или хотя бы: В каком порядке эти биты идут в переменной WRITE-FUSE
--------------------
|
|
|
|
|
Jul 6 2007, 03:27
|

Народный чинитель
  
Группа: Участник
Сообщений: 415
Регистрация: 15-07-05
Пользователь №: 6 811

|
Я же уже ответил на вопрос - надо сбросить все галки. И вот Dimmy это подверждает. Цитата(Dimmy @ Jul 5 2007, 16:35)  Отметь для себя, что в пони все наёборот чем в даташите. Т.е. по "нашему" - правильно. Для программирования под кварц 16МГц Mega16 в пони у меня:
CKSEL3,CKSEL2,CKSEL1,CKSEL0 - галка СБРОШЕНА
CKOPT - СБРОШЕНА
JTAGEN - СБРОШЕНА (это значит, что JTAG действительно выключен) Так что, это не пустая болванка, а рабочий скрипт. Подставляете название своих файлов и запускаете его, все будет нормально.
|
|
|
|
|
Jul 6 2007, 04:07
|

Местный
  
Группа: Участник
Сообщений: 322
Регистрация: 21-06-07
Из: СНГ
Пользователь №: 28 596

|
Цитата(jasper @ Jul 6 2007, 08:27)  Я же уже ответил на вопрос - надо сбросить все галки. И вот Dimmy это подверждает. Так что, это не пустая болванка, а рабочий скрипт. Подставляете название своих файлов и запускаете его, все будет нормально. У меня кварц не 3-8 метров, а 11,0592 В этом примере мне КАК МСИНИМУМ CKOPT надо установить в 1 Остальное нет возможности проверить... Но Jtagen и OCDEN - выключать не хочется Задержку на 16мс. Даже зная о защите: SPI - выключать не совсем разумно А бут блок в твоём примере отключен? Запускаю эмулятор (Algorithm Builder) лезу в свойства проекта там написано Checked=unprogrammed (т.е. на оборот по сравнению с Лошадью) Выбираю: внешний кварц 1-16 метров он тут же конфигурирует: Галки на CKSEL0-CKSEL3 Галки нет CKOPT Выбираю: внешний кварц 3-8 метров он тут же конфигурирует: Галки на CKSEL0-CKSEL3 и CKOPT Обратный процесс - снимаю все галки он мне на это - External clock
Сообщение отредактировал QuickWitted - Jul 6 2007, 04:14
--------------------
|
|
|
|
|
Jul 6 2007, 04:44
|

Народный чинитель
  
Группа: Участник
Сообщений: 415
Регистрация: 15-07-05
Пользователь №: 6 811

|
Хорошо, насчет CKOPT, это возможно. JTAG и OCDEN тоже включим. По поводу SPIEN в даташите написано: Цитата Notes: 1. The SPIEN Fuse is not accessible in SPI Serial Programming mode. Так что, на самом деле все равно. Тогда получиться: #------ START -------- #Programming sequence SELECTDEVICE ATMEGA16 CLEARBUFFER #Вместо myprog.hex и myprog.eep подставляем свою программу LOAD-PROG myprog.hex LOAD-DATA myprog.eep PAUSE "Готов к программированию?" ERASE-ALL WRITE&VERIFY-ALL #Fuse High Byte: {OCDEN,JTAGEN,SPIEN,CKOPT,EESAVE,BOOTSZ1,BOOTSZ0,BOOTRST} # 1 1 1 1 0 0 0 0 #Fuse Low Byte: {BODLEVEL,BODEN,SUT1,SUT0,CKSEL3,CKSEL2,CKSEL1,CKSEL0} # 0 0 0 0 0 0 0 0 WRITE-FUSE 0xf000 #Lock: {X,X,BLB12,BLB11,BLB02,BLB01,LB2,LB1} # 0 0 0 0 0 0 0 0 WRITE-LOCK 0x00 #------- END ---------
|
|
|
|
|
Jul 6 2007, 04:56
|

Местный
  
Группа: Участник
Сообщений: 322
Регистрация: 21-06-07
Из: СНГ
Пользователь №: 28 596

|
Вот кусок откопал
#Pay attention to NOT disable RSTDISBL #FusesH: # DWEN, EESAVE, SPIEN, WDTON, BODLEV2, BODLEV1, BODLEV0, RSTDISBL} # 1 1 0 1 1 0 0 1 #FusesL: # CKDIV, CKOUT, SUT1, SUT0, CKSEL3, CKSEL2, CKSEL1, CKSEL0} # 1 1 1 1 1 1 1 1 WRITE-FUSE 0x2600
Сообщение отредактировал QuickWitted - Jul 6 2007, 05:15
--------------------
|
|
|
|
|
Jul 6 2007, 05:16
|

Народный чинитель
  
Группа: Участник
Сообщений: 415
Регистрация: 15-07-05
Пользователь №: 6 811

|
Цитата Вот кусок откопал И к чему это? К меге16 не имеет никакого отношения.
Сообщение отредактировал jasper - Jul 6 2007, 05:18
|
|
|
|
|
Jul 6 2007, 06:33
|

Местный
  
Группа: Участник
Сообщений: 322
Регистрация: 21-06-07
Из: СНГ
Пользователь №: 28 596

|
Цитата(jasper @ Jul 6 2007, 10:16)  И к чему это? К меге16 не имеет никакого отношения. Просто показывает что у других... А так получается следующее #------ START -------- #Programming sequence SELECTDEVICE ATMEGA16 CLEARBUFFER #Вместо myprog.hex и myprog.eep подставляем свою программу LOAD-PROG Main.hex LOAD-DATA Main.eep PAUSE "Готов к программированию?" ERASE-ALL WRITE&VERIFY-ALL # 1) Включить отладку - OCDEN,JTAGEN,SPIEN =1 # 2) Кварц 1-16 - CKSEL3,CKSEL2,CKSEL1,CKSEL0 =0 и CKOPT =1 # 3) Задержка Max - SUT1 =1, SUT0=0 # 4) Всё остальное как есть # Fuse High Byte: # OCDEN, JTAGEN, SPIEN, CKOPT, EESAVE, BOOTSZ1, BOOTSZ0, BOOTRST} # 1 1 1 1 0 0 0 0 # Fuse Low Byte: # BODLEVEL, BODEN, SUT1, SUT0, CKSEL3, CKSEL2, CKSEL1, CKSEL0} # 0 0 1 0 0 0 0 0 # Одним словом это 1111000000100000 WRITE-FUSE 0xF020 #Lock: {X,X,BLB12,BLB11,BLB02,BLB01,LB2,LB1} # 0 0 0 0 0 0 0 0 WRITE-LOCK 0x00 #------- END ---------
--------------------
|
|
|
|
|
Jul 6 2007, 07:29
|

Народный чинитель
  
Группа: Участник
Сообщений: 415
Регистрация: 15-07-05
Пользователь №: 6 811

|
Цитата # 3) Задержка Max - SUT1 =1, SUT0=0 Нет макс. задержка при использовании внешнего кристалла будет SUT1 =1, SUT0=1 (по даташит), т.е. в скрипте должно быть наоборот SUT1 =0, SUT0=0. А остальное правильно.
|
|
|
|
|
Jul 6 2007, 08:42
|

Местный
  
Группа: Участник
Сообщений: 322
Регистрация: 21-06-07
Из: СНГ
Пользователь №: 28 596

|
Цитата(jasper @ Jul 6 2007, 12:29)  Нет макс. задержка при использовании внешнего кристалла будет SUT1 =1, SUT0=1 (по даташит), т.е. в скрипте должно быть наоборот SUT1 =0, SUT0=0. Ну тогда последний вариант: Вставить в текстовый файл и задать расширение *.e2s Ну и ещё раз уточню - это без загрузчика? (т.е прерывания идут сразу за меткой старта) #------ START -------- #Programming sequence SELECTDEVICE ATMEGA16 CLEARBUFFER #Вместо Main.hex и Main.eep подставляем свою программу LOAD-PROG Main.hex #Если есть - вставить и разремить #LOAD-DATA Main.eep PAUSE "Готов к программированию?" ERASE-ALL WRITE&VERIFY-ALL # 1) Включить отладку - OCDEN,JTAGEN,SPIEN =1 # 2) Кварц 1-16 - CKSEL3,CKSEL2,CKSEL1,CKSEL0 =0 и CKOPT =1 # 3) Задержка Max - SUT1,SUT0=0 # 4) Всё остальное как есть # Fuse High Byte: # OCDEN, JTAGEN, SPIEN, CKOPT, EESAVE, BOOTSZ1, BOOTSZ0, BOOTRST} # 1 1 1 1 0 0 0 0 # Fuse Low Byte: # BODLEVEL, BODEN, SUT1, SUT0, CKSEL3, CKSEL2, CKSEL1, CKSEL0} # 0 0 0 0 0 0 0 0 # Одним словом это 1111000000000000 WRITE-FUSE 0xF000 #Lock: {X,X,BLB12,BLB11,BLB02,BLB01,LB2,LB1} # 0 0 0 0 0 0 0 0 WRITE-LOCK 0x00 #------- END ---------
--------------------
|
|
|
|
|
Jul 6 2007, 09:11
|

Народный чинитель
  
Группа: Участник
Сообщений: 415
Регистрация: 15-07-05
Пользователь №: 6 811

|
Цитата Ну и ещё раз уточню - это без загрузчика? (т.е прерывания идут сразу за меткой старта) Точно, это без загрузчика.
|
|
|
|
|
Jul 9 2007, 06:58
|

Местный
  
Группа: Участник
Сообщений: 322
Регистрация: 21-06-07
Из: СНГ
Пользователь №: 28 596

|
Всем спасибо - программатор запустился... (прошил мигалку - мигает светодиодами состояния) Щас думаю на тему авт. блокировки работы проги под программатором, т.к. в этот же разъем, по замыслу, должна вставляться флешка MMС в режиме SPI , но это уже другая история...
Сообщение отредактировал QuickWitted - Jul 9 2007, 07:29
--------------------
|
|
|
|
|
Jul 9 2007, 08:07
|

Народный чинитель
  
Группа: Участник
Сообщений: 415
Регистрация: 15-07-05
Пользователь №: 6 811

|
Цитата Всем спасибо - программатор запустился... beer.gif (прошил мигалку - мигает светодиодами состояния) Замечательно! Я бы сильно удивился, если бы не заработало. Цитата Щас думаю на тему авт. блокировки работы проги под программатором, т.к. в этот же разъем, по замыслу, должна вставляться флешка MMС в режиме SPI , но это уже другая история... А чего тут думать, чипселект на флэшку с подтяжкой завел и все.
|
|
|
|
|
Jul 9 2007, 09:42
|

Местный
  
Группа: Участник
Сообщений: 322
Регистрация: 21-06-07
Из: СНГ
Пользователь №: 28 596

|
Не всё так просто... 1) МК на 5 вольт флеш 3 2) Тут вопрос чтобы МК не начал дёргать SPI пока к нему внутрисхемный программер подключен... Но это нетрудно тройку транзисторов и увсё...
--------------------
|
|
|
|
|
Jul 10 2007, 03:25
|

Местный
  
Группа: Участник
Сообщений: 322
Регистрация: 21-06-07
Из: СНГ
Пользователь №: 28 596

|
Второй день подключал ЖК дисплей на 51 серии работает, а на меги - нет... Потом подключил плату со светодиодами и обнаружил, что 4 конца на порту С - не подают признаков жизни... Покопавшись в доке выяснилось, что от них отрастает Джейтаг... Отключил его при прошивке - пошло...
--------------------
|
|
|
|
|
Jul 17 2007, 13:21
|
Группа: Новичок
Сообщений: 3
Регистрация: 15-02-07
Пользователь №: 25 395

|
Привет!
А возможно ли склонировать чип mega16 целиком с прошивкой? И кто бы мог бы это сделать за уе если это реально?
Спасибо
|
|
|
|
|
Aug 3 2007, 12:47
|
Группа: Новичок
Сообщений: 14
Регистрация: 6-02-07
Из: Минск
Пользователь №: 25 110

|
Вопрос по битам защиты. Как я понял из даташита установкой двух битов LockBit2 и LockBit1 выбирается режим защиты памяти кристала. Lock2 Lock1 1 1 - нет защиты 1 0 - защита от программирования (записи) 0 0 - защита от записи и чтения
т.е. нет режима в котором возможна запись, но невозможно чтение? к примеру это было бы удобно для обновления ПО устройств, но в тоже время хотелось бы чтобы они были защищены от чтения...
|
|
|
|
|
Aug 3 2007, 14:03
|
Группа: Новичок
Сообщений: 14
Регистрация: 6-02-07
Из: Минск
Пользователь №: 25 110

|
GDI, Большое спасибо за ответ. Просто считал, что записанные биты защиты стереть уже ничем не удасться :-) Теперь понятно, что удалить их можно только стерев всю память контроллера и в итоге они свою функцию выполняют...
Сообщение отредактировал lech196 - Aug 3 2007, 14:04
|
|
|
|
|
Aug 9 2007, 21:40
|
Группа: Новичок
Сообщений: 1
Регистрация: 9-08-07
Пользователь №: 29 685

|
Цитата(lech196 @ Aug 3 2007, 17:03)  удалить их можно только стерев всю память контроллера и в итоге они свою функцию выполняют... А что, если fuses LockBit1, LockBit2 включить, то даже по параллельному 12-вольтовому подключению нельзя будет прочесть Program Flash? смущают два обстоятельства: 1. кое что (по SPI) всё же читается, и это "кое что" напоминает исходные данные, например, одинаковые байты будут одинаково другими, как будто поXORили одним и тем же байтом. 2. в параллельном программировании доступны дополнительные возможности: Chip Erase, установка SPIEN...
|
|
|
|
|
Aug 18 2007, 12:56
|
Группа: Новичок
Сообщений: 11
Регистрация: 9-09-06
Пользователь №: 20 223

|
добрый день, есть у кого-нить скрин пони с заводскими настроиками 16 меги?
|
|
|
|
|
Aug 18 2007, 13:43
|
Участник

Группа: Свой
Сообщений: 37
Регистрация: 13-05-07
Из: Minsk, Belarus
Пользователь №: 27 694

|
Да, популярный вопрос. Цитата ==================================================================== Area: RU.EMBEDDED From: Andrew O. Shadoura(2:4500/1.25) To: Konstantin Granitsa(2:5085/131.249) Subj: Configuration and Security bits Date: 06.07.07 12:18:41 ==================================================================== Пpиветствую, Konstantin!
Однажды, 02.07.2007 22:03:29, Konstantin Granitsa писал к All по поводу "Configuration and Security bits".
KG> Hе подскажет ли добpоуважаемый АЛЛ какой сабж KG> выставлять для меги 16 в Понипpог?
KG> если: KG> 1) пpогpамма без загpузочного блока KG> 2) пpогpамма без стоpожевого таймеpа KG> 3) сpедств отладки у меня нет KG> 4) защита от чтения/записи не нужна KG> 5) Пpошивка pаботает с SPI
Хватит к SPIEN добавить CKOPT, BOOTSZ1, BOOTSZ0.
KG> спpавки в самой пpоге на это нет - написано смотpи KG> датащит девайса... английский знаю, но сильно не бегло ...
Учи :-)
-- С уважением, Andrew O. Shadoura
np: Royal Philharmonic Orchestra - Scotland the brave
AKAs: 2:4500/1.25, 2:450/202.25
--- WP/95 Rel 1.78E (215.0) Reg. * Origin: Knowledge itself is a power (2:4500/1.25) =============================== END ================================ -- WBR, Andrew
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|