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

 
 
> Заблокировалась ATtiny13A, В чем причина?
asc2000
сообщение Jan 4 2016, 09:41
Сообщение #1


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

Группа: Участник
Сообщений: 95
Регистрация: 5-08-10
Пользователь №: 58 763



Добрый день. Помогите пожалуйста разобраться. Возникла проблема при программировании м-сх ATtiny13A, работающей от внутреннего генератора. Фьюзы у нее были такие, и я их не менял:

Прикрепленное изображение


Я записал новую программу, в которой применил коэф-т деления генератора на 256. Программа записалась и правильно работает, но контроллер перестал читаться и я больше не могу его перепрограммировать. Подскажите, что могло произойти и как избежать этого в дальнейшем?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
kovigor
сообщение Jan 4 2016, 11:29
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Попробуйте затактировать МК от внешнего генератора (не от кварца, а именно от генератора), после чего прочитать и изменить Fuses ...
Go to the top of the page
 
+Quote Post
asc2000
сообщение Jan 4 2016, 12:34
Сообщение #3


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

Группа: Участник
Сообщений: 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 ?
Go to the top of the page
 
+Quote Post
adnega
сообщение Jan 4 2016, 16:03
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 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


Но я по опыту помню: когда понижал частоту до минимума в малопотребляющих применениях, нужно было перепрошивать на очень низкой частоте.
Go to the top of the page
 
+Quote Post
asc2000
сообщение Jan 6 2016, 23:56
Сообщение #5


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

Группа: Участник
Сообщений: 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.

Go to the top of the page
 
+Quote Post
adnega
сообщение Jan 7 2016, 06:22
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 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 и предделитель ведут себя документировано и одинаково в штатном режиме и режиме программирования.
Go to the top of the page
 
+Quote Post
asc2000
сообщение Jan 7 2016, 12:56
Сообщение #7


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

Группа: Участник
Сообщений: 95
Регистрация: 5-08-10
Пользователь №: 58 763



Цитата(adnega @ Jan 7 2016, 10:22) *
Вот если бы было сказано, что CKDIV8 не влияет в режиме программирования, и устанавливается принудительно предделитель /1, то это был бы факт.
Сейчас же все логично: CKDIV8 и предделитель ведут себя документировано и одинаково в штатном режиме и режиме программирования.

Может быть и так.

Но напомню, что данная ветка форума начиналась с другого вопроса: почему программатором перестали читаться фьюзы и записанная программа?
Ведь я не менял CKDIV8, а только применил в своей программе коэффициент деления 256 установкой регистра CLKPR. Неужели эти установки сохраняются и в режиме программирования? В даташите я не нашел никакого объяснения по этому поводу.

Go to the top of the page
 
+Quote Post
adnega
сообщение Jan 7 2016, 17:01
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Цитата(asc2000 @ Jan 7 2016, 15:56) *
Ведь я не менял CKDIV8, а только применил в своей программе коэффициент деления 256 установкой регистра CLKPR. Неужели эти установки сохраняются и в режиме программирования?

Если программа успеет записать CLKPR, то частота понизится и программировать на высокой частоте SCK не получится.
Если успеть подключиться программатором (а программа при этом останавливается?) до записи делителя /256, то программировать можно на высокой частоте SCK.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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


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

 


RSS Текстовая версия Сейчас: 25th June 2025 - 18:03
Рейтинг@Mail.ru


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