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

 
 
> Влияние регистра CLKPR (Clock Prescale Register) в режиме программирования, ATtiny
asc2000
сообщение Jan 22 2016, 14:27
Сообщение #1


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

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



Уважаемые форумчане, помогите разобраться. Как известно, в ATtiny регистр CLKPR задает коэф-т деления и определяет системную тактовую частоту. Если фьюз CKDIV8 запрограммирован, то четыре младших разряда регистра CLKPR равны 0011, а если не запрограммирован, то они равны 0000. Т.к. регистр CLKPR относится к энергозависимой памяти (SRAM), то при отключении питания его содержимое по идее должно сбрасываться в начальное состояние, которое определяется значением фьюза CKDIV8 и которое не зависит от той программы, которая записана в Flash-память м-контроллера.
Проблема собственно в следующем: есть м-сх ATtiny13A, работающая от внутреннего генератора 9,6 МГц. Фьюз CKDIV8 запрограммирован и его состояние я не менял. Сначала (со старой программой) ATtiny13A прекрасно программировалась и читалась программатором. Затем я записал новую программу, в которой применил коэф-т деления генератора на 256 (младшие разряды регистра CLKPR равны 1000). Программа записалась и правильно работала, но контроллер перестал читаться и я не мог его перепрограммировать. Когда же я уменьшил частоту SCK программатора, то м-сх опять стала читаться и программироваться. После этого я снова записал старую программу, в которой не было деления частоты генератора на 256, и снова м-сх стала читаться программатором с высокой частотой SCK.
Вопрос: почему ?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
rx3apf
сообщение Jan 23 2016, 12:38
Сообщение #2


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Я вижу, что именно так написано, например, в даташите на ATmega168, но для tiny13 в даташите Rev. 2535J–AVR–08/10 - явного указания не увидел. Или читаю невнимательно ? Впрочем, все равно при случае проверю...
Go to the top of the page
 
+Quote Post
asc2000
сообщение Jan 23 2016, 21:18
Сообщение #3


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

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



Цитата(rx3apf @ Jan 23 2016, 16:38) *
Я вижу, что именно так написано, например, в даташите на ATmega168, но для tiny13 в даташите Rev. 2535J–AVR–08/10 - явного указания не увидел. Или читаю невнимательно ? Впрочем, все равно при случае проверю...


Да, я тоже заметил этот интересный момент. В даташитах, например, ATtiny2313, ATtiny25, ATtiny48 в разделе, в котором описываются биты CLKPS регистра CLKPR, сказано:
The CKDIV8 Fuse determines the initial value of the CLKPS bits. If CKDIV8 is unprogrammed, the CLKPS bits will be reset to “0000”. If CKDIV8 is programmed, CLKPS bits are reset to “0011”, giving a division factor of eight at start up.
А в соответствующем разделе даташита ATtiny13 этой фразы нет.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 28th July 2025 - 14:42
Рейтинг@Mail.ru


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