USART в PIC16 перестает работать через некоторое время

Поклонники продукции Microchip Technology Inc тусуются тут.
Ответить
Родился
Сообщения: 6
Зарегистрирован: Пт май 18, 2018 07:27:47

Сообщение Rovi »

Господа, доброго времени суток.
Два контроллера PIC16 общаются по USART через LIN-микросхемы TPIC1021.
Через некоторое время (минут 10-15) контроллер №2 перестаёт отвечать на запросы контроллера №1, хотя все остальные функции контроллера №2 работают. На ножку контроллера №2 приходит сигнал-кодовое слово, а тот не отвечает, хотя должен отвечать по прерыванию.
Перезапустил контроллер №2- всё работает снова.
Может есть какая-то встроенная защита порта С по току/напряжению? Просто условия для функционирования контроллеров промышленные. Везде наводятся помехи с силовых линий, может срабатывает какая-то внутренняя защита порта?
Везде наставили конденсаторов, исказили фронты в байтах USART до безобразия, помех на ножке микроконтроллера уже не наблюдается, но периодически такая проблема возникает. До установки конденсаторов приёмопередатчик зависал через 3-4 минуты.
Контроллер №1 PIC16f690 кварц 20, контроллер №2 PIC16f874A кварц 4.
Может поможет программный перезапуск USART?
Реклама
Вымогатель припоя
Аватара пользователя
Сообщения: 550
Зарегистрирован: Вс июл 07, 2019 16:12:46

Сообщение ЭлектроKOT »

Увеличение времени нормальной работы с 3-4 до 10-15 минут наводит на мысль, что вы двигаетесь в правильном направлении.
Но одни только конденсаторы не панацея. Стоит использовать и другие средства: экранирование, витую пару, разведение силовых и сигнальных цепей на максимальное расстояние и т.д.
Делай то, что тебе нравится и ты никогда не будешь работать
Реклама
Родился
Сообщения: 6
Зарегистрирован: Пт май 18, 2018 07:27:47

Сообщение Rovi »

Кабеля экранированы, да. Наводка через общий нуль приходит, чтоли.
Больше хотелось понять механику работы контроллера, есть ли там аппаратные защиты и можно ли их сбросить?
Хотя защита не просто же так срабатывает, так долго не посбрасываешь.
Вымогатель припоя
Аватара пользователя
Сообщения: 550
Зарегистрирован: Вс июл 07, 2019 16:12:46

Сообщение ЭлектроKOT »

[uquote="Rovi",url="/forum/viewtopic.php?p=3691156#p3691156"]может срабатывает какая-то внутренняя защита порта?[/uquote]Ни разу о таком не слышал. По крайней мере, для PIC.
[uquote="Rovi",url="/forum/viewtopic.php?p=3691156#p3691156"]Везде наставили конденсаторов, исказили фронты в байтах USART до безобразия[/uquote]А это уже другая крайность, перебор.
Я бы понаблюдал осликом некоторое время на линиях USART, питания и других, что там на самом деле происходит.
А уже потом делал какие-нибудь выводы...

Есть еще вот такой букварь на эту тему:
Хабигер Э. "Электромагнитная совместимость. Основы ее обеспечения в технике" 1995г.
Думаю, как минимум стр. 88 - 106 оттуда вам стоит посмотреть.
Последний раз редактировалось ЭлектроKOT Чт авг 29, 2019 16:44:22, всего редактировалось 1 раз.
Делай то, что тебе нравится и ты никогда не будешь работать
Реклама
Эиком - электронные компоненты и радиодетали
Родился
Сообщения: 6
Зарегистрирован: Пт май 18, 2018 07:27:47

Сообщение Rovi »

Да мы уж два дня наблюдаем)
А может быть какой-то рассинхрон контроллеров? Кварцы и контроллеры разные.
Реклама
Вымогатель припоя
Аватара пользователя
Сообщения: 550
Зарегистрирован: Вс июл 07, 2019 16:12:46

Сообщение ЭлектроKOT »

И все чисто? Невероятно. Сколько все это нормально отработало до появления проблем?
Делай то, что тебе нравится и ты никогда не будешь работать
Реклама
Опытный кот
Сообщения: 844
Зарегистрирован: Пн апр 11, 2011 10:08:52

Сообщение -=Vovka=- »

Опторазвязка между МК есть?
Родился
Сообщения: 6
Зарегистрирован: Пт май 18, 2018 07:27:47

Сообщение Rovi »

[uquote="ЭлектроKOT",url="/forum/viewtopic.php?p=3691177#p3691177"]И все чисто? Невероятно. Сколько все это нормально отработало до появления проблем?[/uquote]
Нормально это не работало, проблемы сразу появились.
-=Vovka=- писал(а):Опторазвязка между МК есть?
Опторазвязка между МК невозможна, TPIC1021 работает если 5В контроллера и 12В канала объединены общей землёй, то есть питание обоих контроллеров завязано общим нулём через канал приёмопередачи 12В
Вымогатель припоя
Аватара пользователя
Сообщения: 550
Зарегистрирован: Вс июл 07, 2019 16:12:46

Сообщение ЭлектроKOT »

[uquote="Rovi",url="/forum/viewtopic.php?p=3691430#p3691430"][uquote="ЭлектроKOT",url="/forum/viewtopic.php?p=3691177#p3691177"]Сколько все это нормально отработало до появления проблем?[/uquote]
Нормально это не работало, проблемы сразу появились.[/uquote]
Хм, в таком случае хорошо бы посмотреть на схему и ее воплощение в железе...
Делай то, что тебе нравится и ты никогда не будешь работать
Опытный кот
Сообщения: 844
Зарегистрирован: Пн апр 11, 2011 10:08:52

Сообщение -=Vovka=- »

[uquote="Rovi",url="/forum/viewtopic.php?p=3691430#p3691430"]питание обоих контроллеров завязано общим нулём через канал приёмопередачи 12В[/uquote]
Сомневаюсь, что никак нельзя развязать. Схему покажите
Опытный кот
Аватара пользователя
Сообщения: 781
Зарегистрирован: Сб июн 01, 2013 22:24:21
Откуда: ПФО

Сообщение alex_ »

А может использовать микросхемы USART<->422, и передавать данные по диф паре, за счёт этого я полагаю многие помехи наведённые в проводах уже не будут иметь такого влияния.
И второе а есть уверенность что второй контроллер после 15 минут попросту не виснет по какой либо причине: нестабильность питания или висяк в коде, вочдог включён?
Родился
Сообщения: 6
Зарегистрирован: Пт май 18, 2018 07:27:47

Сообщение Rovi »

[uquote="-=Vovka=-",url="/forum/viewtopic.php?p=3691437#p3691437"][uquote="Rovi",url="/forum/viewtopic.php?p=3691430#p3691430"]питание обоих контроллеров завязано общим нулём через канал приёмопередачи 12В[/uquote]
Сомневаюсь, что никак нельзя развязать. Схему покажите[/uquote]
1 схема - Контроллер №2, который виснет. транзисторы нужны, чтобы переключать канал на три разных контроллера, без введения адресации. По мануалу TPIC нужно землю 5В и 12В объединять. Попробую впаять вместо транзисторов оптопары сейчас.
2 схема - Контроллер №1, который работает. на 1 схеме это "LIN консоль". Вся плата №1 питается от 12VL со 2 платы.

Если кому интересно - программный перезапуск USART решает проблему, всё снова пашет. Даже без перезапуска контроллера. При чём при ошибке отпадает даже не весь PORTC, а только USART.

Добавлено after 1 minute 37 seconds:
[uquote="alex_",url="/forum/viewtopic.php?p=3691438#p3691438"]А может использовать микросхемы USART<->422, и передавать данные по диф паре, за счёт этого я полагаю многие помехи наведённые в проводах уже не будут иметь такого влияния.
И второе а есть уверенность что второй контроллер после 15 минут попросту не виснет по какой либо причине: нестабильность питания или висяк в коде, вочдог включён?[/uquote]
Спасибо за совет, в следующих проектах я подумаю над этим. В этом проекте сроки поджимают уже.
Контроллер не виснет, все остальные функции, кроме USART пашут. Собаки не имею.
Вложения
2.JPG
2 схема
(44.89 КБ) 403 скачивания
1.JPG
1 схема
(60.88 КБ) 397 скачиваний
Опытный кот
Аватара пользователя
Сообщения: 781
Зарегистрирован: Сб июн 01, 2013 22:24:21
Откуда: ПФО

Сообщение alex_ »

[uquote="Rovi",url="/forum/viewtopic.php?p=3691520#p3691520"]Спасибо за совет, в следующих проектах я подумаю над этим.[/uquote]
Если уж на то пошло, идите в сторону 485 там и диф пара и всего 2 провода на приём и передачу и устройств можно кучу понавешать на эту шину, минус только один: нужно программно разруливать общение между устройствами.
Вымогатель припоя
Аватара пользователя
Сообщения: 550
Зарегистрирован: Вс июл 07, 2019 16:12:46

Сообщение ЭлектроKOT »

[uquote="Rovi",url="/forum/viewtopic.php?p=3691520#p3691520"]1 схема
2 схема[/uquote][uquote="ЭлектроKOT",url="/forum/viewtopic.php?p=3691433#p3691433"]посмотреть на схему и ее воплощение в железе...[/uquote]
И еще: длина линии связи между МК? Что она из себя представляет (как выполнена)?
Делай то, что тебе нравится и ты никогда не будешь работать
Друг Кота
Аватара пользователя
Сообщения: 25599
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

Зависание УАРТа - это отсутствие в коде контроля за переполнением буфера OERR. Контроль должен быть сделан в суперлупе. Взведение оного бита в регистре RCSTA требует выключения-включения модуля УАРТ. Сбросить бит иначе не выйдет.
Ответить

Вернуться в «PIC»