Страница 1 из 2
Непонятки с частотой ATtiny13
Добавлено: Ср июн 19, 2024 23:34:50
Igoryan4ik
Всем привет! Подскажите такой вопрос. Начал изучать Tiny13, купил пару штук в Чип и Дипе в корпусе Soic-8. Закинул код с ШИМ программатором XGecu T48. По заводу шли фъюзы 0xFF 0x6A, выставил 0x7A -(CKDIV8=1) что должно было выставить частоту на 9.6мГц. Подключившись осциллографом, по шиму понял что частота не верная. Для проверки основной частоты закинул код с циклом PORTB |= (1<<PB4); PORTB &= ~(1<<PB4). По итогу если выстaвить CKDIV8=0 Тини работает на частоте 150кГц. Если перейти на частоту 4,8мГц. при CKDIV8=1 частота 600кГц, а при CKDIV8=0 частота 75кГц. В общем что я упускаю, где еще один делитель на 8 ? но его не должно быть. Пробовал на другой тиньке из той же партии. Что я делаю не так ?
Re: Непонятки с частотой ATtiny13
Добавлено: Чт июн 20, 2024 10:25:21
metan
Как же так?
Вы дали море нахрен никому не нужной информации, типа модели программатора, где покупали, типа корпуса и т.д.
Но ни кода, ни методики измерения частоты вы не привели. На какую помощь вы вообще рассчитывали?
Что может быть:
1. Неверно измерена частота
2. Частота меняется в коде (CKDIV8, настройки таймеров ШИМА и т.д.)
Re: Непонятки с частотой ATtiny13
Добавлено: Чт июн 20, 2024 11:06:43
BOB51
Надо для начала хотя бы хорошо с документацией на МК ознакомиться...
Да задать верную начальную конфигурацию аппаратных ресурсов.
А потом уж "контейнер гнать" на результат.

Re: Непонятки с частотой ATtiny13
Добавлено: Чт июн 20, 2024 19:25:10
Igoryan4ik
Код: Фъюзы: Осциллограмма общий и вывод PB4:
Как правильно измерять частоту МК ?
Re: Непонятки с частотой ATtiny13
Добавлено: Чт июн 20, 2024 19:38:28
Martian
код в картинке с кривой ссылкой... там перфоленты изображение?

Re: Непонятки с частотой ATtiny13
Добавлено: Чт июн 20, 2024 21:00:05
BOB51
Это розыгрыш? (Насчёт кода на Си)
Ни настроек ни начальной инициализации МК.
Ткнулось "по умолчанию и фузам" и желаем точные характеристики получить (не прочитав, что при заданных фузах и прочем... в результате на выходах будет)...

Re: Непонятки с частотой ATtiny13
Добавлено: Чт июн 20, 2024 21:05:01
Martian
[uquote="Igoryan4ik",url="/forum/viewtopic.php?p=4593019#p4593019"]Что я делаю не так ?[/uquote] Не изучив теорию, схватились за паяльник... Ну, решим ща этот вопрос. Завтра будет другой. В итоге, здесь будет в очередной раз криво перепечатана книжка "Микроконтроллеры AVR. Вводный курс" (Д. Мортон, 2006)
Re: Непонятки с частотой ATtiny13
Добавлено: Чт июн 20, 2024 21:19:28
Igoryan4ik
Этого кода достаточно для проверки на кокой частоте работает МК. Какая инициализация еще нужна. везде в примерах работы этого хватает. Я не запускаю шим или други функции.
Re: Непонятки с частотой ATtiny13
Добавлено: Чт июн 20, 2024 21:27:54
BOB51
В сундуке кота есть по тинькам книга на русском.
По умолчанию у 13й частота RC генератора 9,6мегагерца.
Внутреннее тактирование (если ничего не трогать в фузах) будет 9,6/8=1, 2МГц далее считаем такты команд (хотя бы примерно) согласно соответствующей документации по системе команд МК семейства АВР... (Явно не под Си, а в распечатке листинга ассемблера)
Или используем аппаратный таймер с соответствующими настройками - более точный интервал получить можно.

Про "переключение от 4,8 мегагерц" вообще бред - ибо там калибровочная константа автоматически не загружается (читаем хоть иногда документацию!) так что примитив без соответствующих настроек инициализации железа не гарантирует стабильно-устойчивой работы RC генератора.
Re: Непонятки с частотой ATtiny13
Добавлено: Чт июн 20, 2024 21:35:22
Martian
Потому и надо книгу... код написал, а что код, где код, как мк работает - этого понимания нет

Re: Непонятки с частотой ATtiny13
Добавлено: Чт июн 20, 2024 21:36:43
Igoryan4ik
[uquote="BOB51",url="/forum/viewtopic.php?p=4593380#p4593380"]В сундуке кота есть по тинькам книга на русском.
По умолчанию у 13й частота RC генератора 9,6мегагерца.
Внутреннее тактирование (если ничего не трогать в фузах) будет 9,6/8=1, 2МГц далее считаем такты команд (хотя бы примерно) согласно соответствующей документации по системе команд МК семейства АВР... (Явно не под Си, а в распечатке листинга ассемблера)
Или используем аппаратный таймер с соответствующими настройками - более точный интервал получить можно.

[/uquote]
Да согласен но я отключил делитель на 8. По осциллограмме видно что длительность высокого уровня 320нс это период такта МК на выполнение команды ORI и это 3,125мГц но не 9,6
Re: Непонятки с частотой ATtiny13
Добавлено: Чт июн 20, 2024 21:38:50
Martian
На картинке Вашего кода эта команда не нарисована
Re: Непонятки с частотой ATtiny13
Добавлено: Чт июн 20, 2024 21:40:09
Igoryan4ik
[uquote="Martian",url="/forum/viewtopic.php?p=4593384#p4593384"]На картинке Вашего кода эта команда не нарисована[/uquote]
А это не оно разве PORTB |= (1<<PB4)
Re: Непонятки с частотой ATtiny13
Добавлено: Чт июн 20, 2024 21:41:51
Martian
Нет. Это - Си.
Нарисуйте картинку ассемблерного листинга после компиляции.
Re: Непонятки с частотой ATtiny13
Добавлено: Чт июн 20, 2024 21:50:03
BOB51
Точно рассчитать время выполнения команд программы можно только при работе под чистым ассемблером.
Или применяя аппаратные средства таймеров.
Так что... Изучите для начала матчасть (хотя бы поверхностно)

Re: Непонятки с частотой ATtiny13
Добавлено: Чт июн 20, 2024 22:37:20
Igoryan4ik
Ок спасибо буду смотреть ассемблер
Добавлено after 40 minutes 16 seconds:
[uquote="Martian",url="/forum/viewtopic.php?p=4593386#p4593386"]Нет. Это - Си.
Нарисуйте картинку ассемблерного листинга после компиляции.[/uquote]
После компиляции в Microchip Studio файл LSS. Это получается что на команду PORTB |= (1<<PB4) уходит 3 команды ассемблера и каждая длится по такту: IN чтение порта , ORI лог или, OUT запись в порт. итого 3 такта. Тогда получается длительность высокого уровня 320нс это 3 такта МК по 106нс. итого примерно 9.4 мГц Так ?
Re: Непонятки с частотой ATtiny13
Добавлено: Чт июн 20, 2024 23:13:59
Martian
Почти. Дело в том, что на выполнение команды может уйти и более одного такта, это зависит от архитектуры микроконтроллера, частного случая выполнения команды, и, возможно, иных условий.
https://microsin.net/programming/avr/command-timing.html писал(а):Таблицу соответствия между командами микроконтроллера и количеством тактов можно найти в даташите на микроконтроллер, см. раздел Instructions Set Summary в конце даташита. В последнем столбце таблицы #Clocks указано число тактов, за которое выполняется команда. Если там стоит одна цифра - например 2, тогда все понятно, команда выполняется 2 такта. Но иногда там стоит 1/2 или 1/2/3. Это означает для примера 1/2, что команда может выполнится за 1 или 2 такта, что зависит от условия выполнения команды.
Re: Непонятки с частотой ATtiny13
Добавлено: Чт июн 20, 2024 23:20:06
Igoryan4ik
Понятно, разобрался. Спасибо всем за помощь, буду поглядывать на ассемблер. но кодить все же на С проще.
Re: Непонятки с частотой ATtiny13
Добавлено: Пт июн 21, 2024 09:16:58
mickbell
Данунафиг. Ассемблер - для крайних случаев, коих на самом деле мало. Писать программный кот НАДО на Си. А считать временные интервалы по тактам - это позапрошлый век. Для счёта времени есть таймеры.
Re: Непонятки с частотой ATtiny13
Добавлено: Пн июл 29, 2024 18:40:03
iev91
Дано: симисторный регулятор Овен для вентилятора. Он обнаруживает переход сети через 0, отмеряет время для регулировки мощности, включает импульс управления симистором, а в момент перехода через 0 отключает. Проблема в том, что отключать надо бы чуть раньше. В итоге регулятор работает неустойчиво.
Было решено добавить tiny13, чтобы укорачивать импульсы. И нарисовалась проблема с tiny13 на ровном месте. Устройство из палки и верёвки почему-то не работает. Часть импульсов пропущено. Понимаю, что можно сделать по-другому, но мне надо понять, в чём дело.
Красный луч - это входные импульсы частотой 100 Гц на порту PB3, жёлтый луч - выходные импульсы с порта PB0.
Добавлено after 22 minutes 21 second:
Всё, разобрался сам. Не срабатывает, когда фронт попадает после первого if, но до следующего while. Сделал ожидание обоих уровней, заработало.