|
Заблокировалась ATtiny13A, В чем причина? |
|
|
|
Jan 4 2016, 09:41
|
Частый гость
 
Группа: Участник
Сообщений: 95
Регистрация: 5-08-10
Пользователь №: 58 763

|
Добрый день. Помогите пожалуйста разобраться. Возникла проблема при программировании м-сх ATtiny13A, работающей от внутреннего генератора. Фьюзы у нее были такие, и я их не менял:
Я записал новую программу, в которой применил коэф-т деления генератора на 256. Программа записалась и правильно работает, но контроллер перестал читаться и я больше не могу его перепрограммировать. Подскажите, что могло произойти и как избежать этого в дальнейшем?
|
|
|
|
|
 |
Ответов
|
Jan 4 2016, 12:34
|
Частый гость
 
Группа: Участник
Сообщений: 95
Регистрация: 5-08-10
Пользователь №: 58 763

|
Спасибо за ответы. Цитата(kovigor @ Jan 4 2016, 15:29)  Попробуйте затактировать МК от внешнего генератора (не от кварца, а именно от генератора), после чего прочитать и изменить Fuses ... Пробовал затактировать от внешнего генератора 100 кГц. К сожалению, не помогло, не получалось прочесть ни Flash, ни фьюзы. Цитата(adnega @ Jan 4 2016, 13:57)  Попробуйте понизить частоту SCK при программировании до минимума. Спасибо, помогло! Я программирую программой PonyProg2000, и в файле PonyProg2000.ini с помощью Блокнота изменил строку SPIBusSpeed=NORMAL на SPIBusSpeed=VERYSLOW. После этого все стало замечательно читаться - и Flash, и фьюзы. Уважаемый adnega, не могли бы объяснить, в чем была причина, ведь раньше все читалось и при скорости NORMAL ?
|
|
|
|
|
Jan 4 2016, 16:03
|
Гуру
     
Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702

|
Цитата(asc2000 @ Jan 4 2016, 15:34)  Уважаемый adnega, не могли бы объяснить, в чем была причина, ведь раньше все читалось и при скорости NORMAL ? Частота ядра должна быть в несколько раз выше частоты SCK при программировании. Цитата 17.6 Serial Programming: Depending on CKSEL fuses, a valid clock must be present. The minimum low and high periods for the serial clock (SCK) input are defined as follows: Low: > 2 CPU clock cycles for fck < 12 MHz, 3 CPU clock cycles for fck >= 12 MHz High: > 2 CPU clock cycles for fck < 12 MHz, 3 CPU clock cycles for fck >= 12 MHz Но я по опыту помню: когда понижал частоту до минимума в малопотребляющих применениях, нужно было перепрошивать на очень низкой частоте.
|
|
|
|
|
Jan 6 2016, 23:56
|
Частый гость
 
Группа: Участник
Сообщений: 95
Регистрация: 5-08-10
Пользователь №: 58 763

|
Цитата(adnega @ Jan 4 2016, 20:03)  Depending on CKSEL fuses, a valid clock must be present. The minimum low and high periods for the serial clock (SCK) input are defined as follows: Low: > 2 CPU clock cycles for fck < 12 MHz, 3 CPU clock cycles for fck >= 12 MHz High: > 2 CPU clock cycles for fck < 12 MHz, 3 CPU clock cycles for fck >= 12 MHz Цитата(adnega @ Jan 5 2016, 19:57)  Мне кажется, что Fck == Fcpu. Fcpu получается путем деления выбранного источника тактового сигнала на соответствующий предделитель, который меняется в зависимости от CKDIV8. Но ведь для fck >= 12 MHz единственный возможный коэффициент деления предделителя - это 1 (т.е. без деления частоты), т.к. даже для коэф-та 2 получается, что частота источника тактового сигнала >= 24 MHz, а это недопустимо для ATtiny13. Следовательно, fck - это частота непосредственно самого источника тактового сигнала, а не после предделителя. Цитата(Александр1 @ Jan 6 2016, 13:01)  В процессе программирования и в рабочем режиме МК тактируется от выбранного источника (структурная схема в разделе System Clock and Clock Options) и CKDIV8 влияет на коэффициент деления частоты (в соответствии с установкой). Но, во-первых, из структурной схемы в разделе System Clock and Clock Options непосредственно не видно, что CKDIV8 влияет именно в режиме программирования. Во-вторых, в разделе Serial Programming сказано, что на процесс SPI-программирования влияют установки фьюзов CKSEL1 и CKSEL2, но ничего не сказано о влиянии фьюза CKDIV8.
|
|
|
|
|
Jan 7 2016, 06:22
|
Гуру
     
Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702

|
Цитата(asc2000 @ Jan 7 2016, 02:56)  Но ведь для fck >= 12 MHz единственный возможный коэффициент деления предделителя - это 1 (т.е. без деления частоты), т.к. даже для коэф-та 2 получается, что частота источника тактового сигнала >= 24 MHz, а это недопустимо для ATtiny13. Следовательно, fck - это частота непосредственно самого источника тактового сигнала, а не после предделителя. Ничего не понял, что вы пытаетесь сказать. Подаем с генератора 20 МГц с предделителем /1, получаем необходимость минимум 3 тактов CPU в SCK для каждого уровня при программировании (т.е. 20/(3+3) => не более 3.333 МГц). Устанавливаем предделитель /2, получаем необходимость минимум 2 тактов CPU в SCK для каждого уровня при программировании (т.е. (20/2)/(2+2) => не более 2.5 МГц). Цитата(asc2000 @ Jan 7 2016, 02:56)  Но, во-первых, из структурной схемы в разделе System Clock and Clock Options непосредственно не видно, что CKDIV8 влияет именно в режиме программирования. Во-вторых, в разделе Serial Programming сказано, что на процесс SPI-программирования влияют установки фьюзов CKSEL1 и CKSEL2, но ничего не сказано о влиянии фьюза CKDIV8. Вот если бы было сказано, что CKDIV8 не влияет в режиме программирования, и устанавливается принудительно предделитель /1, то это был бы факт. Сейчас же все логично: CKDIV8 и предделитель ведут себя документировано и одинаково в штатном режиме и режиме программирования.
|
|
|
|
|
Jan 7 2016, 12:56
|
Частый гость
 
Группа: Участник
Сообщений: 95
Регистрация: 5-08-10
Пользователь №: 58 763

|
Цитата(adnega @ Jan 7 2016, 10:22)  Вот если бы было сказано, что CKDIV8 не влияет в режиме программирования, и устанавливается принудительно предделитель /1, то это был бы факт. Сейчас же все логично: CKDIV8 и предделитель ведут себя документировано и одинаково в штатном режиме и режиме программирования. Может быть и так. Но напомню, что данная ветка форума начиналась с другого вопроса: почему программатором перестали читаться фьюзы и записанная программа? Ведь я не менял CKDIV8, а только применил в своей программе коэффициент деления 256 установкой регистра CLKPR. Неужели эти установки сохраняются и в режиме программирования? В даташите я не нашел никакого объяснения по этому поводу.
|
|
|
|
Сообщений в этой теме
asc2000 Заблокировалась ATtiny13A Jan 4 2016, 09:41 adnega Цитата(asc2000 @ Jan 4 2016, 12:41) и я б... Jan 4 2016, 09:57   asc2000 Цитата(adnega @ Jan 4 2016, 20:03) Частот... Jan 5 2016, 11:51    Александр1 Цитата(asc2000 @ Jan 5 2016, 14:51) ... в... Jan 5 2016, 12:21     asc2000 Цитата(Александр1 @ Jan 5 2016, 16:21) Пр... Jan 5 2016, 15:33      adnega Цитата(asc2000 @ Jan 5 2016, 18:33) Насче... Jan 5 2016, 15:57      Александр1 Цитата(asc2000 @ Jan 5 2016, 18:33) Насче... Jan 6 2016, 09:01    adnega Цитата(asc2000 @ Jan 5 2016, 14:51) Это т... Jan 5 2016, 12:32     Александр1 Цитата(adnega @ Jan 5 2016, 15:32) На сам... Jan 5 2016, 13:11      adnega Цитата(Александр1 @ Jan 5 2016, 16:11) Да... Jan 5 2016, 13:24       asc2000 Цитата(adnega @ Jan 7 2016, 21:01) Если п... Jan 7 2016, 20:52 Ga_ry CKDIV8 это просто какая-то "засада" заче... Jan 5 2016, 23:06 adnega Цитата(Ga_ry @ Jan 6 2016, 02:06) CKDIV8 ... Jan 6 2016, 07:37  Ga_ry Цитата(adnega @ Jan 6 2016, 09:37) Дык, д... Jan 6 2016, 14:31   adnega Цитата(Ga_ry @ Jan 6 2016, 17:31) Думаю х... Jan 6 2016, 15:44 rx3apf В имеющемся под рукой экземпляре даташита на tiny1... Jan 8 2016, 18:25 nagisa Цитата(asc2000 @ Jan 4 2016, 17:41) Я зап... Apr 11 2016, 08:39
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|