ARV: мысли вслух
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
ARV: мысли вслух
чудны дела твои, Господи!
делаю один небольшой проект, как обычно, на МК AVR. конкретно - atmega328p
задействованы все таймеры, причем TMR2 - в асинхронном режиме от миниатюрного часового кварца (да, проект - часы). само собой, всего много хочу напихать, но сейчас речь не об этом. а о том, что происходят чудеса: если МК аппаратно генерирует ШИМ (TMR1), то значит, не работает TMR2. если запускается TMR2 - отсутствует генерация ШИМ. в коде прямой связи между таймерами вроде как нет... то, что TMR2 не каждый раз при подачи питания запускается, я пока отношу на несоответствие кварца требованиям Atmel (кто ж его знает, что там за кварц у меня - он диаметром 1 мм и длиной 4 - на нем нет ни одного символа!). но как один таймер влияет на другой - это загадка.
понятное дело, рано или поздно все выяснится, но пока весьма озадачен...
ситуацию осложняет тот факт, что конструктивно я все реализовал плотно и миниатюрно, и по собственной глупости не предусмотрел никаких контрольных точек-площадок, поэтому даже осциллографом ткнуть куда-то - проблема... мой пример - другим наука: при разработке печатной платы всегда думать о будущей наладке!
делаю один небольшой проект, как обычно, на МК AVR. конкретно - atmega328p
задействованы все таймеры, причем TMR2 - в асинхронном режиме от миниатюрного часового кварца (да, проект - часы). само собой, всего много хочу напихать, но сейчас речь не об этом. а о том, что происходят чудеса: если МК аппаратно генерирует ШИМ (TMR1), то значит, не работает TMR2. если запускается TMR2 - отсутствует генерация ШИМ. в коде прямой связи между таймерами вроде как нет... то, что TMR2 не каждый раз при подачи питания запускается, я пока отношу на несоответствие кварца требованиям Atmel (кто ж его знает, что там за кварц у меня - он диаметром 1 мм и длиной 4 - на нем нет ни одного символа!). но как один таймер влияет на другой - это загадка.
понятное дело, рано или поздно все выяснится, но пока весьма озадачен...
ситуацию осложняет тот факт, что конструктивно я все реализовал плотно и миниатюрно, и по собственной глупости не предусмотрел никаких контрольных точек-площадок, поэтому даже осциллографом ткнуть куда-то - проблема... мой пример - другим наука: при разработке печатной платы всегда думать о будущей наладке!
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: ARV: мысли вслух
Или еще один повод вспомнить о предварительной прогонке проекта на макете...
У 328й несколько версий (отличие в буковках) и в даташитах.
Вчитываться пока не довелось - уж больно много страничек к распечатке (с экрана и непривычно и заметок оставить негде)...
Возможно таки те отличия "повылазили"...

У 328й несколько версий (отличие в буковках) и в даташитах.
Вчитываться пока не довелось - уж больно много страничек к распечатке (с экрана и непривычно и заметок оставить негде)...
Возможно таки те отличия "повылазили"...

- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: ARV: мысли вслух
не все возможно прогнать на макетке по причине сложности схемы - макетка получается слишком дорогой. понадеялся на свой опыт, и прошляпил столько моментов... позже расскажу.
Добавлено after 6 minutes 46 seconds:
Экономия, такая экономия...

такая плата была разработана, чтобы уложиться в "бесплатный" размер 100х100 мм JLCPCB
и вот такое должно получиться (и получилось):

но пока не заработало
Добавлено after 6 minutes 46 seconds:
Экономия, такая экономия...
такая плата была разработана, чтобы уложиться в "бесплатный" размер 100х100 мм JLCPCB
и вот такое должно получиться (и получилось):
но пока не заработало
- Вложения
-
- IMG_20210409_184823_resize_85.jpg
- (87.66 КБ) 442 скачивания
-
- IMG_20210409_184152_resize_40.jpg
- (93.47 КБ) 427 скачиваний
Последний раз редактировалось ARV Чт май 13, 2021 10:32:34, всего редактировалось 1 раз.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: ARV: мысли вслух
Как только ознакомился с MSP430FR, люто возненавидел древние AVR. Даже думать в их сторону не хочу. Хотя новые AVR 0-ой и 1-ой серии тоже не подарок, но между ними пропасть.
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: ARV: мысли вслух
на вкус и цвет... бесконечная гонка за новинками меня утомила давно, думаю, что лично для меня спокойнее и полезнее будет использовать то, что вполне освоено и удовлетворяет запросам.parovoZZ писал(а):люто возненавидел древние AVR
не стоит холиварить
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: ARV: мысли вслух
Плохо освоено-то. Раз ШИМ останавливает осцилляцию соседнего таймера...
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: ARV: мысли вслух
можно подумать, у вас ошибок не бывает.
Добавлено after 1 minute 52 seconds:
причина, кстати, пока не установлена, поэтому говорить, кто кого останавливает пока преждевременно. но связь налицо: если есть ШИМ - нет RTC и наоборот. и то или другое состояние возникает в момент подачи питания случайно.
Добавлено after 1 minute 52 seconds:
причина, кстати, пока не установлена, поэтому говорить, кто кого останавливает пока преждевременно. но связь налицо: если есть ШИМ - нет RTC и наоборот. и то или другое состояние возникает в момент подачи питания случайно.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: ARV: мысли вслух
Я б на отдельном железке только проблемный узел прогнал.
А уж затем к схемке вернулся....

А уж затем к схемке вернулся....
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: ARV: мысли вслух
так я проблемным считал узел повышающего преобразователя, и отдельно его прогнал. а оно вон как вышло...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: ARV: мысли вслух
Так раз осциллятор запускается через раз, то при помехе на шине питания ему сам бог велел вставать. В AtMega328 разве нету регистра, отслеживающего работу осциллятора? Во всех нормальных МК он есть и именно по его "показаниям" принимается решение о переходе с RC осциллятора на кварц.
Re: ARV: мысли вслух
Как вариант... По аналогии со старыми "особенностями" -
возможно есть дополнительное управление емкостями в режиме генерации где-то "в сторонке".
Как в старо-добрых АВРках для внешнего кварца (там еще и размах сигнала менялся в зависимости от типа резонатора)...

возможно есть дополнительное управление емкостями в режиме генерации где-то "в сторонке".
Как в старо-добрых АВРках для внешнего кварца (там еще и размах сигнала менялся в зависимости от типа резонатора)...

- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: ARV: мысли вслух
давайте вы не будете плавно подводить к мысли, что AVR - говно? если по поводу сказанного мною у вас нет мнения, то нет смысла и говорить что-то...parovoZZ писал(а):В AtMega328 разве нету регистра, отслеживающего работу осциллятора?
часовой кварц работает с таймером сам по себе, на основное тактирование не влияет от слова вообще. основное тактирование независимо и работает. а вот RTC стартует через раз. и свои предположения я озвучил: схема RTC рассчитана на определенные комплексные сопротивления кварца, а какой кварц у меня - я понятия не имею. вполне вероятно, что то ли емкость кварца не та, то ли еще что - вот он и не всегда стартует. и отслеживание тут элементарное: стоят часы - нет работает кварц
если я верно понял даташит, то "часовая" система atmega328p рассчитана на бесконденсаторное подключение кварца, но его параметры должны быть в рамках.BOB51 писал(а):Как в старо-добрых АВРках для внешнего кварца
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: ARV: мысли вслух
давайте вы не будете плавно подводить к мысли, что AVR - говно?
Я и не подвожу. Я об этом сразу сказал. Что это за RTC такой, осциллятор которого встаёт вместе с МК? RTC как раз-таки и нужен тогда, когда МК не может сам вести счёт, т.е. спит.
отслеживание тут элементарное: стоят часы - нет работает кварц
получается, прична найдена? Кварц под замену?
Re: ARV: мысли вслух
в симуляторе, например, в протеусе работает?
Re: ARV: мысли вслух
[uquote="ARV",url="/forum/viewtopic.php?p=4030795#p4030795"]то или другое состояние возникает в момент подачи питания случайно.[/uquote]
ARV, а синхронизацию таймеров использовали? Регистр GTCCR.
Я тут относительно недавно ШИМ на ATtiny45 использовал. Там пришлось как раз синхронизацию таймеров делать, иначе фрОнты сигналов разбегались по времени. Просто пока других мыслей нет. Общих регистров для таймеров у ATmega328P я не увидел. Значит вряд ли что-то случайно могло сбится.
А прерывания есть по этим таймерам? Может в обработчиках еще посмотреть?
ARV, а синхронизацию таймеров использовали? Регистр GTCCR.
Я тут относительно недавно ШИМ на ATtiny45 использовал. Там пришлось как раз синхронизацию таймеров делать, иначе фрОнты сигналов разбегались по времени. Просто пока других мыслей нет. Общих регистров для таймеров у ATmega328P я не увидел. Значит вряд ли что-то случайно могло сбится.
А прерывания есть по этим таймерам? Может в обработчиках еще посмотреть?
Re: ARV: мысли вслух
Регистр GTCCR отвечает за предделитель. Он здесь каким боком?
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: ARV: мысли вслух
да я просто поделился тем, какие чудеса бывают 
есть ведь и программа, в которой я мог напортачить. рано еще паниковать.
есть ведь и программа, в которой я мог напортачить. рано еще паниковать.
не нужна она, вроде. я использую только прерывания для счета времени, а прерывания сами по себе автоматом синхронизируются с тактовой частотой. регистры таймера на ходу не меняю (пока)serg_svd писал(а):а синхронизацию таймеров использовали?
да вроде работает, но очень медленно. первые 75 мс моделируются примерно 12 минут. так что сказать, что в протеусе работает с уверенностью я вряд ли смогу - больше терпения у меня не хватает. надо что-то упрощать...a_skr писал(а):в симуляторе, например, в протеусе работает?
не причина найдена, а есть рабочее предположение. поскольку я только в начале пути, ничего более конкретного не могу сказать.parovoZZ писал(а):Кварц под замену?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: ARV: мысли вслух
[uquote="parovoZZ",url="/forum/viewtopic.php?p=4030900#p4030900"]Регистр GTCCR отвечает за предделитель. Он здесь каким боком?[/uquote]
смотрите описане 7 и 1 бита
Writing the TSM bit to one activates the Timer/Counter Synchronization mode. In this mode, the value
that is written to the PSRASY and PSRSYNC bits is kept, hence keeping the corresponding prescaler
reset signals asserted. This ensures that the corresponding Timer/Counters are halted and can be
configured to the same value without the risk of one of them advancing during configuration. When the
TSM bit is written to zero, the PSRASY and PSRSYNC bits are cleared by hardware, and the Timer/
Counters start counting simultaneously.
Bit 1 – PSRASY: Prescaler Reset Timer/Counter2
When this bit is one, the Timer/Counter2 prescaler will be reset. This bit is normally cleared immediately
by hardware. If the bit is written when Timer/Counter2 is operating in asynchronous mode, the bit will
remain one until the prescaler has been reset. The bit will not be cleared by hardware if the TSM bit is
set.
Bit 0 – PSRSYNC: Prescaler Reset
When this bit is one, Timer/Counter1 and Timer/Counter0 prescaler will be Reset. This bit is normally
cleared immediately by hardware, except if the TSM bit is set. Note that Timer/Counter1 and Timer/
Counter0 share the same prescaler and a reset of this prescaler will affect both timers.
А вчем причина была?
смотрите описане 7 и 1 бита
Спойлер
Bit 7 – TSM: Timer/Counter Synchronization ModeWriting the TSM bit to one activates the Timer/Counter Synchronization mode. In this mode, the value
that is written to the PSRASY and PSRSYNC bits is kept, hence keeping the corresponding prescaler
reset signals asserted. This ensures that the corresponding Timer/Counters are halted and can be
configured to the same value without the risk of one of them advancing during configuration. When the
TSM bit is written to zero, the PSRASY and PSRSYNC bits are cleared by hardware, and the Timer/
Counters start counting simultaneously.
Bit 1 – PSRASY: Prescaler Reset Timer/Counter2
When this bit is one, the Timer/Counter2 prescaler will be reset. This bit is normally cleared immediately
by hardware. If the bit is written when Timer/Counter2 is operating in asynchronous mode, the bit will
remain one until the prescaler has been reset. The bit will not be cleared by hardware if the TSM bit is
set.
Bit 0 – PSRSYNC: Prescaler Reset
When this bit is one, Timer/Counter1 and Timer/Counter0 prescaler will be Reset. This bit is normally
cleared immediately by hardware, except if the TSM bit is set. Note that Timer/Counter1 and Timer/
Counter0 share the same prescaler and a reset of this prescaler will affect both timers.
ARV писал(а):не причина найдена
А вчем причина была?
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: ARV: мысли вслух
как разберусь - скажуserg_svd писал(а):А вчем причина была?
просто решил рассказать...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: ARV: мысли вслух
смотрите описане 7 и 1 бита
а что на него смотерть? Этот предделитель для таймеров T0/T1. У таймера Т2 свой предделитель со своим регистром.