Доступ к мультиплексным контактам I2C и UART STM32F103 в arduino IDE
Я хочу получить доступ к мультиплексированным контактам I2C и UART в одной программе. Я программирую в Arduino IDE. Может кто-нибудь сказать мне, как получить доступ к одним и тем же контактам для разных функций?
@Jackie, 👍0
Обсуждение2 ответа
Чтобы использовать два разных периферийных устройства на одних и тех же контактах, вам необходимо инициализировать I2C и деинициализировать UART при использовании I2C и сделать противоположное при использовании UART.
Не возможно инициализировать два разных периферийных устройства на одних и тех же контактах одновременно.
Вы не можете. (Ну, можно, но нельзя).
I2C и UART являются электрически несовместимыми шинными системами. UART — это двухтактная система, тогда как I2C — это система с открытым стоком. Двухтактные соединения будут мешать выходам с открытым стоком, и I2C не будет работать.
Если вы хотите использовать оба устройства, вам потребуется дополнительное оборудование (и необходимые контакты управления) для физической изоляции различных устройств от соответствующей шины, когда они не используются.
Могу ли я использовать мультиплексор для изоляции устройств?, @Jackie
как вы хотите управлять мультиплексором?, @Juraj
Только если это специализированный мультиплексор, который знает и UART, и I2C. И я сомневаюсь, что такое существует., @Majenko
- Плата управления реле I2C от двух Arduino Uno
- Мост I2C-UART в виде прорыва или в корпусе DIP
- Последовательная связь между несколькими устройствами (или ардуино)
- I2C связь между Arduino Uno и Nodemcu32-s (ESP32)
- как отправить данные в Adafruit Bluefruit Feather (32u4) через Bluetooth?
- Варианты протокола для обмена данными между Arduino и ESP8266
- Как загрузить скетч на atmega328 через FTDI FT232RL UART и Arduino IDE?
- Связь между arduino nano и MCP3424 по I2c
Я хочу использовать последовательную отладку и MPU6050 в своем приложении. Все остальные контакты заняты теми или иными датчиками и другими устройствами. Остались только PB6 и PB7. Это UART и I2C, и мне нужны оба., @Jackie
А как вы предлагаете убрать устройство I2C при использовании UART, и убрать соединение UART при использовании I2C?, @Majenko
Если выбранный вами MCU не имеет необходимых вам ресурсов, значит, вы выбрали неправильный MCU., @Majenko
у вас есть сетевое соединение на MCU? Wi-Fi или Ethernet? используйте Telnet для вывода отладки, @Juraj
Нет, у меня нет сетевого подключения в MCU., @Jackie
@Majko Могу ли я сделать это в программе? Это подключение устройств I2C и UART к одним и тем же контактам и выполнение TDMA. например, в течение 100 мс устройство UART будет отправлять информацию, а в течение следующих 100 мс устройство I2C будет отправлять данные. Когда одно устройство отправляет данные, другое устройство не будет активным., @Jackie
это единственное устройство I2C, которое вы используете?, @Juraj
Да. это единственный, @Jackie