Jump to content
Sign in to follow this  
asc2000

Влияние Регистра Clkpr (Clock Prescale Register) В Режиме Программирования.

Recommended Posts

Уважаемые форумчане, помогите разобраться. Как известно, в ATtiny регистр CLKPR задает коэф-т деления и определяет системную тактовую частоту. Если фьюз CKDIV8 запрограммирован, то четыре младших разряда регистра CLKPR равны 0011, а если не запрограммирован, то они равны 0000. Т.к. регистр CLKPR относится к энергозависимой памяти (SRAM), то при отключении питания его содержимое должно сбрасываться в начальное состояние, которое определяется значением фьюза CKDIV8 и которое не зависит от той программы, которая записана в Flash-память м-контроллера.

Проблема собственно в следующем: есть ATtiny13A, работающая от внутреннего генератора 9,6 МГц. Фьюз CKDIV8 запрограммирован и его состояние я не менял. Сначала (со старой программой) ATtiny13A прекрасно программировалась и читалась программатором. Затем я записал новую программу, в которой применил коэф-т деления генератора на 256 (младшие разряды регистра CLKPR равны 1000). Программа записалась и правильно работала, но контроллер перестал читаться и я не мог его перепрограммировать. Когда же я уменьшил частоту SCK программатора, то м-сх опять стала читаться и программироваться. После этого я снова записал старую программу, в которой не было деления частоты генератора на 256, и снова м-сх стала читаться программатором с высокой частотой SCK.

Вопрос: почему ?

Share this post


Link to post
Share on other sites

Потому, что Вы не читали даташит на МК. Можете почитать Евстифеева, если с англицким у Вас напряг. Там на русском описаны условия отношений тактовых частот SPI и самого МК.

Share this post


Link to post
Share on other sites

Я прочитал (в оригинале) даташиты на многие ATtiny и ATmega, но не нашел ответ на свой вопрос. Буду очень признателен, если Вы приведете конкретные цитаты из даташита.

Share this post


Link to post
Share on other sites

Приглашаем на вебинар «Новинки и уникальные решения Molex. На что обратить внимание и почему»

7 апреля приглашаем на вебинар, который будет интересен разработчикам и инженерам-схемотехникам, интересующимся тенденциями рынка, новыми перспективными решениями для соединений «провод-провод», «провод-плата», «плата-плата». Для инженеров КИПиА и IT будут освещены уникальные решения Molex для «удлинения» интерфейсов HDMI, DisplayPort и USB даже в условиях сильного зашумления, а также семейство бесконтактных датчиков Contrinex. Помимо этого, будет уделено внимание дальнейшему развитию направления антенн, где Molex имеет ряд интересных и уникальных решений

Подробнее

Да это я знаю. Вы просто не поняли моего вопроса. Я не менял CKSEL-фьюзов, а программатор все равно сначала перестал программировать при данной частоте SCK, а потом снова начал программировать. Такое впечатление, что при программировании как-то влияет регистр CLKPR, но в даташите об этом ни слова.

Share this post


Link to post
Share on other sites
                     

Измеряем мощность в режиме реального времени с помощью ИС регистратора потребляемой мощности

Одной из важнейших функций обеспечения работы системы управления питанием является измерение среднего значения потребляемой мощности критичных участков цепи питания в режиме реального времени. Микросхемы регистраторов производства Maxim Integrated имеют встроенную функцию накопления измеренных значений мощности и предоставляют на выходе данные, пригодные для вычисления ее среднего значения. В статье рассматриваются различные примеры использования регистраторов для проведения критичных измерений мощности в режиме реального времени.

Подробнее

CLKPR является регистром предделителя тактовой частоты. Фьюз CKDIV8 меняет именно его конфигурацию. Поэтому не важно каким способом Вы изменили "такты", результат один. Последствия - тоже.

Share this post


Link to post
Share on other sites

В начале я писал, что не менял состояние фьюза CKDIV8.

А что Вы имели ввиду здесь? :

Поэтому не важно каким способом Вы изменили "такты", результат один.

Share this post


Link to post
Share on other sites

Фьюз CKDIV8 вносит изменения в регистр CLKPR. Если Вы его не изменяли, но внесли изменения в CLKPR программно, то и значение, вносимое CKDIV8, будет заменено.

Share this post


Link to post
Share on other sites

Если Вы его не изменяли, но внесли изменения в CLKPR программно, то и значение, вносимое CKDIV8, будет заменено.

Но ведь мы сейчас говорим про режим программирования, когда подается низкий уровень RESET. А в даташите ATtiny13 сказано:

During reset, all I/O Registers are set to their initial values...

А начальное (initial) значение CLKPR определяется состоянием фьюза CKDIV8 и не зависит от того, изменял я или не изменял CLKPR программно.

Share this post


Link to post
Share on other sites

Да.

Следующим будет вопрос: " Тогда почему после сигнала Reset, используемого в программировании, CLKPR не принимает начального значения и МК не становится видимым программатором"? ХЗ. Не отвечу. Много разных факторов, которые надо анализировать. Скорость SPI, на которой перестает видится МК. Тайминги, применяемые Вашим программатором, для ввода МК в режим программирования. И тд., и тп.

Зависимость просматривается, а почему - ответа нет.

Edited by Геннадий

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

  • Similar Content

    • Guest Роман
      By Guest Роман
      Добрый день, форумчане. Такая задача. Хочу создать несколько устройств на светодиодах. Задача каждого в том, чтобы от движения (датчик вибрации, наклона) светодиод начинал моргать, переливаться и т.д. Подпитывается всё от батарейки, конечно же как можно меньших размеров (таблетка).
      Собственно я уже реализовал такое пробное устройство на ATtiny13, вибродатчике 18015 и батарейке CR1220. Всё работает, но хотелось бы это дело и удешевить и уменьшить в размерах, если это конечно же возможно. Особо в параметрах МК я не разбираюсь, но могу сказать что мне от неё точно нужно:
      1) Маленький размер
      2) Как минимум 1 канал ШИМ (а лучше 3, для переливания трёх светодиодов RGB)
      3) Память на 1Кб (программу для одного такого устройства приложу ниже, может её можно и сократить, но не факт что такую же, но на три диода получится ужать)
      4) Низкое потребление или возможность подключения режимов с низким потреблением.
      5) Работа от 3В. (от таблетки)
      6) Возможность программирования через Arduino UNO (но другие варианты тоже рассматриваю, просто Arduino уже есть)

      Повторюсь пока что нашел и использовал только ATtiny13, который меня вполне устроил, но он достаточно дорогой и в корпусе SOIC его найти достаточно проблематично. К тому же как мне показалось, он слишком хорош для такого проекта. Повторюсь, я чайник, и может есть какие-то более дешевые аналоги.

      Очень надеюсь на Вашу помощь. Заранее большое Вам спасибо!
      Прикладываю обещанный мною код:
      int vib = 4; int led = 0; long loopTime = 5000; void setup() { pinMode(led, OUTPUT); pinMode(vib, INPUT); } void loop() { if (digitalRead(vib)){ unsigned long currentMillis = millis(); while(millis()-currentMillis<=loopTime) { for(int fadeValue = 0; fadeValue <=255; fadeValue+=5){ analogWrite(led,fadeValue); delay(2); } for(int fadeValue = 255; fadeValue >=0; fadeValue-=5){ analogWrite(led,fadeValue); delay(2); } for(int fadeValue = 0; fadeValue <=255; fadeValue+=5){ analogWrite(led,fadeValue); delay(2); } for(int fadeValue = 255; fadeValue >=0; fadeValue-=5){ analogWrite(led,fadeValue); delay(2); } digitalWrite(led, LOW); delay(600); } } }  
    • By Evgeniy90
      Здравствуйте! Столкнулся со следующей проблемой: при сборке МД "Шанс" дошел до этапа прошивки МК, в итоге запорол 3 атмеги. Прошивал 3 способами:
      1. Через Arduino UNO(As ISP) просто МК
      2. Через Arduino UNO(As ISP) МК внутрисхемно(соответственно с обвязкой)
      3. Через USB ASP внутрисхемно(с обвязкой соответственно).
      Вышло так, что в наличии кварца 11.0592 МГц не было, и я временно впаял 12 МГц. Прошил трижды всё правильно(фьюзы , контакты и т.д). После прошивки просто не видит МК (ну и плата не работает без МК.да и Бог с ней, но МК всеравно не могу считать). В чем причина понять не могу. Одно думаю, что это разница между 11.0592 и 12 МГц. Посоветуйте как решить проблему.
      Коды ошибок после прошивки во всех трёх случаях одинаковые:
      Sinaprog -invalid device signature
      Averdude -avrdude: warning: cannot set sck period, please check for usbasp firmware update
      target don't answer
    • By Николай Станкевич
      Можно ли на микроконтроллерах ATmega реализовать обработку сигналов в радио оборудовании?
      И какой для этих целей лучше подойдёт?
      То есть можно ли перестройку и подстройку частот на них сделать?
      Модуляцию
      Кодирование и тому подобное
      И какую литературу посоветуете?
    • By Максим123456789
      делаю диплом, в схеме у меня микроконтроллер PIC16F688 и мне нужно его заменить на ATmega. Не могу найти похожий
    • By Misereli
      Здравствуйте.
      Хочу сделать свою клавиатуру на микроконтроллере Atmel (например, ATmega8).
      Знаю несколько видов схем: матричная клавиатура и резистивная.
      Реализация матричной клавиатуры требует использования большого количества ног на микроконтроллере .
      Реализация резистивной (в зависимости от напряжения, АЦП определяет какая нажата кнопка) не позволит зажимать сразу несколько клавиш. 

      На форумах "клаводелов" нашел интересную плату (satan gh60), на основе которой собирают клавиатуру. Она работает на atmega32u4, на плате распаяно множество резисторов. Несколько нажатий поддерживает.


      Если кто-то поделится мыслями как она работает, буду очень благодарен, т.к. самому мозгов не хватает 
      Об использовании специализированных МК прошу не упоминать, интересно сделать на ATmega.
       
  • Сообщения

    • первоисточник этого с самой полной информацией https://politros.com/161115-ekspert-oon-po-khimoruzhiyu-koronavirus-covid-19-prigotovili-na-amerikanskoi-kukhne-dyavola
    • В Москве уже обеспечивают бесплатную доставку продуктов на дом. Это чтобы люди не выходили лишний раз из дому и тем более не возмущались домашнему аресту.
    • А жена даже школу окончить не смогла?
    • Напаркуа делать усилитель на TDA7294, если нужна малая громкость?? Делай на 2030 и 2050! Хайфай же, блеать!
    • Золото это опция больше для того , чтоб порадовать глаз ( до этого ни разу не пробовал подобное ) , по поводу плат я так понял Вам какой-то самопал предлагают ? Примерно год назад ( до того как начал травить платы сам ) обратился здесь на форуме к одному "профессору" тот по тем деньгам зарядил 1000 грн за 2 платы ( я уже не помню по курсу сколько в уе) за голые платы без маски и т д. У него в теме цена за дм стояла одна , а по факту хотел руки нагреть , я ему написал , что по факту ценник должен быть минимум в 2 раза меньше по его же прайсу , он начал плести чушь типа я вижу такую цену и все , короче был послан далеко и  на всегда . Совет , не связывайтесь с жадными самопальщиками , заказывайте платы на производстве , потом хоть жалеть за качество не будите 
    • У меня зверюги периодически выдергивают клаву ps/2, не полностью, но штекер в разъёме отходит, подключаю нагорячо, комп не виснет.
×
×
  • Create New...