Обсуждаем контроллеры компании Atmel.
Ответить

Выходит из строя ATMEGA32A (644PA) странным образом

Пн ноя 13, 2023 12:20:18

Приветствую форумчан
РАзработал прототип устройства на ATMEGA32A (ATMEGA644PA) + MCP2515 + TJA1050. Плюс у платы на борту MAX3082.. По сути дисплей с динамической индикацией и кнопками управляемый либо через RS485 либо по шине CAN. Для этого сваял схему Можно ознакомиться во вложении. Все стандартно по даташитам никаких особенностей.
Для того чтобы можно было переключаться с RS485 на CAN сделал перемычки при помощи нулевых резисторов. Т.е. выходные защитные цепи (супрессоры в основном) общие и для CAN и для RS485 в остальном никаких особенностей.
Однако столкнулся с необъяснимой странностью и причину найти не могу

Если я для выхода использую RS485 схема работает превосходно, сутками гоняю пакеты и все чудесно. Контроллер не выходит из строя, динамическая индикация индицирует.
Но!!! если я переключаюсь на CAN и при этом даже в обход выходных цепей (спаиваю перемычки нулевиков и подключаюсь к CAN напрямую от шины к микросхеме TJA1050) через очень короткое время контроллер выходит из строя.
Вобщем чтобы не запутать пропущу историю поиска проблемы и перейду сразу к сути
Выходят из строя цепи тактирования контроллера. При этом через шину JTAG он отзывается, шьется, читается. Но,, от внешнего кварца работает секунду, вырубается и ресетится, и так по кругу. Потом совсем перестает работать. Если его переключить на внутренний источник тактирования - такая же фигня. Сначала работает нормально, потом через небольшой промежуток и от внутреннего тактирования ведет себя также как и от внешнего.

и при этом продолжает отзываться по JTAG прошиваться и читаться.
Сжег уже 2, до причин не докопался.
Причем я на устройстве поменял контроллер, включил его по RS485 при этом все остальные микросхемы на своих местах. Работает уж третьи сутки и все с ним нормально.

Забыл добавить что устройство было сделано давно на rS485 и успешно прошло тестирование, а потом понадобилось добавить CAN. CAN я добавил на mc2515. Повторюсь, схема по даташиту, даже сверят ее с шилдом ардуиновским cp2515_CAN, никаких особенностей. Ну разве микросхему MCP2515 взял в корпусе TSSOP и кварцы миниатюрные DSX321G и еще из особенностей MCP2515 стоит на одном конце платы (поближе к контроллеру), а TJA1050 на другом конце (поближе к выходным цепям).
Возле всех микросхем керамика по 0,1

Для информации: для питания используется DC-DC LM2576-5.0. Ну и ввиду особенностей этого преобразователя у меня на плате верхний слой медная область это +5В питания, нижний слой медная область это Земля.
В остальном никаких особенностей нету
Помогите разобраться
Вложения
Schematiс.pdf
Схема устройства
(160.94 KiB) Скачиваний: 69

Re: Выходит из строя ATMEGA32A (644PA) странным образом

Пн ноя 13, 2023 12:44:53

RomeoVar писал(а):для питания используется DC-DC LM2576-5.0

Уже попадалось информация, что сгорает проц(если не ошибаюсь тоже атмега), при питании от этой мс.
По идеи она должна быть постоянно нагружена, чтобы напряжение не выходило за предел стабилизации.
Это просто проверить, запитайте от линейного стабилизатора.

Re: Выходит из строя ATMEGA32A (644PA) странным образом

Пн ноя 13, 2023 12:58:17

Возможно это был мой пост. Я ж говорю - с ней тоже помучился. Сейчас уже 25 устройств на этом DC-DC работает без проблем. Этот момент исключаю. Причем там у меня горело просто все и насмерть, а здесь все ОК только цепи тактирования контроллера мрут

Re: Выходит из строя ATMEGA32A (644PA) странным образом

Пн ноя 13, 2023 13:36:57

поддерживаю идею про превышение питания, иначе как ещё барабашка туда пролез бы не испортив те лапки, по которым пришел?
попробуй стабилитрон добавить на питание МК

Re: Выходит из строя ATMEGA32A (644PA) странным образом

Пн ноя 13, 2023 13:46:59

Если потребление позволяет, поставь временно обычный 7805 и фильтр к нему входной, дроссель там резистор. Понятно что в машине кан пользуешь

Re: Выходит из строя ATMEGA32A (644PA) странным образом

Пн ноя 13, 2023 14:21:28

поддерживаю идею про превышение питания, иначе как ещё барабашка туда пролез бы не испортив те лапки, по которым пришел?
попробуй стабилитрон добавить на питание МК

если глянешь на схему там не то что стаб там стоит 2 защитных супрессора. Плюсом я повторюсь - если не использовать CAN (но при этом на плате остаются распаяными MCP2515 и TJA1050) то ничего нигде не горит. RS485 работает нормально, при его использовании тоже ничего не горит.
Но когда переключаешься на CAN то тоже все остается целым, только спустя какое-то время, как бы это объяснить, перестает работать контроллер. Но не потому что он сгорел, а потому что нет тактирования. ну или происходит срыв. если он у меня подключен к последовательному порту то я вижу как он инициализируется и сбрасывается и так по кругу.
Берешь, переключаешь внутренний осциллятор - работоспособность восстанавливается на какое-то время, а потом и этот канал тактирования дохнет.

Пока писал у меня возникла мысль:
получается я свое устройство запитываю от Лабораторника, через преобразователь RS485 подключаю к компу, а через преобразователь CAN (TJA1050) я его подключаю к ECAN (девайс ETHERNET 2 CAN) который запитан от другого источника питания. Может на этом источнике гальваническая развязка плохая и он через CAN мне прошибает контроллер. Но прямой связи между контроллером и CAN нету. Связь через MCP2515 и ни она ни CAN не выходят из строя

Re: Выходит из строя ATMEGA32A (644PA) странным образом

Пн ноя 13, 2023 14:41:05

Что подразумеваете под "выходит из строя"? Не работает по вашей программе или не работает вообще?
Записать другую программу: моргать LED под внутренний генератор, под внешний кварц, с 5V от простого сетевого источника, blink на все выходы??

Re: Выходит из строя ATMEGA32A (644PA) странным образом

Пн ноя 13, 2023 14:55:47

Что подразумеваете под "выходит из строя"? Не работает по вашей программе или не работает вообще?
Записать другую программу: моргать LED под внутренний генератор, под внешний кварц, с 5V от простого сетевого источника, blink на все выходы??

По порядку как я дошел что проблема с тактированием. Схема тактировалась внешним кварцем на 14,7456 Мгц:
1. Во первых у меня динамическая индикация табло. я вижу что происходит срыв ДИ. как будто контроллер циклически ресетится
2. Это подтвердилось поведением на ком порту. Я вижу что он все-время начинает слать кусок первой строки. То есть сто пудово ресетится
3. я подумал что у меня проблема с физическим ресетом (я там через RC На +5В подтянул RESET). Я его отключил. я убрал керамический кондер. Ничего не поменялось.
4. я подключился JTAG-ом он отвечает, прошивку проверил - не битая.

В итоге я решил что проблема в кварце. Поменял кварц - не помогло.
Я плюнул и переключил на тактирование внутренним генератором 8Мгц

Все заработало.
Поработало пол-часа и опять проблема повторилась
Только теперь уже он ни от внутреннего ни от внешнего кварца нормально не тактируется

Вобщем я точно знаю что вышли из строя цепи тактирования. Вобщем я сижу -офигеваю и не понимаю как так получается


Выключил, он у меня полежал какое-то время. Включил - 3 минуты поработал и опять.

К прошивке нет претензий - она уж год работает без сбоев

Re: Выходит из строя ATMEGA32A (644PA) странным образом

Пн ноя 13, 2023 15:00:39

Пробуйте от сложного к простому, blink на один пин, blink на все пины, с внутренним генератором, с кварцем на плате, с другим кварцем и т.д. абстрагируясь от всех связанных устройств и с четко работающим блоком питания. Т.е. Цель: выяснить, цела/повреждена аппаратная часть МК.
Последний раз редактировалось veso74 Пн ноя 13, 2023 15:24:05, всего редактировалось 3 раз(а).

Re: Выходит из строя ATMEGA32A (644PA) странным образом

Пн ноя 13, 2023 15:01:18

Ну вот, теперь второй источник питания вырисовался. На пятой странице еще чонить

Re: Выходит из строя ATMEGA32A (644PA) странным образом

Пн ноя 13, 2023 15:13:40

Пробуйте от сложного к простому, blink на один пин, blink на все пины, с внутренним генератором, с кварцем на плате, с другим кварцем и т.д. абстрагируясь от всех связанных устройств и с четко работающим блоком питания. Т.е. Цель: выяснить, цела/повреждена аппаратная часть МК. На это занятие вероятно понадобится 3..10 минут. В противном случае возможные причины проблемы могут быть бесконечными. Частично работающего МК я не видел. Если мигает, значит, все (регистры, память, выходы ...)работает.

Зачем мне один блинк если у меня целый дисплей работает без проблем, от кварца, от внутреннего генератора, день, месяц и даже год. Не горит не ресетится, словом, не происходит ничего нестандартного. Но при одном условии - у меня не подключена шина CAN. Точка!!!
Как только я переключаю устройство на CAN интерфейс (физически, а не программно) программа остается той-же. У меня через какое-то время "портится" (я не могу утверждать что оно горит, я не знаю что там происходит внутри) тактирование контроллера. Точка!!!

При этом контроллер при подключение через средства программирования (JTAG, SPI) отзывается как абсолютно рабочий.

Но ни одна прошивка (блинк, не блинк, сериал, не сериал) не работает. Причина - внутри контроллера импульсы тактирования не доходят до (MCU CONTROL & TIMING). То есть он бы с высокой долей вероятности работал если бы получал тактовые импульсы

Добавлено after 1 minute 36 seconds:
Ну вот, теперь второй источник питания вырисовался. На пятой странице еще чонить

Ну так CAN шина. Как вы себе представляете распределенную систему содним источником питания на всё?
Последний раз редактировалось RomeoVar Пн ноя 13, 2023 15:19:04, всего редактировалось 1 раз.

Re: Выходит из строя ATMEGA32A (644PA) странным образом

Пн ноя 13, 2023 16:12:03

Сделайте замер тока потребления нормального и проблемного проца.

Re: Выходит из строя ATMEGA32A (644PA) странным образом

Пн ноя 13, 2023 16:37:47

Собака включена? Посмотрите при загрузке MCUCSR.

Re: Выходит из строя ATMEGA32A (644PA) странным образом

Вт ноя 14, 2023 08:38:42

Сделайте замер тока потребления нормального и проблемного проца.

Замеры показали что у неработающего контроллера потребление 9,6мА, а у рабочего 10,1-10,2 при прочих равных условиях (фьюзы, прошивка, тактирование от внутреннего осциллятора)
Единственный нюанс что замеры я проводил через панельку-переходник TQFP->DIP, в плате это не получилось бы. Соответственно питание +5 и GND было подано только на 2 ноги. В схеме это сделать было бы нереально. Суммарное потребление тока схемой порядка 0,3-0,4А. Соответственно 10мА в схеме на уровне статистической погрешности

Добавлено after 8 minutes 23 seconds:
Собака включена? Посмотрите при загрузке MCUCSR.

А фьюзами на этой меге собака не включается
Ну в неработающем проце я никак не посмотрю, а в работающем чего смотреть - он и так работает

Добавлено after 5 minutes 47 seconds:
Пока решил попробовать еще один проц. Снова впаял в схему, прошил и подключил к CAN-шине и к RS485 -> USB . Только на этот раз включил через гальваническую развязку USB ADUM3160 (https://aliexpress.ru/item/100500136908 ... 9660837645)
Посмотрю перестанет ли помирать проц при таком использовании.

Re: Выходит из строя ATMEGA32A (644PA) странным образом

Вт ноя 14, 2023 09:01:55

Имхо перестанет

Re: Выходит из строя ATMEGA32A (644PA) странным образом

Вт ноя 14, 2023 09:13:29

Имхо перестанет

Но тема "сисек" останется не раскрытой.

Re: Выходит из строя ATMEGA32A (644PA) странным образом

Вт ноя 14, 2023 09:36:28

RomeoVar писал(а):от внешнего кварца работает секунду, вырубается и ресетится

RomeoVar писал(а): в неработающем проце я никак не посмотрю


Так контроллер окончательно дохнет или как? Вот после перезагрузки и надо смотреть. Выведите прямо на семисегментник вместо одного из разрядов.
RomeoVar писал(а):а в работающем чего смотреть

Причину сброса. Ядро АВР полностью статическое. Сбой тактирования означает лишь сбой тактирования, но не перезагрузку. Другое дело, что сбрасывать как раз могла собака, но раз не используется, то и не используется.

Re: Выходит из строя ATMEGA32A (644PA) странным образом

Вт ноя 14, 2023 10:02:12

Кст например в 2313 штатный бодлевел нифига толком не работает. При сбоях память портилась где настройки. Ставил цепочку сброса с плюса питания светодиод и резистор, тогда норм стало. Ктото писал что мега8 так сбоила, взял решение оттуда

Re: Выходит из строя ATMEGA32A (644PA) странным образом

Вт ноя 14, 2023 10:04:30

Так контроллер окончательно дохнет или как? Вот после перезагрузки и надо смотреть. Выведите прямо на семисегментник вместо одного из разрядов.


Он дохнет, только очень странно. В том и проблема.
У меня плохо с "эпистолярным жанром"
Контроллер перестает выполнять загруженный в него код, наверное такое определение будет самым точным.
В остальном он ведет себя как абсолютно рабочий контроллер, отвечает программатору, прошивается, стирается, меняет фьюзы. Делает все как рабочий контроллер. Но (повторюсь) никакой код не выполняет от слова совсем!
Почему я утверждаю что он его не выполняет именно по причине проблем с "System Clock"?
Потому-что когда у меня впервые проявилась эта проблема, я долго плясал с бубном, проверял код, делал всякие вставки в код и прочее. Не помогало ничего ну совсем. Он мог случайно включиться, начать выполнять код, отправить пару сообщений в последовательный порт и потом опять начинал заикаться, переотправлять начала сообщений, а потом вообще помирал.
И в конце, когда я устал от плясок, мне в голову пришла мысль, если проблема с внешним кварцем, что будет если я его переведу на внутрениий?
Перевел - все сразу заработало!!! Понимаете?!! от внешнего кварца контроллер перестал работать, а от внутреннего отлично работал. Я несколько раз проверил, переключал туда/сюда. От внешнего кварца не работает, а от внутреннего - работает.
Я поменял кварц - не помогло.
Так он у меня работал от внутреннего генератора.. я его опять подключил к CAN. и после этого он опять немного поработал и "исдох"
И после этого он уже не выполняет код ни от внешнего кварца ни от внутреннего осциллятора.

По потреблению тока он тоже проявляет себя прям как полностью рабочий контроллер. Потребление отличается на 0,4 милиампера
И потребляет даже меньший ток чем рабочий. Но это я думаю и связано как раз с тем что он не тактируется и никаких операций не выполняет.

Но я для себя рисую картину так:
ТАктовые импульсы в микроконтроллере подаются на блоки SPI и UART то есть UART имеет таки связь с SPI через блок тактироания. Казалось бы а причем тут CAN? ведь CAN преобразователь подключен к MCP2515, а не к контроллеру, НО!!! В MCP2515 есть свой кварц, который тактирует SPI на MCP и тактирует TX|RX на TJA1050 (преобразователе CAN) соответственно интерфейс CAN связан через тактирование SPI с блоком тактирования микроконтроллера. Соответственно я предполагаю что по CAN шине "гуляют" какие-то потенциалы/импульсные помехи еще какая нить дрянь, от которой у CAN микросхемы есть "противоядие", но эти помехи через блоки тактирования долетают до контроллера и видимо у него это самая слабая часть, которую они успешно "убивают"

Вот к такому заключению я прихожу. Другого более-менее внятного объяснения я пока найти не могу.
Также я не могу придумать как от этого защитить контроллер?

Re: Выходит из строя ATMEGA32A (644PA) странным образом

Вт ноя 14, 2023 10:20:51

остаётся попробовать включить в меге внешнее тактирование и замутить внешний генератор.

Ещё бы на разводку кварца глянуть бы...

Добавлено after 1 minute 23 seconds:
И после этого он уже не выполняет код ни от внешнего кварца ни от внутреннего осциллятора.
Но при этом продолжает прошиваться...?
Ответить