роботы
робототехника
микроконтроллеры
Главная
Как сделать робота
Новости
Спорт
Статьи
Wiki
Форум
Downloads
Ссылки
Контакты  


 Страниц (1): [1]   

> Без описания
Vlad_sem
Отправлено: 02 Февраля, 2018 - 17:37:50
Post Id



Главнокомандующий


Сообщений всего: 233
Дата рег-ции: Май 2009  





Появилась небольшая темка для обсуждения.
Сразу хочется сказать, что слово "зависание" использовано образно, т.к. описанная проблема не выводит из строя МК, который после этого можно запустить только ребутом.

Имеется:
1. Плата-хост (Atmega164 8 MHz от внутреннего генератора, USART0->ESP-12F, USART1->cp2102->ПК).
2. Плата-клиент (Atmega8 8 MHz от внутреннего генератора, USART->ESP-12F, два сдвиговых регистра hc595->uln2803).
3. Управляемая нагрузка, подключаемая к плате-клиенту (~150mA на канал uln2803).

Работа:
1. Клиент подключается к хосту.
2. Хост начинает слать пакеты приемнику с байтами для сдвиговых регистров.
3. Клиент получает пакет, парсит, расшифровывает. Если есть изменения, то записывает байты в сдвиговые регистры.
4. Если передача прекращается, приемник шлёт байт со своим id приемнику раз в две секунды, "заявляя о своём присутствии".

Как получить проблему?
1. Начинаем передачу в холостую (коннекторы нагрузки не подсоединены к плате-клиенту, данные на сдвиговых регистрах: 0x00).
2. Подключаем единицу нагрузки к свободному выходу uln2803.
3. Меняем отправляемые данные командой с ПК на 0xFF ("активируем" все выходы uln2803),
видим, что нагрузка включается.
4. Меняем отправляемые данные командой с ПК на 0x00 ("деактивируем" все выходы uln2803),
видим, что нагрузка отключается.

Пока все хорошо.

5. Подключаем еще 3 единицы нагрузки к свободным выходам uln2803.
6. Меняем отправляемые данные командой с ПК на 0xFF ("активируем" все выходы uln2803),
видим, что нагрузка включается.
7. Меняем отправляемые данные командой с ПК на 0x00 ("деактивируем" все выходы uln2803), видим, что нагрузка не отключается.

Детали:
1. Плата-хост к проблеме отношения не имеет, т.к. исправно шлёт данные (видно логическим анализатором).
2. Плата-клиент:
-ESP-12F принимает данные исправно (видно логическим анализатором);
-прерывания работают (мигает светодиод 1 раз в секунду);
-функция приема данных с ESP-12F частично работает, т.к. если нет данных в течение 2 секунд, регистры сбрасываются в 0x00.

Очевидно, что проблема вызвана падением напряжения из-за нагрузки. Падение напряжения в свою очередь вызывает проблемы с тактированием МК, что влечет за собой "заторможенность тактирования", что в свою очередь влияет на правильный прием данных от ESP-12F.

Проблема в данной ситуации решается подбором настроек скорости USART`а на плате-клиенте, чтобы скорость была примерно похожа на нужную при падении напряжения и без него. Но это не дело. Решит ли эту проблему установка внешнего кварца?

При этом напряжение при 50% нагрузки остается в районе 3.28V, а на холостом ходу 3.48V
Прикреплено изображение
Screenshot_61.png

(Отредактировано автором: 02 Февраля, 2018 - 18:43:16)

 
 Top
ОЛЕГ Супермодератор
Отправлено: 03 Февраля, 2018 - 01:30:31
Post Id



Супермодератор


Сообщений всего: 1730
Дата рег-ции: Нояб. 2008  





Привет!
Когда-то давно была у меня похожая ситуация, когда приемник отказывался понимать то, что ему присылают. А на макетке, которая с кварцем, все прекрасно работало. Долго думал тогда. Замешательство
 
 Top
Группа Инженеров
Отправлено: 03 Февраля, 2018 - 01:43:10
Post Id



Главнокомандующий


Сообщений всего: 372
Дата рег-ции: Авг. 2008  





Не специалист по атмелам, но...
Вряд ли снижение напряжения как таковое может привести к срыву генерации.
Но, импульс по питанию может привести к установке какого-нибудь флага в каком-нибудь модуле, например тактирования или даже генерации сброса.
Если нет возможности запитать нагрузку от другого источника, попробуйте поставить RC или LC фильтр в цепь питания (и сброса) микроконтроллера. Ну, скажем 10Ом 220мкФ или 100мкГн 220мкФ.

(Отредактировано автором: 03 Февраля, 2018 - 01:49:52)

 
 Top
Vlad_sem
Отправлено: 03 Февраля, 2018 - 01:46:14
Post Id



Главнокомандующий


Сообщений всего: 233
Дата рег-ции: Май 2009  





Группа Инженеров пишет:
Не специалист по атмелам, но...
Импульс по питанию может привести к генерации сброса.
Если нет возможности запитать нагрузку от другого источника, попробуйте поставить RC или LC фильтр в цепь питания (и сброса) микроконтроллера. Ну, скажем 10Ом 220мкФ или 100мкГн 220мкФ.

Нет, причина не в импульсе. Несколько раз сталкивался с подобным. В таком случае МК просто намертво зависает, а тут, если нагрузку отключить, то все снова становится нормально и данные принимаются нормально.
Просаживается частота, сохраняя полную работоспособность МК, но понижение частоты влечет понижение скорости UART`a, а значит хоть МК и принимает данные от ESP, но принимает мусор. Вопрос вот в чем: почему так? Вроде нет выхода за пределы допустимого напряжения.
(Добавление)
Группа Инженеров пишет:
Но, импульс по питанию может привести к установке какого-нибудь флага в каком-нибудь модуле, например тактирования или даже генерации сброса.

Я тоже думал об этом, но тогда МК остался бы неработоспособным при отключении нагрузки.

(Отредактировано автором: 03 Февраля, 2018 - 01:52:07)

 
 Top
Группа Инженеров
Отправлено: 03 Февраля, 2018 - 01:54:13
Post Id



Главнокомандующий


Сообщений всего: 372
Дата рег-ции: Авг. 2008  





Ну, а я сталкивался. Выставлялся флаг в супервизоре напряжения питания, а этот флаг обрабатывается аппаратно. При его установке тактирование ядра переключается c кварца на RC генератор и вуаля...
Опять же не знаю как в этих Ваших мегах.
Решил вопрос программным сбросом этого флага в основном цикле программы.

(Отредактировано автором: 03 Февраля, 2018 - 01:56:56)

 
 Top
Vlad_sem
Отправлено: 03 Февраля, 2018 - 01:54:55
Post Id



Главнокомандующий


Сообщений всего: 233
Дата рег-ции: Май 2009  





ОЛЕГ пишет:
Привет!
Когда-то давно была у меня похожая ситуация, когда приемник отказывался понимать то, что ему присылают. А на макетке, которая с кварцем, все прекрасно работало. Долго думал тогда. Замешательство

Логический анализатор нереально выручает в таких ситуациях.
 
 Top
Группа Инженеров
Отправлено: 03 Февраля, 2018 - 02:04:24
Post Id



Главнокомандующий


Сообщений всего: 372
Дата рег-ции: Авг. 2008  





Сейчас посмотрел. Это был не флаг супервизора напряжения. Это был флаг ошибки работы генератора. А, лечил я это проверкой флага и перезапуском генератора в случае его установки.
НО!
Этот флаг у меня ставился именно из-за импульса по питанию. При подачи питания, одно из устройств, которое висело на той же шине питания генерировало переходной процесс...
 
 Top
Predator
Отправлено: 03 Февраля, 2018 - 12:04:29
Post Id


Гуру


Сообщений всего: 1077
Дата рег-ции: Июль 2012  





при увеличении нагрузки еще и пульсации напряжения увеличиваются.
 
 Top
Vlad_sem
Отправлено: 03 Февраля, 2018 - 16:30:46
Post Id



Главнокомандующий


Сообщений всего: 233
Дата рег-ции: Май 2009  





Predator пишет:
при увеличении нагрузки еще и пульсации напряжения увеличиваются.

Если без нагрузки понизить напряжение, ситуация повторится.
 
 Top
Predator
Отправлено: 04 Февраля, 2018 - 17:22:41
Post Id


Гуру


Сообщений всего: 1077
Дата рег-ции: Июль 2012  





Ну тогда дело в напряжении в чистом виде. Нужно линию "Sence" к источнику питания тянуть.
 
 Top
Страниц (1): [1]
« Микроконтроллеры »


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





Powered by Exclusive Bulletin Board
ExBB FM 1.0 RC1 Smiles by Fool from Foolstown