Вопрос Переключатель между шинами данных

pazyzy

New member
Всем привет.
Что лучше всего использовать как переключатель между двумя шинами данных?
Есть контроллер MCP2515, которой через TJA1050 общается с CAN шиной автомобиля (2 провода). Хотелось бы не устанавливая ещё одного MCP получить данные по другой CAN шине. Для этого нужно вход переключить с одной шины на другую.
Screenshot_2018-05-30-00-49-19-450_com.android.chrome.png
Можно ли это сделать заняв всего одну (единственную свободную) ногу ESP?
И конечно оно быть достаточно надежно, чтобы входы не замкнулись, даже если что случится.
Спасибо.
 

pazyzy

New member
nikolz, я думал коммутировать перед TJA1050 (т.е. один TJA1050 на плате), но может можно и после (тогда два TJA1050 на плате, он обвязки не требуетб не сложно). Только не знаю, как они себя будут вести, если к ним ничего не подключено. Поэтому думал про "до".
Чего желаю добиться - избежать усложнения кода (управление двумя контроллерами), не увеличивать занятое место на плате (MCP2515 требует обвязки: резонатор, конденсаторы, преобразование логини 5V в 3.3V) и самое главное - экономия ног ESP (один MCP2515 по SPI с одним interrupt (5 ног), SD карточка (+1), модем (+2), управление питанием (+1), TX для дебага). Итого у меня осталась только одна D3 свободная. А для общения с MCP нужно один Chip Select и один Interrupt.
То, что я пропущу какие-то сообщения - не важно. ESP будет контролировать когда и что слушать. Поэтому в возникла идея про коммутацию с помощью одной ноги.
 
Последнее редактирование:

=AK=

New member
nikolz, я думал коммутировать перед TJA1050 (т.е. один TJA1050 на плате), но может можно и после (тогда два TJA1050 на плате, он обвязки не требуетб не сложно). Только не знаю, как они себя будут вести, если к ним ничего не подключено. Поэтому думал про "до".
Надо ставить два шинника CAN (TJA1050), иначе у вас все рано или поздно выгорит. Шинники CAN выдерживают всяческие издевательства со стороны CAN, а обычные микросхемы - нет.

Ставьте мультиплексор 74HC157 между шинниками и контроллером MCP.
 

nikolz

Well-known member
Надо ставить два шинника CAN (TJA1050), иначе у вас все рано или поздно выгорит. Шинники CAN выдерживают всяческие издевательства со стороны CAN, а обычные микросхемы - нет.

Ставьте мультиплексор 74HC157 между шинниками и контроллером MCP.
тоже хороший вариант
-----------------------
еще можно сделать CAN на ESP и выкинуть MCP а 4 пина на 2 шт TJA1050
---------------------
еще можно отключать питание у TJA1040
 
Последнее редактирование:

pazyzy

New member
Надо ставить два шинника CAN (TJA1050), иначе у вас все рано или поздно выгорит. Шинники CAN выдерживают всяческие издевательства со стороны CAN, а обычные микросхемы - нет.

Ставьте мультиплексор 74HC157 между шинниками и контроллером MCP.
Спасибо. Учту.
Почитал про 74HC157 - он, получается не просто "пробрасывает" сигнал, он еще и по своим уровням логики работает, которые могут не совпадать с TJA1050 и MCP2515?

тоже хороший вариант
-----------------------
еще можно сделать CAN на ESP и выкинуть MCP а 4 пина на 2 шт TJA1050
---------------------
еще можно отключать питание у TJA1040
SPI еще и на microSD работает, поэтому 4 пина не освободится, только 2 :)

Надо поставить TJA1040 и управлять по входу STB
Коммутаторов не надо вообще.
STB на 1040 как и S на 1050 стремное какое-то, они их вводят в что-то вроде режим сна, но позволяют проснутся по сигналу RX, а S - он только перестает передавать в шину.
STB (1040) - уводит в standby, но он слушает RXD пин, который уже думает, что общается с другим,
S (1050) - silent mode. In the silent mode, the transmitter is disabled. All other IC functions continue to operate. The silent mode is selected by connecting pin S to VCC and can be used to prevent network communication from being blocked, due to a CAN controller which is out of control.
Т.е. он также продолжает работать, но в CAN ничего не передает.

По поводу 74HC157 (полагая, что мне нужен этот SN74HC157 от Texas Instruments: http://www.ti.com/lit/ds/symlink/sn74hc157.pdf).
G - к земле,
A/B - управление. Если Low, то работает канал A (TJA-1), если High, то работает канал B (TJA-2).
sn74hc157.png

Если до сих пор все верно, то
1. Нужно разобраться с уровнями логики, по которой общаются MCP и TJA и совпадает ли она с 74HC157.
2. Добавить 3.3V - 5V преобразователь логики (я его на BSS138W делаю), т.к. ESP отдает 3.3В, а это ну совсем на грани для 74HC157 при питании от 5В (при 4.5В Vin high считается как 3.15В, т.е. может и не хватить)

Поправьте, пожалуйста, если где не прав.
А есть ли коммутатор без преобразования логики?
 

nikolz

Well-known member
Спасибо. Учту.
Почитал про 74HC157 - он, получается не просто "пробрасывает" сигнал, он еще и по своим уровням логики работает, которые могут не совпадать с TJA1050 и MCP2515?


SPI еще и на microSD работает, поэтому 4 пина не освободится, только 2 :)


STB на 1040 как и S на 1050 стремное какое-то, они их вводят в что-то вроде режим сна, но позволяют проснутся по сигналу RX, а S - он только перестает передавать в шину.
STB (1040) - уводит в standby, но он слушает RXD пин, который уже думает, что общается с другим,
S (1050) - silent mode. In the silent mode, the transmitter is disabled. All other IC functions continue to operate. The silent mode is selected by connecting pin S to VCC and can be used to prevent network communication from being blocked, due to a CAN controller which is out of control.
Т.е. он также продолжает работать, но в CAN ничего не передает.

По поводу 74HC157 (полагая, что мне нужен этот SN74HC157 от Texas Instruments: http://www.ti.com/lit/ds/symlink/sn74hc157.pdf).
G - к земле,
A/B - управление. Если Low, то работает канал A (TJA-1), если High, то работает канал B (TJA-2).
Посмотреть вложение 6392

Если до сих пор все верно, то
1. Нужно разобраться с уровнями логики, по которой общаются MCP и TJA и совпадает ли она с 74HC157.
2. Добавить 3.3V - 5V преобразователь логики (я его на BSS138W делаю), т.к. ESP отдает 3.3В, а это ну совсем на грани для 74HC157 при питании от 5В (при 4.5В Vin high считается как 3.15В, т.е. может и не хватить)

Поправьте, пожалуйста, если где не прав.
А есть ли коммутатор без преобразования логики?
Если ставите преобразователь уровней то тогда проще вариант на двух 74HC00.
 

nikolz

Well-known member
Спасибо. Учту.
Почитал про 74HC157 - он, получается не просто "пробрасывает" сигнал, он еще и по своим уровням логики работает, которые могут не совпадать с TJA1050 и MCP2515?


SPI еще и на microSD работает, поэтому 4 пина не освободится, только 2 :)


STB на 1040 как и S на 1050 стремное какое-то, они их вводят в что-то вроде режим сна, но позволяют проснутся по сигналу RX, а S - он только перестает передавать в шину.
STB (1040) - уводит в standby, но он слушает RXD пин, который уже думает, что общается с другим,
S (1050) - silent mode. In the silent mode, the transmitter is disabled. All other IC functions continue to operate. The silent mode is selected by connecting pin S to VCC and can be used to prevent network communication from being blocked, due to a CAN controller which is out of control.
Т.е. он также продолжает работать, но в CAN ничего не передает.

По поводу 74HC157 (полагая, что мне нужен этот SN74HC157 от Texas Instruments: http://www.ti.com/lit/ds/symlink/sn74hc157.pdf).
G - к земле,
A/B - управление. Если Low, то работает канал A (TJA-1), если High, то работает канал B (TJA-2).
Посмотреть вложение 6392

Если до сих пор все верно, то
1. Нужно разобраться с уровнями логики, по которой общаются MCP и TJA и совпадает ли она с 74HC157.
2. Добавить 3.3V - 5V преобразователь логики (я его на BSS138W делаю), т.к. ESP отдает 3.3В, а это ну совсем на грани для 74HC157 при питании от 5В (при 4.5В Vin high считается как 3.15В, т.е. может и не хватить)

Поправьте, пожалуйста, если где не прав.
А есть ли коммутатор без преобразования логики?
для SN74HC157 преобразователя не надо он работает от 2 вольт.
 

pazyzy

New member
Спасибо за ответ.
для SN74HC157 преобразователя не надо он работает от 2 вольт.
В даташите (http://www.ti.com/lit/ds/symlink/sn74hc157.pdf страница 3) написано что при питании 4.5В логика high voltage считается 3.15В. Я не нашел отдельной цифры для управления A/B, но полагаю что она така я же. У меня 5В для этой группы компонент, получается что напрямую от ESP управлять не получится.

Я не на ту цифру смотрю?
 

Вложения

  • 55.5 KB Просмотры: 6

nikolz

Well-known member
Спасибо за ответ.

В даташите (http://www.ti.com/lit/ds/symlink/sn74hc157.pdf страница 3) написано что при питании 4.5В логика high voltage считается 3.15В. Я не нашел отдельной цифры для управления A/B, но полагаю что она така я же. У меня 5В для этой группы компонент, получается что напрямую от ESP управлять не получится.

Я не на ту цифру смотрю?
Надо брать HCT
upload_2018-5-30_20-29-53.png

upload_2018-5-30_20-33-10.png
 

pazyzy

New member
nikolz, =AK=,

Спасибо. Разобрался.
Кстати, на схеме выше у меня перепутаны TX и RX.
TX на TJA1050 это вход
RXн а TJA1050 это выход

TXCAN на MCP2515 это выход
RXCAN на MCP2515 это вход

По уровням логики:

Данные по TJA1050:
По TXD: - вход: V(high) более 2V, V(low) менее 0.8V.
По RXD - выход: информации в даташите не нашел. Полагаю что так же.
2. TJA.png
По MCP2515:
RXCAN - вход: V(high) более 2V, V(low) менее 0,75V
TXCAN: - выход: V(high) 4.3V, V(low) 0.6V
3.MCP.png
По sn74hct157 (http://www.ti.com/lit/ds/symlink/sn74hct157.pdf)
Вход high - 2V, вход low до 0.8
Выход high - от 4,4В, выход low до 0,33В.

1. sn74hct157.png
Т.е. все согласовано.

Схему поправил. RX и TX местами поменял, неиспользованные пины подтянуты к +5V.
4. schema.png

D3 ножка это I/O0 (ноль), поэтому должна для старта контролера быть подтянута к +3,3V.
Получается, при старте A/B будет положительный и работает канал B.
Для подстраховки, на Sleep TJA-1 будет приходить +, чтобы ничего не передавал, на TJA-2 - земля (активный режим).

При подаче на A/B low, включается канал A, на TJA-1 sleep придет low, он включится, на TJA-2 - +5V, он передавать ничего не будет.

Остается надеяться что sn74hct157 достаточно быстрая и общение между MCP и TJA не нарушится.
 
Сверху Снизу