Arduino uart 5v to uart 3v

kristow
kristow аватар
Offline
Зарегистрирован: 08.08.2013

Привет всем!

Arduino имеет uart 5в. Я подключаю его к устройству, которое слушает ардуину и передает ему в ответ.

Устройство имеет uart 3в. От устройства к ардуино сообщения приходят 100% всегда. А вот от ардуино к устройству то приходят, то нету их... Пытался делителем из сопротивлений согласовать uart. Но как-то не особо сработало...

Заметил странную штуку и не пойму как ее эмулировать.... При подключении ардуины по USB порту и открыв терминал обмен данными между устройством и ардуиной идет 100%, а если подключаю ардуино череб БП, то нормально данные только в одну сторону идут...

Может надо tx или rx подтянуть к чему-нибудь? А то мистика какая-то...

И еще странное явление, подскажи кто вкурсе: я так понял функция setup() выполняется один раз, так почему при подключении ардуины по USB, при открывании терминала я каждый раз получаю сообщение "my testing"? Ардуино вроде как не перезапускается.... Если закрыл и открыл терминал не отключая USB опять будет это же сообщение... В чем фишка? Кто может подсказать что происходит? 

И почему при рабочем терминале ардуины данные летят 100% в обе стороны, а с закрытым терминалом только в одну?

void setup() {
  Serial.begin(9600);
  Serial.println("my testing");
}

 

Клапауций 998
Offline
Зарегистрирован: 12.08.2015

в USBasp используется следующий аппаратный метод совмещения логических +3V <-> +5V попробуй

 

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014
Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

kristow пишет:

И еще странное явление, подскажи кто вкурсе: я так понял функция setup() выполняется один раз, так почему при подключении ардуины по USB, при открывании терминала я каждый раз получаю сообщение "my testing"? Ардуино вроде как не перезапускается.... Если закрыл и открыл терминал не отключая USB опять будет это же сообщение... В чем фишка? 

При открывании терминала ардуина ресетится.

kristow
kristow аватар
Offline
Зарегистрирован: 08.08.2013

Спасибо за помощь!

Статьи смотрел, пробовал делитель напрядения на сопротивлениях... Почему-то не работает...

Ссылки на железки спасибо, заказал на TXS0108E.

Пока будет идти, хочу купить мк и на соплях попробовать работу, в даташите не увидел на сколько надо конденсаторы по питанию использовать... Подскажите кто вкурсе?!

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

kristow пишет:

Пока будет идти, хочу купить мк и на соплях попробовать работу, в даташите не увидел на сколько надо конденсаторы по питанию использовать... Подскажите кто вкурсе?!

Смотря какие устройства будут висеть на этой же линии питания. И общая помеховая обстановка рядом с МК. От высокочастотных помех - керамику 0,1 мкФ (например, коллекторные электродвигатели и др.) (если помехи и наводки очень большие, например от промышленноо оборудования, то ставят ферритовые фильтры на провода и МК экранируют). От просадок питания (мощная нагрузка на этой же линии питания) - электролит 10 - 100 мкФ или больше.

А так, в идеальных условиях без помех и хорошем питании без просадок, МК может вообще без всякой обвязки работать.Тупо одна микросхема, даже без кварца :)

kristow
kristow аватар
Offline
Зарегистрирован: 08.08.2013

Микросхемы в моем магазине нету... Буду ждать из Китая.

Нашел у себя MAX232. Решил попробовать обойти согласование уровней через преобразованный RS232.

Итог хреновый: Когда я питаю arduino uno через внешнее питание, то в порт от arduino летит нечитаемая каша.... Если Питание на arduino подаю через USB -> usb блок питание 5в. то таже хрень... ЗАТО если я подключаю arduino по USB к компу не запуская терминала (или с запущенным, разницы нет) то идет 100% читаемый текст...

Меня эта мистика уже бесит! 

Клапауций 998 пишет:

в USBasp используется следующий аппаратный метод совмещения логических +3V <-> +5V попробуй

 

Подскажите в чем суть этого? Это схема внутряя arduino? или это схема обвеса для подключения чего-либо по USB? Если да, то D- и D+ это uart rx/tx? или нет?

Клапауций 998
Offline
Зарегистрирован: 12.08.2015

kristow пишет:

Клапауций 998 пишет:

в USBasp используется следующий аппаратный метод совмещения логических +3V <-> +5V попробуй

 

Подскажите в чем суть этого? Это схема внутряя arduino? или это схема обвеса для подключения чего-либо по USB? Если да, то D- и D+ это uart rx/tx? или нет?

суть в подтяжке сигнальной линии к напряжению 3.3V. это кусок схемы программатора USBasp - схема обвеса контроллера AVR с напряжением питания 5V для работы с USB хостом компьютера, у которого логические уровни 3.3V

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

А я думал по другому: Сигналы D+ и D- имеют трёхвольтовую логику как и весь стандарт ЮСБ.
А резистор R3 нужен только для того чтобы определить что воткнули USB дэвайс требующий общения .

При этом если притянут D+   -   это значит FULL Spead USB device,
а если притянут D-   -   это значит LOW Spead USB device, 

В отличии от случая замкнутых D+ и D- что означает что дэвайс воткнули в тупую  зарядку

https://www.google.ru/search?q=usb+d-+pullup+resistor&newwindow=1&biw=19...

Клапауций 998
Offline
Зарегистрирован: 12.08.2015

trembo пишет:

А я думал по другому: Сигналы D+ и D- имеют трёхвольтовую логику как и весь стандарт ЮСБ.

верно ты думал.

сейчас сомневаешься?

trembo пишет:

А резистор R3 нужен только для того чтобы определить что воткнули USB дэвайс требующий общения .

При этом если притянут D+   -   это значит FULL Spead USB device,
а если притянут D-   -   это значит LOW Spead USB device, 
 

кому это сейчас интересно?