Оглавление:
- Шаг 1. Подключение к сетевой шине I2C
- Шаг 2: Добавьте подтягивающие резисторы
- Шаг 3: запрограммируйте ведомое устройство
- Шаг 4: запрограммируйте мастера
Видео: Соединение двух OOBoards вместе с помощью I2C: 4 шага
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:54
В этом руководстве рассказывается, как подключить две OOBoard с помощью I2C.
Шаг 1. Подключение к сетевой шине I2C
На платах OOBoards есть две шины I2C, локальная шина и сетевая шина.
Код OOPIC - это, по сути, интерпретируемый язык, т.е. «код» хранится в EEPROM и читается / интерпретируется микропроцессором в реальном времени. EEPROM использует ЛОКАЛЬНУЮ шину I2C для связи с микроконтроллером. Если бы вы посмотрели на эту локальную шину на осциллографе, вы бы увидели постоянную болтовню. На платах OOBoards локальная шина - это то, что подключено к разъему I2C, это не обязательно то, что нам нужно. Шина NETWORK - это обычно шина, которая используется для связи с другими устройствами / опиками, на платах OOBoards эта шина не имеет разъема. Чтобы получить доступ к этой шине, вы должны припаять провода к контактам 42 и 37 микроконтроллера (обозначены на схеме N_SDA, N_SCL соответственно).
Шаг 2: Добавьте подтягивающие резисторы
После того, как SDA и SCL подключены к каждому процессору, две платы могут
соединить вместе, подключив SDA к SDA, SCL к SCL и подключив общий заземляющий провод между платами. Вам также понадобится подтягивающий резистор на каждой линии (я использовал 12 кОм, но это как раз то, что у меня было). Обратите внимание, что вам нужен только один подтягивающий резистор на линию, всего два резистора (а не 4).
Шаг 3: запрограммируйте ведомое устройство
Теперь, когда есть физические соединения, вам нужно будет запрограммировать подчиненный микроконтроллер. Я добавил код ниже, который должен вам помочь.
Dim SLAVE как новый oDDELinkDim LED как новый oDIO1Sub Main () & aposset наш адрес I2C на 2 (обратите внимание, он должен совпадать с удаленным адресом, который мы установили в главном коде) ooPIC. Node = 2 & apossetup a LED LED. IOLine = 5 LED. Direction = cvOutput & aposnow, свяжите выход нашего объекта DDELink с & aposthe LED и включите его… теперь автоматически, светодиод будет мигать SLAVE. Output. Link (LED) SLAVE. Operate = cvTrueEnd Sub
Шаг 4: запрограммируйте мастера
Наконец, запрограммируйте главный микроконтроллер. Обратите особое внимание на строки, которые устанавливают свойство DDELink. Location: если это не установлено правильно, это НЕ будет работать!
Dim Master As New oDDELinkDim wire As New oWireDim hz1 As New oBitSub Main () & aposlink 1-секундный таймер с битом, к которому мы можем получить доступ, и этот бит теперь будет переключаться один раз в секунду wire. Input. Link (ooPIC. Hz1) wire. Output. Link (hz1) wire. Operate = cvTrue & aposthis устанавливает адрес I2C нашего локального микроконтроллера, а интерфейс I2C не активен, пока адрес не установлен ooPIC. Node = 1 & aposnow, мы настраиваем наш объект DDELink, нашим входом является бит hz1 & aposnote, что объект также имеет свойство. Output, которое используется & apos, когда мы находимся в режиме приема Master. Input. Link (hz1) & aposthis - это I2C-адрес удаленного микроконтроллера, обратите внимание, что & apos в коде подчиненного устройства мы указываем ему адрес 2 Master. Node = 2 & aposugh… это дрянная часть, это «адрес» DDELink & aposobject в области памяти подчиненного устройства. Чтобы вычислить это число, & apos, нам нужно открыть и скомпилировать подчиненный код, затем перейти к View-> Compiled Code. Найдите что-то вроде: & aposL *. Construct. Begin; Dim as new oDDELink & aposwhere * - любое число и имя вашего объекта DDELink & apos в вашем подчиненном коде. Строка непосредственно под ним должна выглядеть примерно так: & aposC0020: 041; This.. Address & apost число справа от & apos: & apos - это адрес подчиненного объекта DDELink Master. Location = 41 & aposthis сообщает объекту, который мы будем отправлять data (т. е. копировать данные из нашего свойства. Input & aposto свойству slaves.output (обратите внимание, если вы установите это на получение, это будет наоборот) Master. Direction = cvSend & a включить его, но пока ничего не происходит … Master. Operate = cvTrue Сделайте & aposcheck, чтобы увидеть, передаем ли мы в данный момент данные If Master. Transmitting = cvFalse Тогда & apossetting это значение в 1 заставит ведущий отправить значение ведомому & aposnote, это автоматически сбрасывается в 0 после завершения передачи Master. Sync = 1 Конец, если LoopEnd Sub
Рекомендуемые:
Давайте вместе исправим Fitbit Charge 2. Линии на экране: 3 шага
Давайте вместе исправим Fitbit Charge 2. Линии на экране. Итак, примерно через 13 креплений после покупки моего первого Fitbit я начал получать линии, проходящие по экрану. Каждый день появлялся еще один, иногда чаще, чем один в день. Я очень хорошо ухаживал за своим Fitbit, я думал и не знал, почему это началось. однажды
Соединение TCP / IP через GPRS: как отправлять данные на сервер с помощью модуля SIM900A: 4 шага
Соединение TCP / IP через GPRS: Как отправлять данные на сервер с помощью модуля SIM900A: В этом руководстве я расскажу вам о том, как отправлять данные на сервер TCP с помощью модуля sim900. Также мы увидим, как мы можем получать данные от сервера к клиенту (модуль GSM)
Передача энергии с помощью двух катушек Тесла: 7 шагов (с изображениями)
Передача энергии с помощью двух катушек Тесла: с помощью этих катушек Тесла вы можете зажечь светодиод, подключенный к одному проводу. Энергия передается вправо от левой антенны. Генератор сигналов подключен к черной правой катушке (правая антенна). На 2 антенны энергия передается за счет индукции
Как уничтожить интернет-соединение Xbox 360, Wii и PS3 с помощью Nintendo Ds или DS Lite: 4 шага
Как уничтожить подключение к Интернету Xbox 360, Wii и PS3 с помощью Nintendo DS или DS Lite. В этой инструкции я научу вас, как легко потерять подключение к Интернету с Xbox 360, используя подключение Wi-Fi на DS. Кто-то подтвердил, что это работает для PS3, но у меня нет PS3, поэтому я верю ему на слово. Попробуйте выполнить те же действия, а
Управление серводвигателем RC с помощью Arduino и двух мгновенных переключателей: 4 шага
Управление серводвигателем RC с помощью Arduino и двух мгновенных переключателей: название говорит само за себя. Управление автомобильным серводвигателем RC с помощью Arduino и некоторых резисторов, перемычек и двух тактильных переключателей. Я сделал это на второй день, когда получил свой Arduino, поэтому я очень горжусь собой