Например TDA7294

Форум РадиоКот • Просмотр темы - USART в PIC16 перестает работать через некоторое время
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Сб янв 03, 2026 01:11:21

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 15 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: USART в PIC16 перестает работать через некоторое время
СообщениеДобавлено: Чт авг 29, 2019 15:52:11 
Родился

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: USART в PIC16 перестает работать через некоторое время
СообщениеДобавлено: Чт авг 29, 2019 16:04:20 
Вымогатель припоя
Аватар пользователя

Карма: 5
Рейтинг сообщений: 145
Зарегистрирован: Вс июл 07, 2019 16:12:46
Сообщений: 550
Рейтинг сообщения: 0
Увеличение времени нормальной работы с 3-4 до 10-15 минут наводит на мысль, что вы двигаетесь в правильном направлении.
Но одни только конденсаторы не панацея. Стоит использовать и другие средства: экранирование, витую пару, разведение силовых и сигнальных цепей на максимальное расстояние и т.д.

_________________
Делай то, что тебе нравится и ты никогда не будешь работать


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: USART в PIC16 перестает работать через некоторое время
СообщениеДобавлено: Чт авг 29, 2019 16:13:04 
Родился

Зарегистрирован: Пт май 18, 2018 07:27:47
Сообщений: 6
Рейтинг сообщения: 0
Кабеля экранированы, да. Наводка через общий нуль приходит, чтоли.
Больше хотелось понять механику работы контроллера, есть ли там аппаратные защиты и можно ли их сбросить?
Хотя защита не просто же так срабатывает, так долго не посбрасываешь.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: USART в PIC16 перестает работать через некоторое время
СообщениеДобавлено: Чт авг 29, 2019 16:25:02 
Вымогатель припоя
Аватар пользователя

Карма: 5
Рейтинг сообщений: 145
Зарегистрирован: Вс июл 07, 2019 16:12:46
Сообщений: 550
Рейтинг сообщения: 0
может срабатывает какая-то внутренняя защита порта?
Ни разу о таком не слышал. По крайней мере, для PIC.
Везде наставили конденсаторов, исказили фронты в байтах USART до безобразия
А это уже другая крайность, перебор.
Я бы понаблюдал осликом некоторое время на линиях USART, питания и других, что там на самом деле происходит.
А уже потом делал какие-нибудь выводы...

Есть еще вот такой букварь на эту тему:
Хабигер Э. "Электромагнитная совместимость. Основы ее обеспечения в технике" 1995г.
Думаю, как минимум стр. 88 - 106 оттуда вам стоит посмотреть.

_________________
Делай то, что тебе нравится и ты никогда не будешь работать


Последний раз редактировалось ЭлектроKOT Чт авг 29, 2019 16:44:22, всего редактировалось 1 раз.

Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: USART в PIC16 перестает работать через некоторое время
СообщениеДобавлено: Чт авг 29, 2019 16:43:27 
Родился

Зарегистрирован: Пт май 18, 2018 07:27:47
Сообщений: 6
Рейтинг сообщения: 0
Да мы уж два дня наблюдаем)
А может быть какой-то рассинхрон контроллеров? Кварцы и контроллеры разные.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: USART в PIC16 перестает работать через некоторое время
СообщениеДобавлено: Чт авг 29, 2019 16:46:25 
Вымогатель припоя
Аватар пользователя

Карма: 5
Рейтинг сообщений: 145
Зарегистрирован: Вс июл 07, 2019 16:12:46
Сообщений: 550
Рейтинг сообщения: 0
И все чисто? Невероятно. Сколько все это нормально отработало до появления проблем?

_________________
Делай то, что тебе нравится и ты никогда не будешь работать


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: USART в PIC16 перестает работать через некоторое время
СообщениеДобавлено: Чт авг 29, 2019 16:55:14 
Опытный кот

Карма: 4
Рейтинг сообщений: 81
Зарегистрирован: Пн апр 11, 2011 10:08:52
Сообщений: 844
Рейтинг сообщения: 0
Опторазвязка между МК есть?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: USART в PIC16 перестает работать через некоторое время
СообщениеДобавлено: Пт авг 30, 2019 06:33:34 
Родился

Зарегистрирован: Пт май 18, 2018 07:27:47
Сообщений: 6
Рейтинг сообщения: 0
И все чисто? Невероятно. Сколько все это нормально отработало до появления проблем?

Нормально это не работало, проблемы сразу появились.
-=Vovka=- писал(а):
Опторазвязка между МК есть?

Опторазвязка между МК невозможна, TPIC1021 работает если 5В контроллера и 12В канала объединены общей землёй, то есть питание обоих контроллеров завязано общим нулём через канал приёмопередачи 12В


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: USART в PIC16 перестает работать через некоторое время
СообщениеДобавлено: Пт авг 30, 2019 06:56:33 
Вымогатель припоя
Аватар пользователя

Карма: 5
Рейтинг сообщений: 145
Зарегистрирован: Вс июл 07, 2019 16:12:46
Сообщений: 550
Рейтинг сообщения: 0
Сколько все это нормально отработало до появления проблем?

Нормально это не работало, проблемы сразу появились.

Хм, в таком случае хорошо бы посмотреть на схему и ее воплощение в железе...

_________________
Делай то, что тебе нравится и ты никогда не будешь работать


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: USART в PIC16 перестает работать через некоторое время
СообщениеДобавлено: Пт авг 30, 2019 07:04:44 
Опытный кот

Карма: 4
Рейтинг сообщений: 81
Зарегистрирован: Пн апр 11, 2011 10:08:52
Сообщений: 844
Рейтинг сообщения: 0
питание обоих контроллеров завязано общим нулём через канал приёмопередачи 12В

Сомневаюсь, что никак нельзя развязать. Схему покажите


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: USART в PIC16 перестает работать через некоторое время
СообщениеДобавлено: Пт авг 30, 2019 07:04:58 
Опытный кот
Аватар пользователя

Карма: 7
Рейтинг сообщений: 94
Зарегистрирован: Сб июн 01, 2013 22:24:21
Сообщений: 781
Откуда: ПФО
Рейтинг сообщения: 0
А может использовать микросхемы USART<->422, и передавать данные по диф паре, за счёт этого я полагаю многие помехи наведённые в проводах уже не будут иметь такого влияния.
И второе а есть уверенность что второй контроллер после 15 минут попросту не виснет по какой либо причине: нестабильность питания или висяк в коде, вочдог включён?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: USART в PIC16 перестает работать через некоторое время
СообщениеДобавлено: Пт авг 30, 2019 09:12:35 
Родился

Зарегистрирован: Пт май 18, 2018 07:27:47
Сообщений: 6
Рейтинг сообщения: 0
питание обоих контроллеров завязано общим нулём через канал приёмопередачи 12В

Сомневаюсь, что никак нельзя развязать. Схему покажите

1 схема - Контроллер №2, который виснет. транзисторы нужны, чтобы переключать канал на три разных контроллера, без введения адресации. По мануалу TPIC нужно землю 5В и 12В объединять. Попробую впаять вместо транзисторов оптопары сейчас.
2 схема - Контроллер №1, который работает. на 1 схеме это "LIN консоль". Вся плата №1 питается от 12VL со 2 платы.

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

Добавлено after 1 minute 37 seconds:
А может использовать микросхемы USART<->422, и передавать данные по диф паре, за счёт этого я полагаю многие помехи наведённые в проводах уже не будут иметь такого влияния.
И второе а есть уверенность что второй контроллер после 15 минут попросту не виснет по какой либо причине: нестабильность питания или висяк в коде, вочдог включён?

Спасибо за совет, в следующих проектах я подумаю над этим. В этом проекте сроки поджимают уже.
Контроллер не виснет, все остальные функции, кроме USART пашут. Собаки не имею.


Вложения:
Комментарий к файлу: 2 схема
2.JPG [44.89 KiB]
Скачиваний: 389
Комментарий к файлу: 1 схема
1.JPG [60.88 KiB]
Скачиваний: 381
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: USART в PIC16 перестает работать через некоторое время
СообщениеДобавлено: Пт авг 30, 2019 14:26:18 
Опытный кот
Аватар пользователя

Карма: 7
Рейтинг сообщений: 94
Зарегистрирован: Сб июн 01, 2013 22:24:21
Сообщений: 781
Откуда: ПФО
Рейтинг сообщения: 0
Спасибо за совет, в следующих проектах я подумаю над этим.

Если уж на то пошло, идите в сторону 485 там и диф пара и всего 2 провода на приём и передачу и устройств можно кучу понавешать на эту шину, минус только один: нужно программно разруливать общение между устройствами.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: USART в PIC16 перестает работать через некоторое время
СообщениеДобавлено: Пт авг 30, 2019 17:30:27 
Вымогатель припоя
Аватар пользователя

Карма: 5
Рейтинг сообщений: 145
Зарегистрирован: Вс июл 07, 2019 16:12:46
Сообщений: 550
Рейтинг сообщения: 0
1 схема
2 схема
посмотреть на схему и ее воплощение в железе...

И еще: длина линии связи между МК? Что она из себя представляет (как выполнена)?

_________________
Делай то, что тебе нравится и ты никогда не будешь работать


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: USART в PIC16 перестает работать через некоторое время
СообщениеДобавлено: Пт сен 06, 2019 02:59:16 
Друг Кота
Аватар пользователя

Карма: 139
Рейтинг сообщений: 2918
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 24644
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
Зависание УАРТа - это отсутствие в коде контроля за переполнением буфера OERR. Контроль должен быть сделан в суперлупе. Взведение оного бита в регистре RCSTA требует выключения-включения модуля УАРТ. Сбросить бит иначе не выйдет.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 15 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y