CHERI

Потеря байтов при передаче по USART

4 сообщения в этой теме

CHERI    1

Доброго времени суток.В устройстве к микроконтроллеру ATMega32L подключено 4 устройства с интерфейсом USART, а именно: СР2102, НС06 и 2 вспомогательных устройства, какие именно вспомогательные устройства не важно так как даже без них наблюдаются проблемы.Контроллер является мастером.Подключено все по схеме на рисунке ниже.При передаче данных, а именно примерно более 5-6 байт начинаются проблемы: байт приходит битый(в виде заменяющего символа),байт не приходит вовсе; следственно микроконтроллер не отвечает на запросы. Если всю команду разбить на пачки по 4 байта то все байты доходят до микроконтроллера и микроконтроллер отвечает. Конечно это дело можно было бы обойти программно но не хочется оставлять такой костыль.
Схема:
8b3941a64118.gif
TX_main/RX_main  -  ATMega32L
R1,R2 - 100k 
T1,T2 - 2N7002
D1,D2 - BAT54A 
Напряжение питания 3.3В. Микроконтроллер работает от кварца на частоте 4 Мгц.BAUD 9600.Пакет 10 бит:1 стартовый, 8 бит данных, 1 стоповый.
Симуляция в протеусе работает без каких либо ошибок.
Как решить данную проблему? Заранее благодарен. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Lexter    233
11 час назад, CHERI сказал:

Как решить данную проблему?

Посмотреть осциллографом сигнал на шине. В 90% случаев сразу становится понятно. С вашими диодами последовательно в сигнальной линии, непонятно каким кабелем и непонятно какой нагрузкой на другом конце, скорее всего там и причина.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
CHERI    1
17 часов назад, Lexter сказал:

Посмотреть осциллографом сигнал на шине. В 90% случаев сразу становится понятно. С вашими диодами последовательно в сигнальной линии, непонятно каким кабелем и непонятно какой нагрузкой на другом конце, скорее всего там и причина.

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

Проблема была решена.Добавил подтяжку к земле через 100к и баг ушел. 

Тему можно закрывать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Lexter    233

Ну вот и ещё один случай к 90%, что дело в "грязном" сигнале. При подключении осциллографа сигнал становился "идеальным" из-за наличия резистора на "землю" в щупе. Добавление резисторов решило проблему.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас