Флейм в чистом виде - все что угодно...
Но - в рамках закона :)
Ответить

ARV: мысли вслух

Чт май 13, 2021 09:34:30

чудны дела твои, Господи!

делаю один небольшой проект, как обычно, на МК AVR. конкретно - atmega328p
задействованы все таймеры, причем TMR2 - в асинхронном режиме от миниатюрного часового кварца (да, проект - часы). само собой, всего много хочу напихать, но сейчас речь не об этом. а о том, что происходят чудеса: если МК аппаратно генерирует ШИМ (TMR1), то значит, не работает TMR2. если запускается TMR2 - отсутствует генерация ШИМ. в коде прямой связи между таймерами вроде как нет... то, что TMR2 не каждый раз при подачи питания запускается, я пока отношу на несоответствие кварца требованиям Atmel (кто ж его знает, что там за кварц у меня - он диаметром 1 мм и длиной 4 - на нем нет ни одного символа!). но как один таймер влияет на другой - это загадка.

понятное дело, рано или поздно все выяснится, но пока весьма озадачен...

ситуацию осложняет тот факт, что конструктивно я все реализовал плотно и миниатюрно, и по собственной глупости не предусмотрел никаких контрольных точек-площадок, поэтому даже осциллографом ткнуть куда-то - проблема... мой пример - другим наука: при разработке печатной платы всегда думать о будущей наладке!

Re: ARV: мысли вслух

Чт май 13, 2021 10:19:18

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

Re: ARV: мысли вслух

Чт май 13, 2021 10:29:40

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

Добавлено after 6 minutes 46 seconds:
Экономия, такая экономия...
Изображение
такая плата была разработана, чтобы уложиться в "бесплатный" размер 100х100 мм JLCPCB

и вот такое должно получиться (и получилось):
Изображение

но пока не заработало :)
Вложения
IMG_20210409_184823_resize_85.jpg
(87.66 KiB) Скачиваний: 398
IMG_20210409_184152_resize_40.jpg
(93.47 KiB) Скачиваний: 384
Последний раз редактировалось ARV Чт май 13, 2021 10:32:34, всего редактировалось 1 раз.

Re: ARV: мысли вслух

Чт май 13, 2021 10:32:22

Как только ознакомился с MSP430FR, люто возненавидел древние AVR. Даже думать в их сторону не хочу. Хотя новые AVR 0-ой и 1-ой серии тоже не подарок, но между ними пропасть.

Re: ARV: мысли вслух

Чт май 13, 2021 10:35:16

parovoZZ писал(а):люто возненавидел древние AVR
на вкус и цвет... бесконечная гонка за новинками меня утомила давно, думаю, что лично для меня спокойнее и полезнее будет использовать то, что вполне освоено и удовлетворяет запросам.

не стоит холиварить

Re: ARV: мысли вслух

Чт май 13, 2021 11:29:17

Плохо освоено-то. Раз ШИМ останавливает осцилляцию соседнего таймера...

Re: ARV: мысли вслух

Чт май 13, 2021 11:39:32

можно подумать, у вас ошибок не бывает.

Добавлено after 1 minute 52 seconds:
причина, кстати, пока не установлена, поэтому говорить, кто кого останавливает пока преждевременно. но связь налицо: если есть ШИМ - нет RTC и наоборот. и то или другое состояние возникает в момент подачи питания случайно.

Re: ARV: мысли вслух

Чт май 13, 2021 12:05:09

Я б на отдельном железке только проблемный узел прогнал.
А уж затем к схемке вернулся....
:roll:

Re: ARV: мысли вслух

Чт май 13, 2021 12:14:02

так я проблемным считал узел повышающего преобразователя, и отдельно его прогнал. а оно вон как вышло...

Re: ARV: мысли вслух

Чт май 13, 2021 12:24:55

Так раз осциллятор запускается через раз, то при помехе на шине питания ему сам бог велел вставать. В AtMega328 разве нету регистра, отслеживающего работу осциллятора? Во всех нормальных МК он есть и именно по его "показаниям" принимается решение о переходе с RC осциллятора на кварц.

Re: ARV: мысли вслух

Чт май 13, 2021 12:48:08

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

Re: ARV: мысли вслух

Чт май 13, 2021 13:31:10

parovoZZ писал(а):В AtMega328 разве нету регистра, отслеживающего работу осциллятора?
давайте вы не будете плавно подводить к мысли, что AVR - говно? если по поводу сказанного мною у вас нет мнения, то нет смысла и говорить что-то...

часовой кварц работает с таймером сам по себе, на основное тактирование не влияет от слова вообще. основное тактирование независимо и работает. а вот RTC стартует через раз. и свои предположения я озвучил: схема RTC рассчитана на определенные комплексные сопротивления кварца, а какой кварц у меня - я понятия не имею. вполне вероятно, что то ли емкость кварца не та, то ли еще что - вот он и не всегда стартует. и отслеживание тут элементарное: стоят часы - нет работает кварц :) даже без особого регистра

BOB51 писал(а):Как в старо-добрых АВРках для внешнего кварца
если я верно понял даташит, то "часовая" система atmega328p рассчитана на бесконденсаторное подключение кварца, но его параметры должны быть в рамках.

Re: ARV: мысли вслух

Чт май 13, 2021 14:10:53

давайте вы не будете плавно подводить к мысли, что AVR - говно?

Я и не подвожу. Я об этом сразу сказал. Что это за RTC такой, осциллятор которого встаёт вместе с МК? RTC как раз-таки и нужен тогда, когда МК не может сам вести счёт, т.е. спит.

отслеживание тут элементарное: стоят часы - нет работает кварц

получается, прична найдена? Кварц под замену?

Re: ARV: мысли вслух

Чт май 13, 2021 14:51:15

в симуляторе, например, в протеусе работает?

Re: ARV: мысли вслух

Чт май 13, 2021 15:08:52

то или другое состояние возникает в момент подачи питания случайно.

ARV, а синхронизацию таймеров использовали? Регистр GTCCR.
Я тут относительно недавно ШИМ на ATtiny45 использовал. Там пришлось как раз синхронизацию таймеров делать, иначе фрОнты сигналов разбегались по времени. Просто пока других мыслей нет. Общих регистров для таймеров у ATmega328P я не увидел. Значит вряд ли что-то случайно могло сбится.
А прерывания есть по этим таймерам? Может в обработчиках еще посмотреть?

Re: ARV: мысли вслух

Чт май 13, 2021 15:28:58

Регистр GTCCR отвечает за предделитель. Он здесь каким боком?

Re: ARV: мысли вслух

Чт май 13, 2021 16:33:52

да я просто поделился тем, какие чудеса бывают :)
есть ведь и программа, в которой я мог напортачить. рано еще паниковать.
serg_svd писал(а):а синхронизацию таймеров использовали?
не нужна она, вроде. я использую только прерывания для счета времени, а прерывания сами по себе автоматом синхронизируются с тактовой частотой. регистры таймера на ходу не меняю (пока)
a_skr писал(а):в симуляторе, например, в протеусе работает?
да вроде работает, но очень медленно. первые 75 мс моделируются примерно 12 минут. так что сказать, что в протеусе работает с уверенностью я вряд ли смогу - больше терпения у меня не хватает. надо что-то упрощать...
parovoZZ писал(а):Кварц под замену?
не причина найдена, а есть рабочее предположение. поскольку я только в начале пути, ничего более конкретного не могу сказать.

Re: ARV: мысли вслух

Чт май 13, 2021 16:37:07

Регистр GTCCR отвечает за предделитель. Он здесь каким боком?

смотрите описане 7 и 1 бита
СпойлерBit 7 – TSM: Timer/Counter Synchronization Mode
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.


ARV писал(а):не причина найдена

А вчем причина была?

Re: ARV: мысли вслух

Чт май 13, 2021 16:41:37

serg_svd писал(а):А вчем причина была?
как разберусь - скажу :)) я ж пока в процессе

просто решил рассказать...

Re: ARV: мысли вслух

Чт май 13, 2021 17:41:58

смотрите описане 7 и 1 бита

а что на него смотерть? Этот предделитель для таймеров T0/T1. У таймера Т2 свой предделитель со своим регистром.
Ответить