Jump to content

asc2000

Members
  • Content Count

    11
  • Joined

  • Last visited

Community Reputation

0 Обычный

About asc2000

  • Rank
    Новенький
  1. Но ведь мы сейчас говорим про режим программирования, когда подается низкий уровень RESET. А в даташите ATtiny13 сказано: А начальное (initial) значение CLKPR определяется состоянием фьюза CKDIV8 и не зависит от того, изменял я или не изменял CLKPR программно.
  2. В начале я писал, что не менял состояние фьюза CKDIV8. А что Вы имели ввиду здесь? :
  3. Да это я знаю. Вы просто не поняли моего вопроса. Я не менял CKSEL-фьюзов, а программатор все равно сначала перестал программировать при данной частоте SCK, а потом снова начал программировать. Такое впечатление, что при программировании как-то влияет регистр CLKPR, но в даташите об этом ни слова.
  4. Я прочитал (в оригинале) даташиты на многие ATtiny и ATmega, но не нашел ответ на свой вопрос. Буду очень признателен, если Вы приведете конкретные цитаты из даташита.
  5. Уважаемые форумчане, помогите разобраться. Как известно, в ATtiny регистр CLKPR задает коэф-т деления и определяет системную тактовую частоту. Если фьюз CKDIV8 запрограммирован, то четыре младших разряда регистра CLKPR равны 0011, а если не запрограммирован, то они равны 0000. Т.к. регистр CLKPR относится к энергозависимой памяти (SRAM), то при отключении питания его содержимое должно сбрасываться в начальное состояние, которое определяется значением фьюза CKDIV8 и которое не зависит от той программы, которая записана в Flash-память м-контроллера. Проблема собственно в следующем: есть ATtiny13A, работающая от внутреннего генератора 9,6 МГц. Фьюз CKDIV8 запрограммирован и его состояние я не менял. Сначала (со старой программой) ATtiny13A прекрасно программировалась и читалась программатором. Затем я записал новую программу, в которой применил коэф-т деления генератора на 256 (младшие разряды регистра CLKPR равны 1000). Программа записалась и правильно работала, но контроллер перестал читаться и я не мог его перепрограммировать. Когда же я уменьшил частоту SCK программатора, то м-сх опять стала читаться и программироваться. После этого я снова записал старую программу, в которой не было деления частоты генератора на 256, и снова м-сх стала читаться программатором с высокой частотой SCK. Вопрос: почему ?
  6. Вот это мне и не понятно. Ведь в даташите в разделе "17.6. Serial Programming" сказано, что при SPI-программировании имеют значение фьюзы CKSEL, и ничего не сказано о CKDIV8 и “CLKPR – Clock Prescale Register”.
  7. Пробовал, не помогло. У меня еще есть программатор USBASP. А что вы посоветуете более "продвинутое"?
  8. Но ведь это относится к рабочему режиму и не относится к режиму программирования? В режиме программирования имеют значение только установки фьюзов CKSEL1 и CKSEL2, а также частота SCK, которая задается программатором. Проблему свою я решил! Нужно было понизить частоту SCK. Я программирую PonyProg2000, и в файле PonyProg2000.ini с помощью Блокнота изменил строку SPIBusSpeed=NORMAL на SPIBusSpeed=VERYSLOW. После этого все стало замечательно читаться - и память, и фьюзы.
  9. Спасибо за ответ. Да, я действительно применил коэффициент деления 256 частоты тактового генератора установкой регистра CLKPR. Из вашего ответа мне не совсем понятны некоторые моменты: 1) Вы пишете: "... что в сочетании с установленным фьюзом CKDIV8 дает тактовую частоту около 4,5 кГц". Но я полагал, что фьюз CKDIV8 задает лишь начальный режим работы делителя частоты, и если в процессе выполнения программы изменить частоту тактового сигнала установкой регистра CLKPR, то фьюз CKDIV8 уже не влияет. Это, кстати, подтверждается практикой, т.к. моя программа работает, и я могу проконтролировать действительную тактовую частоту, которая равна 9,6МГц/256 = 37,5кГц. 2) Я думал, что в режиме программирования та программа, которая записана во Flash микроконтроллера, не оказывает никакого влияния на процесс программирования, а имеют значение только фьюз-биты. Но возможно я и ошибаюсь, нужно будет еще раз перечитать даташит.
  10. Добрый день. Помогите пожалуйста начинающему. Возникла проблема при программировании м-сх ATtiny13A, работающей от внутреннего генератора. Фьюзы у нее были такие, и я их не менял: Я записал новую программу, в которой применил коэф-т деления генератора на 256. Программа записалась и правильно работает, но контроллер перестал читаться и я больше не могу его перепрограммировать. Подскажите, что могло произойти и как избежать этого в дальнейшем?
  11. Здравствуйте! Подскажите, пожалуйста, как в Sprint layout сделать чертеж защитной (паяльной) маски, чтобы при просмотре в программе он не закрывал медные проводники? Спасибо.
×
×
  • Create New...