делаю один небольшой проект, как обычно, на МК AVR. конкретно - atmega328p задействованы все таймеры, причем TMR2 - в асинхронном режиме от миниатюрного часового кварца (да, проект - часы). само собой, всего много хочу напихать, но сейчас речь не об этом. а о том, что происходят чудеса: если МК аппаратно генерирует ШИМ (TMR1), то значит, не работает TMR2. если запускается TMR2 - отсутствует генерация ШИМ. в коде прямой связи между таймерами вроде как нет... то, что TMR2 не каждый раз при подачи питания запускается, я пока отношу на несоответствие кварца требованиям Atmel (кто ж его знает, что там за кварц у меня - он диаметром 1 мм и длиной 4 - на нем нет ни одного символа!). но как один таймер влияет на другой - это загадка.
понятное дело, рано или поздно все выяснится, но пока весьма озадачен...
ситуацию осложняет тот факт, что конструктивно я все реализовал плотно и миниатюрно, и по собственной глупости не предусмотрел никаких контрольных точек-площадок, поэтому даже осциллографом ткнуть куда-то - проблема... мой пример - другим наука: при разработке печатной платы всегда думать о будущей наладке!
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Или еще один повод вспомнить о предварительной прогонке проекта на макете...
У 328й несколько версий (отличие в буковках) и в даташитах. Вчитываться пока не довелось - уж больно много страничек к распечатке (с экрана и непривычно и заметок оставить негде)... Возможно таки те отличия "повылазили"...
не все возможно прогнать на макетке по причине сложности схемы - макетка получается слишком дорогой. понадеялся на свой опыт, и прошляпил столько моментов... позже расскажу.
Добавлено after 6 minutes 46 seconds: Экономия, такая экономия...
такая плата была разработана, чтобы уложиться в "бесплатный" размер 100х100 мм JLCPCB
Как только ознакомился с MSP430FR, люто возненавидел древние AVR. Даже думать в их сторону не хочу. Хотя новые AVR 0-ой и 1-ой серии тоже не подарок, но между ними пропасть.
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
на вкус и цвет... бесконечная гонка за новинками меня утомила давно, думаю, что лично для меня спокойнее и полезнее будет использовать то, что вполне освоено и удовлетворяет запросам.
не стоит холиварить
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Добавлено after 1 minute 52 seconds: причина, кстати, пока не установлена, поэтому говорить, кто кого останавливает пока преждевременно. но связь налицо: если есть ШИМ - нет RTC и наоборот. и то или другое состояние возникает в момент подачи питания случайно.
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Так раз осциллятор запускается через раз, то при помехе на шине питания ему сам бог велел вставать. В AtMega328 разве нету регистра, отслеживающего работу осциллятора? Во всех нормальных МК он есть и именно по его "показаниям" принимается решение о переходе с RC осциллятора на кварц.
Как вариант... По аналогии со старыми "особенностями" - возможно есть дополнительное управление емкостями в режиме генерации где-то "в сторонке". Как в старо-добрых АВРках для внешнего кварца (там еще и размах сигнала менялся в зависимости от типа резонатора)...
В AtMega328 разве нету регистра, отслеживающего работу осциллятора?
давайте вы не будете плавно подводить к мысли, что AVR - говно? если по поводу сказанного мною у вас нет мнения, то нет смысла и говорить что-то...
часовой кварц работает с таймером сам по себе, на основное тактирование не влияет от слова вообще. основное тактирование независимо и работает. а вот RTC стартует через раз. и свои предположения я озвучил: схема RTC рассчитана на определенные комплексные сопротивления кварца, а какой кварц у меня - я понятия не имею. вполне вероятно, что то ли емкость кварца не та, то ли еще что - вот он и не всегда стартует. и отслеживание тут элементарное: стоят часы - нет работает кварц даже без особого регистра
BOB51 писал(а):
Как в старо-добрых АВРках для внешнего кварца
если я верно понял даташит, то "часовая" система atmega328p рассчитана на бесконденсаторное подключение кварца, но его параметры должны быть в рамках.
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
давайте вы не будете плавно подводить к мысли, что AVR - говно?
Я и не подвожу. Я об этом сразу сказал. Что это за RTC такой, осциллятор которого встаёт вместе с МК? RTC как раз-таки и нужен тогда, когда МК не может сам вести счёт, т.е. спит.
Цитата:
отслеживание тут элементарное: стоят часы - нет работает кварц
то или другое состояние возникает в момент подачи питания случайно.
ARV, а синхронизацию таймеров использовали? Регистр GTCCR. Я тут относительно недавно ШИМ на ATtiny45 использовал. Там пришлось как раз синхронизацию таймеров делать, иначе фрОнты сигналов разбегались по времени. Просто пока других мыслей нет. Общих регистров для таймеров у ATmega328P я не увидел. Значит вряд ли что-то случайно могло сбится. А прерывания есть по этим таймерам? Может в обработчиках еще посмотреть?
да я просто поделился тем, какие чудеса бывают есть ведь и программа, в которой я мог напортачить. рано еще паниковать.
serg_svd писал(а):
а синхронизацию таймеров использовали?
не нужна она, вроде. я использую только прерывания для счета времени, а прерывания сами по себе автоматом синхронизируются с тактовой частотой. регистры таймера на ходу не меняю (пока)
a_skr писал(а):
в симуляторе, например, в протеусе работает?
да вроде работает, но очень медленно. первые 75 мс моделируются примерно 12 минут. так что сказать, что в протеусе работает с уверенностью я вряд ли смогу - больше терпения у меня не хватает. надо что-то упрощать...
parovoZZ писал(а):
Кварц под замену?
не причина найдена, а есть рабочее предположение. поскольку я только в начале пути, ничего более конкретного не могу сказать.
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Регистр 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.
Сейчас этот форум просматривают: Morroc и гости: 71
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения