Подскажите пожалуйста по схемотехнике.
Есть основной МК STM32F2205VET6 (3.3V), он работает как мастер по SPI3 (ноги 78, 79, 80 у STM32) c шестью МК STM8S003F3 (слейвы, 5V). STM32 как я понял может напрямую рабортать с 5 вольтовым STM8S, ноги 78, 79, 80 у STM32 5V tollerant.
Но в качестве слейва может быть также не "5V tollerant" МК. Как можно минимальными затратами защитить 3-вольтовый МК на SPI от 5-ти вольтовых сигналов SPI от STM8S?
Питание у STM8S опустить до 3.3В нет возможности.
Обнаружил в одной схеме, что вывод MISO с STM8S идет через резистор 270 Ом. Защитит ли это 3-х вольтовые МК, непонятно.
Еще непонятно, достаточно ли будет "мощности" у выхода SPI STM32 для нормальной работы с шестью слейвами (STM8S)? Все слейвы на расстоянии макс 10 см от мастера на разъемах типа PLS-4.
Или может подстраховаться и добавить между STM32 и STM8S буфер типа SN74LVC3G34?
объясните, с чего ваши сомнения? вы же сами указываете на толерантность выводов stm32?
Genadi Zawidowski
Jan 7 2015, 11:45
Обратите внимание на надёжность решения - подавать на 5-вольт схему 3.3 вольт сигналы. Вам всё нравится в этом?
А на какой скорости работает SPI? Просто поделите 5 В с выходов STM8S на резистивном делителе до уровня 3,3 В и все. Номиналы резисторов - в зависимости от скорости.
А 3,3 В с выходов STM32F подавайте на STM8S либо непосредственно, либо через защитный резистор 100-200 ом (на всякий случай, например, если нога STM8S окажется случайно настроенной на выход).
Это простейшее решение и обладает, несомненно, некоторыми потенциальными недостатками, но что-то мне подсказывает, что в вашем случае этого более чем достаточно, и работать оно будет.
Цитата(Genadi Zawidowski @ Jan 7 2015, 14:45)

Обратите внимание на надёжность решения - подавать на 5-вольт схему 3.3 вольт сигналы. Вам всё нравится в этом?
достаточно проверить пороги...
Цитата(turnon @ Jan 7 2015, 14:14)

Обнаружил в одной схеме, что вывод MISO с STM8S идет через резистор 270 Ом.
270 Ом - это очень похоже на гасящий звон резистор.
Цитата(turnon @ Jan 7 2015, 14:14)

Защитит ли это 3-х вольтовые МК, непонятно.
Может оказаться, что этого достаточно, чтобы защитить. Надо читать даташит (макс. допустимый ток через пин, если это вообще там оговаривается). Ещё бывают сюрпризы, когда ток, текущий через защитный диод, начинает приподнимать напряжение питания (получите, скажем, 4,3 В вместо 3,3 В). Так что за питанием тоже следите.
Цитата(scifi @ Jan 7 2015, 16:00)

Ещё бывают сюрпризы, когда ток, текущий через защитный диод, начинает приподнимать напряжение питания (получите, скажем, 4,3 В вместо 3,3 В). Так что за питанием тоже следите.
разве в 5v-tolerant выводах используются эти диоды?
Цитата(1113 @ Jan 7 2015, 16:03)

разве в 5v-tolerant выводах используются эти диоды?
Вы уверены, что вы читали топик?
Цитата(turnon @ Jan 7 2015, 14:14)

Но в качестве слейва может быть также не "5V tollerant" МК.
ах ты ж - ТС лишнего написал... надо было сразу начинать с третьей строки))
тогда я предлагаю по одному 2n7002 на каждую линию 5 -> 3
Цитата(1113 @ Jan 7 2015, 14:40)

объясните, с чего ваши сомнения? вы же сами указываете на толерантность выводов stm32?
Дело в том, что слейв может быть как 5-ти вольтовый, так и 3-х вольтовый. И боюсь что напрямую 3-х вольтовому слейву с не 5V tollerant SPI поплохеет, когда на линии MISO от 5-ти вольтового будут идти данные, ведь все MISO соединены.
Цитата(OlegH @ Jan 7 2015, 14:58)

А на какой скорости работает SPI? Просто поделите 5 В с выходов STM8S на резистивном делителе до уровня 3,3 В и все. Номиналы резисторов - в зависимости от скорости.
Скорость ограничена максимальной у STM8S - 8 МБит, если не ошибаюсь.
Цитата(turnon @ Jan 7 2015, 19:36)

Дело в том, что слейв может быть как 5-ти вольтовый, так и 3-х вольтовый. И боюсь что напрямую 3-х вольтовому слейву с не 5V tollerant SPI поплохеет, когда на линии MISO от 5-ти вольтового будут идти данные, ведь все MISO соединены.
Что-ж у Вас там за зоопарк такой на SPI???
Обычно SPI - это внутриплатный или внутридевайсный интерфейс, редко выходящий на внешние разъёмы устройства.
Вы не знаете заранее какие слэйвы в вашем устройстве на SPI сидеть будут???
Если будут разные - рассадите их по разным SPI-портам (в вашем МК наверняка не один SPI имеется).
А на внешний разъём выведите что-нить типа RS-485.
Цитата(jcxz @ Jan 7 2015, 17:37)

Что-ж у Вас там за зоопарк такой на SPI???
Обычно SPI - это внутриплатный или внутридевайсный интерфейс, редко выходящий на внешние разъёмы устройства.
Вы не знаете заранее какие слэйвы в вашем устройстве на SPI сидеть будут???
Если будут разные - рассадите их по разным SPI-портам (в вашем МК наверняка не один SPI имеется).
А на внешний разъём выведите что-нить типа RS-485.
Модульная конструкция. Модули сидят на одном из SPI STM32. Остальнвые два SPI у STM32 заняты под другие задачи.
Слейвы (модули) ограничены по стоимости и габаритам, потому не хочется в каждый ставить стабилизатор 5 в 3.3В.
А 5В более универсальное питание (неизвестно какая еще в дальнейшем будет периферия на новых модулях), и из 5 лечге получить 3.3, чем наоборот.
Конфигурируете MISO у 5-вольтового контроллера как Open-Drain вместо Push-Pull и подтягиваете, куда нужно, в данном случае, к 3,3 вольтам.
Цитата(gerber @ Jan 7 2015, 22:39)

Конфигурируете MISO у 5-вольтового контроллера как Open-Drain вместо Push-Pull и подтягиваете, куда нужно, в данном случае, к 3,3 вольтам.
Что будет с вашим опен-драйн при таких паразитных емкостях и индуктивностях как у ТС в его модульной конструкции с кучей проводов и разъёмов???
Какие величины подтяжек нужны? А учли что там уже 6 слэйвов (или больше)? Это-ж сколько активному контроллеру ногой MISO миллиампер продавливать придётся???
А учли что ТС хочет до 8МГц при этом?
Да там завалов фронтов и глитчей будет больше чем полезного сигнала.
Да в таком случае проще всё на I2C посадить.
Простое решение - перевести всю SPI-шину на 3.3V.
Перед каждой MISO-ногой 5-вольтового МК поставить цепочку встречно-параллельно включённых нескольких диодов:
для пропуска "0" от МК в одной ветви цепочки - диод Шоттки; для пропуска "1" в другой ветви - 3 последовательных кремниевых диода.
Хотя это конечно - по колхозному.
Правильней - после MISO такого МК поставить любой логический элемент - повторитель с 3.3V выходом.
Цитата(jcxz @ Jan 7 2015, 21:13)

Что будет с вашим опен-драйн при таких паразитных емкостях и индуктивностях как у ТС в его модульной конструкции с кучей проводов и разъёмов???
Какие величины подтяжек нужны? А учли что там уже 6 слэйвов (или больше)? Это-ж сколько активному контроллеру ногой MISO миллиампер продавливать придётся???
А учли что ТС хочет до 8МГц при этом?
Да там завалов фронтов и глитчей будет больше чем полезного сигнала.
Согласен, колхоз, но не более, чем делитель из резисторов.
С другой стороны, подтяжку поменьше (300-500 Ом) - и попробовать open-drain можно, не так уж и это много, 10 см от мастера до слейва. Особенно, если полная скорость 8 МГц не особо нужна, и потребление тока тоже не столь важно.
Цитата(Genadi Zawidowski @ Jan 7 2015, 14:45)

Обратите внимание на надёжность решения - подавать на 5-вольт схему 3.3 вольт сигналы. Вам всё нравится в этом?
У 5В уровень 0: -0.3В - 1.5В, 1: 3.5В - 5.3В
У 3.3В уровень 0: -0.3В - 0.99В, 1: 2.31 - 5.5В (5V tollerant)
Надежный зазор?
Цитата(turnon @ Jan 8 2015, 12:43)

У 5В уровень 0: -0.3В - 1.5В, 1: 3.5В - 5.3В
...
Надежный зазор?
Смеётесь?
Объясните, как трёхвольтовый мастер обеспечит на линии уровень 3,5 В?
Цитата(scifi @ Jan 8 2015, 13:01)

Смеётесь?
Объясните, как трёхвольтовый мастер обеспечит на линии уровень 3,5 В?
А и точно, не приметил. Как же оно сейчас работает, непонятно. Видимо из-за 4.5В, а не 5.
В этом случае 3.15В нижний уровень 1 у 5-ти вольтового устройства. Зазор в 0.15В не маленький?
Цитата(turnon @ Jan 8 2015, 13:06)

А и точно, не приметил. Как же оно сейчас работает, непонятно.
Как раз это понятно: сегодня работает, а завтра - неизвестно. Изменения температуры, напряжения питания, ветерок подует...
Цитата(turnon @ Jan 8 2015, 13:06)

В этом случае 3.15В нижний уровень 1 у 5-ти вольтового устройства. Зазор в 0.15В не маленький?
Если сможете гарантировать, что зазор не уменьшится до 0 никогда, то вполне достаточно, ИМХО.
Цитата(scifi @ Jan 8 2015, 13:14)

Как раз это понятно: сегодня работает, а завтра - неизвестно. Изменения температуры, напряжения питания, ветерок подует...
Если сможете гарантировать, что зазор не уменьшится до 0 никогда, то вполне достаточно, ИМХО.
Видимо надо сделать для 5-ти вольтовых питание 4.2В, тогда и зазор в лог. 1 будет (4.2В * 0.7) - 3.3 = 0.36В, и ограничить до безопасного уровня сигнал с 5-ти вольтового MISO можно одним диодом (0.7В) плюс параллельно ему диод шотки для формирования лог. 0 на MISO.
Почему именно 4.2В - предусмотрено резервное питание от li-on, который как раз дает 4.2В.
Kiruxa112
Jan 26 2015, 08:48
Цитата(turnon @ Jan 8 2015, 13:27)

Видимо надо сделать для 5-ти вольтовых питание 4.2В, тогда и зазор в лог. 1 будет (4.2В * 0.7) - 3.3 = 0.36В, и ограничить до безопасного уровня сигнал с 5-ти вольтового MISO можно одним диодом (0.7В) плюс параллельно ему диод шотки для формирования лог. 0 на MISO.
Почему именно 4.2В - предусмотрено резервное питание от li-on, который как раз дает 4.2В.
Можно использовать ADuM1301, запитав одну половину от 5, другую от 3,3.
ADuM1401 если линию CS тоже согласовать за одним. По микросхеме на каждый контроллер, у которого напряжение 5 или 3,3.
toweroff
Jan 26 2015, 09:27
Так оставьте у контроллера его уровни 3.3 и обяжите слейвы работать в этом напряжении - пусть по необходимости имеют свои преобразователи
Цитата(Kiruxa112 @ Jan 26 2015, 14:48)

Можно использовать ADuM1301, запитав одну половину от 5, другую от 3,3.
ADUM никак не соответствует изначальному условию ТС:
Цитата(turnon @ Jan 7 2015, 17:14)

Но в качестве слейва может быть также не "5V tollerant" МК. Как можно минимальными затратами защитить 3-вольтовый МК на SPI от 5-ти вольтовых сигналов SPI от STM8S?
Golikov A.
Jan 26 2015, 11:43
да это делается полевиком и 2 резисторами...
A. Fig Lee
Jan 26 2015, 14:30
Цитата(Golikov A. @ Jan 26 2015, 06:43)

да это делается полевиком и 2 резисторами...
Для одного вывода. Для 4х легче мелкосхему поставить.
Golikov A.
Jan 26 2015, 16:04
а дешевле 4 полевика и 8 резисторов)
skripach
Jan 26 2015, 16:11
Возмите 74LVC2T45 или подобное и не дурите голову.
Цитата(turnon @ Jan 7 2015, 16:36)

И боюсь что напрямую 3-х вольтовому слейву с не 5V tollerant SPI поплохеет, когда на линии MISO от 5-ти вольтового будут идти данные, ведь все MISO соединены.
Вообще у всех слейвов, кроме активного, MISO находится в Z состоянии по идее, так что тут все равно.
А остальные линии девайсов, работающих на 3.3В, но принимающих 5В сигнал можно защитить банальной внешней диодной защитой типа bav99.
Golikov A.
Jan 26 2015, 17:24
Цитата
Возмите 74LVC2T45 или подобное и не дурите голову.
а дир кто дергать будет? есть 2 направленные микрухи, но подороже
skripach
Jan 26 2015, 17:53
Цитата(Golikov A. @ Jan 26 2015, 20:24)

а дир кто дергать будет?
Какой такой дир... ТС декралировал SPI, зачем двунапровленные?
Golikov A.
Jan 26 2015, 18:31
ну то есть 2 микрухи надо ставить, одна на вход, и другая на выход?
skripach
Jan 26 2015, 18:50
Цитата(Golikov A. @ Jan 26 2015, 21:31)

ну то есть 2 микрухи надо ставить, одна на вход, и другая на выход?
Ну если ту что я для примера указал, то да - две штуки, но наверняка можно выбрать что-то готовое в одном корпусе.
A. Fig Lee
Jan 26 2015, 18:53
Цитата(Golikov A. @ Jan 26 2015, 13:31)

ну то есть 2 микрухи надо ставить, одна на вход, и другая на выход?
А почему одна не будет работать на вход и выход?
TBX0104 сотоварищи..
Golikov A.
Jan 26 2015, 20:45
есть в 2 стороны работающая в одном корпусе аж 8 канальная, но дороже
полевика и 2 резисторов

мы же тут об этом говорим.
ТС я так понимаю уже давно все сделал, это кто-то из небытия топик поднял...
A. Fig Lee
Jan 27 2015, 02:28
Цитата(Golikov A. @ Jan 26 2015, 15:45)

есть в 2 стороны работающая в одном корпусе аж 8 канальная, но дороже
полевика и 2 резисторов

мы же тут об этом говорим.
ТС я так понимаю уже давно все сделал, это кто-то из небытия топик поднял...
Есть. И одноканальная есть. Вопрос шел о 4х канальной.
А 4 полевика и 8 резисторов обойдутся дешевле 1 доллара?
Golikov A.
Jan 27 2015, 07:25
да.
http://www.chipdip.ru/product/bss138-onsemi/5 рублей, если единично
http://www.chipdip.ru/product0/9000189664/0.9 рубля если единично,
и того 4 канала 27.2 рублей, треть бакса по текущему курсу, а можно и еще скинуть за опт...
turnon
Jan 28 2015, 17:39
Цитата(skripach @ Jan 26 2015, 20:11)

Возмите 74LVC2T45 или подобное и не дурите голову.
Остается на выбор, что потянет 8 МБит, полевик с резисторами или 74LVC2T45. С полевиком боюсь затянет фронты.
Еще один человек высказывал, что при заниженных лог. уровнях STM8S будет больше потреблять. Только вот не понимаю подробно, почему.
"С Ваших слов, ведомые STM8S питаются от голого аккумулятора высоким напряжением, а ведущий STM32 — от него же, но пониженного до 3,3 В. Так вот, каждый из этих десятков-сотен STM8S от такого "согласования уровней" будет потреблять на 1...10 мА больше, чем Вы мечтаете. В принципе, ничего страшного не произойдёт — просто они будут каждый раз быстренько высасывать свежезаряженный аккумулятор до напряжения, обеспечивающего малопотребляющий "зазор" уровней."
Цитата(toweroff @ Jan 26 2015, 13:27)

Так оставьте у контроллера его уровни 3.3 и обяжите слейвы работать в этом напряжении - пусть по необходимости имеют свои преобразователи
Тоже вариант. Но места мало на слейвах и слейвы должны быть максимально (по возможности) дешевыми.
Golikov A.
Jan 28 2015, 19:47
полевик тот что по ссылке имеет переключение 5-20 нСек, ну пускай 40 нСек, а 8 МГц - это 125 нСек, половина периода 60 нСек, в целом проходит, конечно, но на грани. Можно подобрать полевик побыстрее, а можно взять спец микруху типа
http://www.chipdip.ru/product/adg3308bruz/, правда это уже сильно дороже, зато до 50 Мегобит в секунду
а вот такой
http://www.chipdip.ru/product/2n7000/время переключения 10 нСек, и ваще ничего не стоит
про питание я так понимаю что если на него выставляешь логический уровень 4.5 -5 вольт, а него 3 вольта максимум, то разницу в 1.5-2 вольта он на чем то сбрасывает, следовательно идет ток, которого могло бы и не быть...
turnon
Jan 29 2015, 07:26
Цитата(Golikov A. @ Jan 28 2015, 22:47)

полевик тот что по ссылке имеет переключение 5-20 нСек, ну пускай 40 нСек, а 8 МГц - это 125 нСек, половина периода 60 нСек, в целом проходит, конечно, но на грани.
Так в схеме с полевиком ограничения на скорость вроде бы накладывают резисторы подтяжки к питанию, а не полевик.
Цитата(Golikov A. @ Jan 28 2015, 22:47)

про питание я так понимаю что если на него выставляешь логический уровень 4.5 -5 вольт, а него 3 вольта максимум, то разницу в 1.5-2 вольта он на чем то сбрасывает, следовательно идет ток, которого могло бы и не быть...
Зачем куда-то сбрасывать разницу? Это высокоомный вход, практически затвор полевика, он вообще практически не потребляет, как я понимаю.
Цитата(turnon @ Jan 29 2015, 10:26)

Зачем куда-то сбрасывать разницу? Это высокоомный вход, практически затвор полевика, он вообще практически не потребляет, как я понимаю.
а диод при напряжении на входе (VCC + 0.6) В
Golikov A.
Jan 29 2015, 09:35
Цитата
Так в схеме с полевиком ограничения на скорость вроде бы накладывают резисторы подтяжки к питанию, а не полевик.
ну так с этим можно работать, тем более какая там емкость линии, чтобы ее 10К сильно задержали?
В 0 то она проваливается со всей своей пролетарской ненавистью по открытию полевика или по его диоду (когда 0 с большей стороны).
turnon
Jan 29 2015, 09:59
Цитата(1113 @ Jan 29 2015, 11:36)

а диод при напряжении на входе (VCC + 0.6) В
Так напряжение на входе будет меньше Vcc, а не больше. Vcc 4.2В, а приходящий на ногу сигнал SPI будет иметь уровень 3.3В. И почему-то при этом устройство с Vcc 4.2В будет иметь повышенное потребление, не понимаю почему.
Цитата(Golikov A. @ Jan 29 2015, 13:35)

ну так с этим можно работать, тем более какая там емкость линии, чтобы ее 10К сильно задержали?
В 0 то она проваливается со всей своей пролетарской ненавистью по открытию полевика или по его диоду (когда 0 с большей стороны).
Емкость ног у стм8 50пФ, у десятка(+мастер) 500пФ, плюс емкость дорог, проводов и тд и тд, пусть будет в сумме 1нФ. Скорость 8Мбит.
Цитата(turnon @ Jan 29 2015, 12:59)

Vcc 4.2В
откуда взялись эти 4,2 В? вроде же питания два - 3,3 и 5...
turnon
Jan 29 2015, 12:25
Цитата(1113 @ Jan 29 2015, 14:03)

откуда взялись эти 4,2 В? вроде же питания два - 3,3 и 5...
5-ти вольтовому устройству точно не получится принимать 3.3-х вольтовую логику, т.к. нижний уровень единицы при 5В * 0.7 - 3.5В, а у 3.3 верхний уровень никак не может быть больше 3.3.
Потому питание и сделано 4.2В, чтобы нижний уровень единицы был ниже: 4.2В * 0.7 = 2.94В, 0.36В надеюсь достаточно надежный зазор.
Golikov A.
Jan 29 2015, 19:57
Ну если нанофарад, тоды ой...
Надо повторители ставить
Устройсто 4.2 будет потреблять когда оно выставит 1 на 3.3 вольтовом входе. Удерживание этой единицы будет даваться слезами
А уровень лог единицы точно 0.7 от питания? Прям сегодня соединял 5 и 3.3 вольтовые девайсы. Причем честные 5 и 3.3 с толерантным к 5 в оба конца данные шли
В вашей задаче схему на полевике можно и упростить у вас же направление четко задано
К561ПУ4 очень хорошо работает. Можно и на дискретных полевых погуглить, тоже хорошо если всего пару линий. Кстати в обе стороны работает, то что нагуглится.
Golikov A.
Jan 29 2015, 21:11
да, но в том что нагуглиться единица задается через резисторы. А по условиям нашей гипотетической задачи емкость линии 1 нФ, что даже на 1 КОме не даст желаемых 8 МГц.
Другое дело что если забыть про желание двунаправленности, то можно просто тупо сделать компаратор который все что больше 0.7 будет считать 1, и входнуюю линию поделить пополам, получиться что 5 вольтовые дают 2.5 , 3.3 вольтовые дают 1.7, а компаратор всех утянет в 3.3 - 5 в зависимости от проца
turnon
Jan 30 2015, 07:20
Цитата(Golikov A. @ Jan 29 2015, 23:57)

Ну если нанофарад, тоды ой...
Надо повторители ставить
Как думаете, SN74LVC3G34 такой подойдет?
Цитата(Golikov A. @ Jan 29 2015, 23:57)

Устройсто 4.2 будет потреблять когда оно выставит 1 на 3.3 вольтовом входе. Удерживание этой единицы будет даваться слезами
Отчего потреблять? От превышения уровня 3.3В и за счет этого потребления через защитные диоды?
Так у 3.3В устройства ноги SPI "5v tollerant".
Цитата(Golikov A. @ Jan 29 2015, 23:57)

А уровень лог единицы точно 0.7 от питания? Прям сегодня соединял 5 и 3.3 вольтовые девайсы. Причем честные 5 и 3.3 с толерантным к 5 в оба конца данные шли
В даташитах на STM32F2 и STM8S так указано. Может это с гарантированным запасом указано.
Цитата(Golikov A. @ Jan 29 2015, 23:57)

В вашей задаче схему на полевике можно и упростить у вас же направление четко задано
А как именно упростить, подскажите пожалуйста.
Цитата(smk @ Jan 30 2015, 02:15)

Спасибо. Но там же опять подтяжка через резисторы, насколько их надо уменьшить чтобы фронты были приемлемые при 8Мбит и емкости линии до ~1nF?
Golikov A.
Jan 30 2015, 08:02
Цитата
Отчего потреблять? От превышения уровня 3.3В и за счет этого потребления через защитные диоды?
Так у 3.3В устройства ноги SPI "5v tollerant".
ну то что нога выдерживает 5 вольт, не означает что она при этом не потребляет больше положенного. Если брать входные ноги, то там есть варианты с подтяжкой, подтяжка тоже на 3.3 вольта, то есть подавая на нее 4 через резистор подтяжки идет ток, и так далее...
В общем я верю что в такой ситуации потребление может быть больше чем при работе на положенных уровнях.
SN74LVC3G34 - это вроде как просто буфер.
Цитата
А как именно упростить, подскажите пожалуйста.
ну как делают на 2 транзисторах драйвер для полевика, высокий уровень открывает 1, низкий 0. И открывается оно током, потом пофиг какие напряжения. Мне кажется должно сработать.
http://arduino.ru/sites/default/files/u493...-1176382739.gifНарод поправьте если я ошибаюсь
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.