Раньше использовали модуль с внутренним питанием 2.8 вольта и обходились просто резисторами. Сейчас UART модуля работает на уровнях 1.8 вольт. В направлении от процессора к модулю наверное обойдемся диодами шоттки и подтяжкой к 1.8. А вот в сторону от модуля к процессору придется ставить что-нибудь типа SN74LVC07 или несколько открытых коллекторов. Скорость планируется 115200. Хочу понять как это делается по феншую
Lmx2315
Mar 22 2015, 18:19
http://www.ti.com/lit/ds/symlink/lsf0102.pdfDual Bidirectional Multi-Voltage Level Translator
WLESS.RU
Mar 23 2015, 06:10
Самое удобное - специализированные Level Translators.
Для направления модуль -> процессор ещё такую схемку можно попробовать:
Нажмите для просмотра прикрепленного файла
viakon
Mar 23 2015, 06:51
sn74lvc1t45. Заодно никаких проблем с фантомкой.
За трансляторы уровней спасибо и VIAKONу и LMX2315. На плату поставили обоих потому что LFS0102 не доступен образцами но дешев и удобен. А SN74.... поставщик обещал угостить.
Следующий вопрос наверное идиотский, поэтому прошу сильно не пинать. Модуль у нас 3G и данные гонять собираемся по USB. Насколько я понимаю на пине VBUS я должен выставить 5 вольт и по появлению этого уровня модуль готов всасывать по шине USB данные. То есть мне в нашем 3.3-вольтовом устройстве придется родить 5-ти вольтовый потенциал чтобы модуль на него среагировал. Я все правильно понял?
Jury093
Mar 28 2015, 09:50
Цитата(RKS @ Mar 28 2015, 09:27)

Следующий вопрос наверное идиотский, поэтому прошу сильно не пинать. Модуль у нас 3G и данные гонять собираемся по USB. Насколько я понимаю на пине VBUS я должен выставить 5 вольт и по появлению этого уровня модуль готов всасывать по шине USB данные. То есть мне в нашем 3.3-вольтовом устройстве придется родить 5-ти вольтовый потенциал чтобы модуль на него среагировал. Я все правильно понял?
вы определитесь с ролью вашего девайса..
если он в режиме
device подключается к хосту, то 5в придет с хоста, вот их и заведете на VBUS
если у вас режим
host, то делаете (или рожаете в вашей терминологии) набортный dc/dc step-up с 3в3 на 5в
Цитата(Jury093 @ Mar 28 2015, 12:50)

вы определитесь с ролью вашего девайса..
если он в режиме device подключается к хосту, то 5в придет с хоста, вот их и заведете на VBUS
если у вас режим host, то делаете (или рожаете в вашей терминологии) набортный dc/dc step-up с 3в3 на 5в
Спасибо - понял. Он у нас действительно DEVICE вот только HOST у него от 3.3 вольта питается. Так что без родов видимо не обойтись...
Вроде, было уже где-то разжевано, но не могу найти. Чем плох резистивный делитель для согласования уровней? Один вывод на землю, середину на модуль, второй вывод на контроллер.
Lmx2315
Apr 7 2015, 15:15
QUOTE (p_kav @ Apr 7 2015, 16:22)

Вроде, было уже где-то разжевано, но не могу найти. Чем плох резистивный делитель для согласования уровней? Один вывод на землю, середину на модуль, второй вывод на контроллер.
..это если надо понизить уровень сигнала, а в обратную сторону как?
HardJoker
Apr 7 2015, 16:56
Цитата(WLESS.RU @ Mar 23 2015, 10:10)

Самое удобное - специализированные Level Translators.
Для направления модуль -> процессор ещё такую схемку можно попробовать:
Нажмите для просмотра прикрепленного файлаДля надежности можно добавить резистор 3...10k между базой и землей
Lmx2315 А если обратная сторона хорошо понимает эти низкие уровни при подключении напрямую?
Lmx2315
Apr 7 2015, 19:34
QUOTE (p_kav @ Apr 7 2015, 22:29)

Lmx2315 А если обратная сторона хорошо понимает эти низкие уровни при подключении напрямую?
..и что же поймёт 3.3 вольтовая логика при получение 1.8 вольт в качестве единицы?
У меня контроллер Atmel при питании 5В вполне понимает и 3,3В, и 2,8В. При этом сам отправляет на 5В, чем может сжечь принимающую сторону. Сделал согласование в одну сторону через делитель, а потом вспомнил, что где-то читал что так делать неправильно. Вот и спрашиваю почему неправильно.
Lmx2315
Apr 8 2015, 03:07
QUOTE (p_kav @ Apr 7 2015, 22:46)

У меня контроллер Atmel при питании 5В вполне понимает и 3,3В, и 2,8В. При этом сам отправляет на 5В, чем может сжечь принимающую сторону. Сделал согласование в одну сторону через делитель, а потом вспомнил, что где-то читал что так делать неправильно. Вот и спрашиваю почему неправильно.
..вам так может казаться что ваш микроконтроллер понимает уровни сигналов ниже требуемых, мы живём в мире статистики, и на 1000 импульсов которые ваш микроконтроллер принял будет 1 который он поймёт неправильно. И соотношение это может меняться в худшую сторону.
Могу предположить что дело в скоростных характеристиках, резистивный делитель это по любому RC цепочка которая будет заваливать фронты у скоростных сигналов, чем больше номиналы резисторов в делителе - тем медленнее сигнал может пройти. И к примеру, SPI или UART уже могут не работать или часто сбоить . К тому же, лично я, всегда стараюсь жёстко разделить зоны с разноуровневым питанием элементов, опыт показывает что когда есть возможность спалить что-то маловольтное высоковольтным - так и происходит, рано или поздно.
вот простая схема двунаправленного согласования уровней. VCC1=5V; VCC2=2.7-3.3V. Транзистор 2N7002.
Lmx2315
Думаю, резистивный делитель в моём случае работает потому, что сам контроллер Atmel может питаться в широком диапазоне 1,8-5,5В и по этому легко распознает 2,8В как логическую единицу. Во всяком случае, судя по графику, гарантированная единица у контроллера начинается 1,5В. Да и скорость у меня очень низкая - 4800, влияние на форнты сигнала минимальное.
Lmx2315
Apr 8 2015, 06:29
..а что у вас за микроконтроллер?
..обычно в таблицах указываются допустимые уровни логических сигналов с привязкой к уровню питания.
Конечно микроконтроллер будет нормально относится к единице равной 1.8 вольт, но только при условии что и питание у него такое же.
з.ы.
к примеру на микроконтроллере STM32f103 при питании 3.3 вольта , минимальное значение логической единицы зависит не только от питания но и от типа ножки на которую приходит сигнал и колеблется от 1.54 В до 2.165 В.
У меня Atmega88PA. Зависимость от напряжения питания есть, она указана в даташите на странице 340. При питании 4,2В напряжение логической единицы примерно составляет 2,2В, а при напряжении 5В единица считывается при 2,6В, поэтому контроллер считывает UART 2.8В без проблем.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.