• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

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

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 не нарушится.
 
Сверху Снизу