Например TDA7294

Форум РадиоКот • Просмотр темы - Помогите с асинхронным таймером на AtMega8a
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Чт апр 18, 2024 20:02:26

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 71 ]    , , 3,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Помогите с асинхронным таймером на AtMega8a
СообщениеДобавлено: Ср фев 21, 2018 11:22:33 
Встал на лапы
Аватар пользователя

Карма: 4
Рейтинг сообщений: 4
Зарегистрирован: Сб фев 17, 2018 00:08:56
Сообщений: 91
Рейтинг сообщения: 0
4 лишних символа не так уж и много, темболее проблем с этим куском у меня нет, мне бы часики точные получить)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с асинхронным таймером на AtMega8a
СообщениеДобавлено: Ср фев 21, 2018 12:06:32 
Встал на лапы
Аватар пользователя

Карма: 21
Рейтинг сообщений: 23
Зарегистрирован: Сб янв 12, 2013 22:43:10
Сообщений: 99
Откуда: Москва
Рейтинг сообщения: 0
Думаю, чтобы улучшить точность хода ваших часов, необходимо изменить разводку платы. Особое внимание нужно уделить часовому кварцу- дорожки от контролёра к нему должны быть минимально возможной длины, под кварцевым резонатором необходимо предусмотреть полигон который соединяется с минусом питания в одной точке. Сам кварцевый резонатор необходимо припаять к полигону на котором он будет находиться. И конечно же не стоит выход контролёра ( динамическая индикация.) располагать в паре миллиметров от дорожки кварцевого резонатора. Воспользуйтесь переназначением выхода контролёра на другой его "пин". Плата на фото выглядит чистой, но спрошу: - Как и чем её мыли после пайки? Недоотмытый флюс под контролёром и между выводов резонатора может доставить много неприятностей. Визуально - невидим, но его тонкая плёнка вносит существенную коррекцию в работу устройства( это- из личного опыта.)
Посмотрев на печатную плату можно увидеть, что можно контролёр повернуть на 45 град. по часовой стрелке, при этом дорожки к кварцевому резонатору станут гораздо короче, минус питания проходит вдоль него и припаять корпус к минусу- дело 1 минуты.

PS
Пожалуй, я бы сделал минусовую шину- пошире, примерно как на фото ниже, корявенько нарисовано но смысл понятен, и кнопки убрать подальше от резонатора.


Вложения:
1ie5cs5fsy_1.jpg [63.29 KiB]
Скачиваний: 244
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с асинхронным таймером на AtMega8a
СообщениеДобавлено: Ср фев 21, 2018 20:26:19 
Встал на лапы
Аватар пользователя

Карма: 4
Рейтинг сообщений: 4
Зарегистрирован: Сб фев 17, 2018 00:08:56
Сообщений: 91
Рейтинг сообщения: 0
Отмывал изопропиловым спиртом, особенно уделял внимание дорожкам кварца, корпус уже подтянул к земле, скобой из жесткой медной проволки. Мне кажеться он спешит довольно равномерно, потому попытаюсь ввести корректировку времени (пока по расчетам нужно отнимать еденицу из счётчика 2, каждые 980 тиков, если я все правильно посчитал, можно к примеру ввести отдельную переменную которая будет за это отвечать)
Вам огромное спасибо за помощь и + к карме, без вашей помощи, я бы не справился)

Добавлено after 7 hours 58 minutes 56 seconds:
Появился еще один вопрос, я могу паралельно прерыванию по совпадению с 127, сделать прерывания по совпадению с 63?
Я посчитал, и по идеии для корректировки нужно отнимать единицу из второго счётчика каждые 7,5 секунд, и вот мне надо получить эти пол секунды. Ну либо второй вариант, по очереди отнимать единицу через 7 и через 8 секунд. Что посоветуете?


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Помогите с асинхронным таймером на AtMega8a
СообщениеДобавлено: Чт фев 22, 2018 06:47:20 
Встал на лапы
Аватар пользователя

Карма: 4
Рейтинг сообщений: 4
Зарегистрирован: Сб фев 17, 2018 00:08:56
Сообщений: 91
Рейтинг сообщения: 0
То что на коленке написал за пару минут (каждые 15 секунд, отнимаю по два из второго счетчика) помоголо, за 9 часов, ушло на 3 секунды :roll:
осталось еще немного пошаманить, и думаю все будет довольно точно


Вернуться наверх
 
Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Помогите с асинхронным таймером на AtMega8a
СообщениеДобавлено: Чт фев 22, 2018 06:49:57 
Вымогатель припоя

Карма: 6
Рейтинг сообщений: 168
Зарегистрирован: Ср янв 06, 2010 10:01:46
Сообщений: 551
Рейтинг сообщения: 0
Jack-Sidr писал(а):
Что посоветуете?

Частота, на которой должен работать ХОРОШИЙ часовой кварц, выбрана кратной степеням двойки. Поэтому, при наличии в схеме такого кварца и грамотно написанной программы, коррекция хода потребуется минимальная. Т.е. верная программа делит точно до секунды, и остается только точность кварца/конденсаторы/монтаж. Я собрал около десятка часов/таймеров, и максимальный уход у меня был около 4 секунд за 10 дней.
Я бы рекомендовал:
1. попробовать настроить таймер, как я советовал выше по теме.
2. если результаты не улучшатся, поменять кварц.
3. попробовать поиграться с конденсаторами и фьюзом CKOPT
4. если ничего не помогло, и плата чистая, тогда я не знаю :facepalm:


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Помогите с асинхронным таймером на AtMega8a
СообщениеДобавлено: Чт фев 22, 2018 08:37:09 
Друг Кота

Карма: 64
Рейтинг сообщений: 966
Зарегистрирован: Пт мар 07, 2008 06:54:43
Сообщений: 4220
Откуда: Ижевск
Рейтинг сообщения: 0
Вот как формируется минутный интервал кварцами гейер одной партии когда частота задана 32'768Гц.
Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с асинхронным таймером на AtMega8a
СообщениеДобавлено: Чт фев 22, 2018 10:52:22 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2804
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18076
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
metan писал(а):
3. попробовать поиграться с конденсаторами и фьюзом CKOPT
это самое правильно решение.
в узком диапазоне можно изменять частоту конденсаторами.
1. отключить внутренние конденсаторы.
2. изменением внешних конденсаторов подбирать частоту по минимальной погрешности.
и необязательно менять емкость одновременно обоих конденсаторов. гораздо точнее подгонка частоты будет подбором одного конденсатора.
3. но может случиться такое, что даже при маленькой емкости параллельных конденсаторов, частота будет ниже требуемой (ниже 32768).
тогда ставим конденсатор последовательно с кварцем - это позволит повысить частоту. и дальше возвращаемся к пункту 2 - подгонять частоту параллельными конденсаторами.
но последовательный конденсатор должен иметь уже не маленькую емкость (может, сотни-тысячи пик), чтобы не сильно снизить эквивалентную емкость кварца.

есть еще и способ 4. для снижения частоты параллельно кварцу поставить маленькую емкость для увеличения эквивалентной емкости кварца.

например, в советских наручных часах "Электроника" стоял крошечный подстроечный конденсатор для регулировки точности хода часов.

то есть, не придумывать "костыли" с вычитанием или прибавлением единички с некоторой периодичностью, а поиграть настройкой частоты.

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с асинхронным таймером на AtMega8a
СообщениеДобавлено: Чт фев 22, 2018 12:54:02 
Друг Кота

Карма: 64
Рейтинг сообщений: 966
Зарегистрирован: Пт мар 07, 2008 06:54:43
Сообщений: 4220
Откуда: Ижевск
Рейтинг сообщения: 0
Зачем трахаться с конденсаторами, когда все решается на программном уровне.
Вот у стартера часы убежали за 8,5 часов на 30 секунд, т.е. за 30'600 насчитали 30'630 секунд.
30'630/30'600*32768Гц~32'800Гц. Что без внешних конденсаторов вполне логичная величина, которая забивается в OCR1A=32800-1 таймера Т1. Таймер переводится в режим CTC. Организуется счетчик секунд на 59, после отсчета которым в последнюю 60-ю секунду заносится число, представляющее разность между минутным интервалом и периодом 59 секунд. Вот длительностью последней секунды можно программно корректировать минутный интервал и получить примерно такое
Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с асинхронным таймером на AtMega8a
СообщениеДобавлено: Чт фев 22, 2018 13:20:32 
Встал на лапы
Аватар пользователя

Карма: 4
Рейтинг сообщений: 4
Зарегистрирован: Сб фев 17, 2018 00:08:56
Сообщений: 91
Рейтинг сообщения: 0
Тоже не вижу смысла с конденсоторами играться, главное что частота не плавает, а значит можно настроить программно, я уже уменьшил убегание с 31 секунды до 3 секунд, немного настрою корректировку, и выйду на нормальную частоту, темболее так хоть математически можно посчитать корректировку, а не по воле случая тыкать конденстары и пытаться поймать частоту.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с асинхронным таймером на AtMega8a
СообщениеДобавлено: Чт фев 22, 2018 14:08:05 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2804
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18076
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
akl, а каким образом ты в 8-битный асинхронный таймер запишешь 32800?
у ТС же используется 8-битный таймер с внешним кварцем на 32768...

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с асинхронным таймером на AtMega8a
СообщениеДобавлено: Чт фев 22, 2018 14:20:58 
Встал на лапы
Аватар пользователя

Карма: 4
Рейтинг сообщений: 4
Зарегистрирован: Сб фев 17, 2018 00:08:56
Сообщений: 91
Рейтинг сообщения: 0
Лично я решил отнимать тики с второго счётчика, через определенные интервалы


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с асинхронным таймером на AtMega8a
СообщениеДобавлено: Чт фев 22, 2018 14:27:19 
Друг Кота

Карма: 64
Рейтинг сообщений: 966
Зарегистрирован: Пт мар 07, 2008 06:54:43
Сообщений: 4220
Откуда: Ижевск
Рейтинг сообщения: 0
Starichok51 У mega8 имеется 16-разрядный таймер Т1 и возможность работы от Low-Frequency Crystal Oscillator 32'768Гц. Не нужно заморачиваться с предделителями и ограничивать возможность подключения встроенных конденсаторов FUSE-битом CKOPT. Это просто рабочий вариант.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с асинхронным таймером на AtMega8a
СообщениеДобавлено: Чт фев 22, 2018 15:12:07 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2804
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18076
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
про существование Таймера1 я знаю.
остается только объяснить это топикстартеру, чтобы он отказался от Таймера2, и не мучился с "изобретением" этой убогой коррекции времени...

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с асинхронным таймером на AtMega8a
СообщениеДобавлено: Чт фев 22, 2018 16:34:10 
Вымогатель припоя

Карма: 6
Рейтинг сообщений: 168
Зарегистрирован: Ср янв 06, 2010 10:01:46
Сообщений: 551
Рейтинг сообщения: 0
Jack-Sidr писал(а):
Тоже не вижу смысла с конденсоторами играться

Я тоже не вижу, если программа и кварц нормальные, понадобится только МИНИМАЛЬНАЯ коррекция (никак не секунды в час)
См. мою первую рекомендацию. Сделайте для начала деление частоты кварца ровно на 32768.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с асинхронным таймером на AtMega8a
СообщениеДобавлено: Чт фев 22, 2018 17:26:29 
Мудрый кот

Карма: 20
Рейтинг сообщений: 145
Зарегистрирован: Вс дек 25, 2016 08:34:54
Сообщений: 1849
Рейтинг сообщения: 0
akl писал(а):
Starichok51 У mega8 имеется 16-разрядный таймер Т1 и возможность работы от Low-Frequency Crystal Oscillator 32'768Гц. Не нужно заморачиваться с предделителями и ограничивать возможность подключения встроенных конденсаторов FUSE-битом CKOPT. Это просто рабочий вариант.
Вообще то нет.
Только таймер T2 позволяет тактировать от кварца 32'768, сохранив тактирование основного ядра от внутреннего RC-генератора 8МГц.
Если Т1 вы будете тактировать от кварца 32'768 то и основное ядро будет также тактироваться от 32'768.
К примеру UART от 32'768 работает кое как на скорости 110 бит/сек,
тогда как от RC-1МГц - кое как 9600 бит/сек,
от RC-8МГц - 19200 бит/сек и более.
Смотря для чего ему надо, может и 32'768 достаточно будет.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с асинхронным таймером на AtMega8a
СообщениеДобавлено: Чт фев 22, 2018 17:38:29 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2804
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18076
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
пожалуй, для этих часов не нужен UART. да и процессору в часах мизерный объем работы.
так что вполне можно запустить Таймер1 от кварца 32768 Гц.

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с асинхронным таймером на AtMega8a
СообщениеДобавлено: Пт фев 23, 2018 17:53:32 
Встал на лапы
Аватар пользователя

Карма: 4
Рейтинг сообщений: 4
Зарегистрирован: Сб фев 17, 2018 00:08:56
Сообщений: 91
Рейтинг сообщения: 0
Таймер1 не вариант, поскольку хочу реализовать бесперебойное питание, что-бы при пропадании внешнего питания, кидало мк в сон, а таймер продолжал тикать от батарейки.

Добавлено after 9 minutes 44 seconds:
1. попробовать настроить таймер, как я советовал выше по теме.


Проблема в том, что если я копирую без изменений, WinAvr просто отказывается компилировать
Код:
main.c:80: error: 'TIM2_OVF' undeclared here (not in a function)
main.c:80: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'void'


Если заменяю
Код:
interrupt [TIM2_OVF] void timer2_ovf_isr(void)

на
Код:
ISR(TIMER2_OVF_vect)


Компилируется, но таймер не запускается совсем, могли бы вы скопировать мой код, скомпилировать в CVAvr и скинуть hex?
Если не трудно.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с асинхронным таймером на AtMega8a
СообщениеДобавлено: Пт фев 23, 2018 18:16:21 
Мудрый кот

Карма: 20
Рейтинг сообщений: 145
Зарегистрирован: Вс дек 25, 2016 08:34:54
Сообщений: 1849
Рейтинг сообщения: 0
Jack-Sidr писал(а):
Компилируется, но таймер не запускается совсем, могли бы вы скопировать мой код, скомпилировать в CVAvr и скинуть hex?
Если не трудно.
Держи Или какой другой код?

Вот его код.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с асинхронным таймером на AtMega8a
СообщениеДобавлено: Пт фев 23, 2018 19:20:36 
Друг Кота
Аватар пользователя

Карма: 46
Рейтинг сообщений: 2030
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 6618
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
По поводу питания: ток потребляемый МК прямо пропорционален частоте, и, если правильно настроить режим сна, потребленная энергия зависит только от напряжения питания и от количества выполненных команд (а от частоты не зависит).
поэтому, если часового кварца хватит для тактирования АЛУ (по его производительности) то даже лучше тактировать им, т.к. увеличивается стабильность работы на пониженном напряжении питания при тойже (или даже меньшей из за меньшего Uпит) мощности (есть проект, и я недавно на него ссылку выкладывал, где тинька13 от 1,5в работает, правда т.к. сама кварц не умеет - использует внешний генератор на часовом кварце).

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с асинхронным таймером на AtMega8a
СообщениеДобавлено: Пт фев 23, 2018 19:29:22 
Встал на лапы
Аватар пользователя

Карма: 4
Рейтинг сообщений: 4
Зарегистрирован: Сб фев 17, 2018 00:08:56
Сообщений: 91
Рейтинг сообщения: 0
Спасибо, буду пробовать, утром отпишусь про результат.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 71 ]    , , 3,  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: Varlakotam, veso74 и гости: 25


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y