Перейти к содержанию
    

asc2000

Участник
  • Постов

    95
  • Зарегистрирован

  • Посещение

Весь контент asc2000


  1. Посмотрел, да действительно в предварительной версии даташита (Preliminary 2004-ого года) эта фраза была. А в даташите за 2010 год (Rev 2535J–AVR–08/10) этого уже нет. Почему-то решили убрать.
  2. Да, я тоже заметил этот интересный момент. В даташитах, например, 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 этой фразы нет.
  3. Уважаемые форумчане, помогите разобраться. Как известно, в ATtiny регистр CLKPR задает коэф-т деления и определяет системную тактовую частоту. Если фьюз CKDIV8 запрограммирован, то четыре младших разряда регистра CLKPR равны 0011, а если не запрограммирован, то они равны 0000. Т.к. регистр CLKPR относится к энергозависимой памяти (SRAM), то при отключении питания его содержимое по идее должно сбрасываться в начальное состояние, которое определяется значением фьюза CKDIV8 и которое не зависит от той программы, которая записана в Flash-память м-контроллера. Проблема собственно в следующем: есть м-сх ATtiny13A, работающая от внутреннего генератора 9,6 МГц. Фьюз CKDIV8 запрограммирован и его состояние я не менял. Сначала (со старой программой) ATtiny13A прекрасно программировалась и читалась программатором. Затем я записал новую программу, в которой применил коэф-т деления генератора на 256 (младшие разряды регистра CLKPR равны 1000). Программа записалась и правильно работала, но контроллер перестал читаться и я не мог его перепрограммировать. Когда же я уменьшил частоту SCK программатора, то м-сх опять стала читаться и программироваться. После этого я снова записал старую программу, в которой не было деления частоты генератора на 256, и снова м-сх стала читаться программатором с высокой частотой SCK. Вопрос: почему ?
  4. Кажется, начинает проясняться. Как известно, SPI-программирование происходит при низком уровне на входе RESET. А в даташите сказано: "During reset, all I/O Registers are set to their initial values...". Т.к. CLKPR является одним из I/O Registers, то он также должен установиться в начальное значение. Я почему-то считал, что начальное значение - это 0, но получается, что это не всегда так. И вот тут опять непонятно: ведь CLKPR относится к энергозависимой памяти (SRAM), и при отключении питания его содержимое должно сбрасываться, и этот регистр должен устанавливаться в 0 ? Каким же образом в нем все же сохраняются его установки?
  5. Может быть и так. Но напомню, что данная ветка форума начиналась с другого вопроса: почему программатором перестали читаться фьюзы и записанная программа? Ведь я не менял CKDIV8, а только применил в своей программе коэффициент деления 256 установкой регистра CLKPR. Неужели эти установки сохраняются и в режиме программирования? В даташите я не нашел никакого объяснения по этому поводу.
  6. Но ведь для fck >= 12 MHz единственный возможный коэффициент деления предделителя - это 1 (т.е. без деления частоты), т.к. даже для коэф-та 2 получается, что частота источника тактового сигнала >= 24 MHz, а это недопустимо для ATtiny13. Следовательно, fck - это частота непосредственно самого источника тактового сигнала, а не после предделителя. Но, во-первых, из структурной схемы в разделе System Clock and Clock Options непосредственно не видно, что CKDIV8 влияет именно в режиме программирования. Во-вторых, в разделе Serial Programming сказано, что на процесс SPI-программирования влияют установки фьюзов CKSEL1 и CKSEL2, но ничего не сказано о влиянии фьюза CKDIV8.
  7. Насчет CKSEL согласен, а относительно влияния на процесс SPI-программирования фьюза CKDIV8 - не могли бы привести цитату из даташита? Думаю, что fck - это частота непосредственно тактового сигнала (или внутреннего генератора, или внешнего External Clock). Это частота НЕ после делителя (Prescalerа). Т.к. после делителя частота не может быть >12 Мгц
  8. Это понятно. Это тоже понятно. Значит, в режиме программирования имеют значение только установки фьюзов CKSEL, и не имеет значения фьюз CKDIV8 ? А вот это не совсем понял. Как именно вы понижали частоту до минимума? Использовали внутренний генератор 128 кГц? Или каким-то иным способом?
  9. Спасибо за ответы. Пробовал затактировать от внешнего генератора 100 кГц. К сожалению, не помогло, не получалось прочесть ни Flash, ни фьюзы. Спасибо, помогло! Я программирую программой PonyProg2000, и в файле PonyProg2000.ini с помощью Блокнота изменил строку SPIBusSpeed=NORMAL на SPIBusSpeed=VERYSLOW. После этого все стало замечательно читаться - и Flash, и фьюзы. Уважаемый adnega, не могли бы объяснить, в чем была причина, ведь раньше все читалось и при скорости NORMAL ?
  10. Добрый день. Помогите пожалуйста разобраться. Возникла проблема при программировании м-сх ATtiny13A, работающей от внутреннего генератора. Фьюзы у нее были такие, и я их не менял: Я записал новую программу, в которой применил коэф-т деления генератора на 256. Программа записалась и правильно работает, но контроллер перестал читаться и я больше не могу его перепрограммировать. Подскажите, что могло произойти и как избежать этого в дальнейшем?
  11. Добрый день! Пытаюсь с помощью м-к ATtiny261 управлять цифровым потенциометром AD8400 по синусоидальному закону. Из осциллограммы видно, что потенциометр изменяет сопротивление в своем полном диапазоне, но всего лишь за несколько шагов, а не за 256, как должно быть. В чем может быть причина? Фрагмент кода для CodeVisionAVR: unsigned int q; unsigned char s; while (1) { for(q=0;q < 628; q++) //для всех 256 значений сопротивления { s=125*(sin(q/100)+1); set_resistance(0x00, s); } };
  12. Кстати, измерения проводил на двух экземплярах предохранителей. Результаты были практически идентичными. Считаете, что отклонение температуры на несколько градусов может изменить время переключения в несколько раз?
  13. Вот и я не нашел толкового определения термина Time to trip. Комнатная температура ... Может быть. Надо будет проверить ...
  14. Добрый день! Изучал срабатывание предохранителя MF-USMF005. Напряжение снималось с токоизмерительного резистора 1 Ом, включенного последовательно с предохранителем. Амплитуда импульса тока получилась 1,3 А. Привожу данные из даташита для этого предохранителя: Из даташита следует, что при токе 1,3 А время переключения (Time to trip) должно быто примерно 5 мс. Но из осциллограммы видно, что за это время сопротивление предохранителя изменяется очень незначительно. Сопротивление существенно изменяется за время раз в 5-6 больше. Что тут не так? Или так и должно быть?
  15. Нет, название "Full-Wave Rectifier" правильное. Эта схема не такая простая, как кажется на первый взгляд. rudy_b описал, как она работает.
  16. Добрый день! Так значит, в даташите на рис.127 ошибка? Нужно поменять местами инвертирующий и неинвертирующий входы ОУ?
  17. Спасибо за ответ. Описания на м-сх и CAN конечно читал. Терминальные резисторы подключены (по концам линии, как и положено). Похоже, что автогенерация имеет чисто "электрическое" происхождение и не связана с протоколом обмена, поскольку даже если отключить питание всех устройств, кроме CAN-повторителя, то автогенерация все равно есть, т. е. сам CAN-повторитель "заводится". Под физическими параметрами линии подразумеваю длину линии, а также входные емкости CAN-устройств, которые к ней подключены. Но еще раз повторю: мне нужны именно технические публикации (статьи, application notes) по этому вопросу.
  18. Добрый день! Возникла такая проблема: есть CAN-репитер на двух м-схемах AMIS-42770, которые гальванически развязаны между собой с помощью оптронов. Этот CAN-репитер связывает две линии CAN. При некоторых физических параметрах линий CAN возникает автогенерация и обмен данными прекращается. Вопрос: не подскажет ли кто-нибудь из форумчан, что можно почитать (имеются в виду технические статьи, можно и на английском) по данному вопросу?
  19. Подобные датчики я и имел в виду. Но, во-первых, указанные Вами датчики работают по тому же принципу, что и мой, во-вторых, у них ток потребления не более 10 мА, а не 500 мкА, и в-третьих, дистанция обнаружения даже самого чувствительного из указанных датчиков в несколько раз меньше, чем требуется мне.
  20. Может, приведете хотя бы парочку примеров, чтобы было понятно, о чем идет речь. И какова чувствительность и дистанция обнаружения таких индуктивных датчиков?
  21. Не могли бы привести пример такого индуктивного датчика? Насколько я знаю, применяемый мною принцип является оптимальным для таких датчиков, особенно если требуется малый ток потребления.
  22. Индуктивность реагирует на приближение металлического предмета. Устройство использует не сам срыв, а просто работает недалеко от области срыва. Спасибо за ссылку,изучаю. Т.е. при этом возрастает чувствительность. На практике так и происходит, но как это объяснить теоретически? При этом амплитуда генератора становится нестабильной (хаотически меняется в пределах примерно 1% - вроде бы немного, но резко возрастает частота ложных срабатываний). Интуитивно это и понятно, но все же возникает вопрос - а нельзя ли как-то улучшить стабильность сигнала в области, близкой к срыву? Спасибо! Кажется, наконец-то начинает проясняться! Я имел ввиду проблему с устойчивостью, которая, насколько мне известно, существует практически во всех системах автоматического регулирования. При решении этой проблемы может возрасти инерционность и сильно увеличится время выхода на рабочий режим после включения.
  23. Можно сделать иначе - сразу после включения устанавливать R3 таким, чтобы колебания гарантированно возникали, а затем увеличивать его. Тут есть опасность возникновения колебаний AGC. Не понизится ли при этом чувствительность индуктивного датчика?
×
×
  • Создать...