Агуулгын хүснэгт:

I2C: 4 алхамыг ашиглан хоёр OOBoards -ийг хооронд нь холбох
I2C: 4 алхамыг ашиглан хоёр OOBoards -ийг хооронд нь холбох

Видео: I2C: 4 алхамыг ашиглан хоёр OOBoards -ийг хооронд нь холбох

Видео: I2C: 4 алхамыг ашиглан хоёр OOBoards -ийг хооронд нь холбох
Видео: How to Make PLC LCD HMI || FLProg 2024, Арваннэгдүгээр
Anonim
I2C ашиглан хоёр OOBoards -ийг хооронд нь холбох
I2C ашиглан хоёр OOBoards -ийг хооронд нь холбох

Энэхүү зааварчилгаа нь I2C ашиглан хоёр OOBoards -ийг хэрхэн холбохыг хамарна.

Алхам 1: I2C сүлжээний автобусанд холбогдох

I2C сүлжээний автобусанд холбогдож байна
I2C сүлжээний автобусанд холбогдож байна
I2C сүлжээний автобусанд холбогдож байна
I2C сүлжээний автобусанд холбогдож байна

OOBoards дээр хоёр I2C автобус, орон нутгийн автобус, сүлжээний автобус байдаг.

OOPIC код нь үндсэндээ орчуулагдсан хэл юм, өөрөөр хэлбэл "код" нь EEPROM -д хадгалагдаж, микропроцессор бодит цаг хугацаанд уншиж/тайлбарладаг. EEPROM нь микроконтроллертой холбогдохын тулд LOCAL I2C автобусыг ашигладаг. Хэрэв та осциллоскопоор орон нутгийн энэ автобусыг харах юм бол тасралтгүй шуугилдахыг харах болно. OOBoards самбар дээр орон нутгийн автобус нь I2C холбогчтой холбогддог бөгөөд энэ нь бидний хүссэн зүйл биш юм. NETWORK автобус нь ихэвчлэн бусад төхөөрөмж/oopics -тэй харилцахад ашигладаг автобус бөгөөд OOBoards дээр энэ автобус нь холбогчгүй байдаг. Энэ автобусанд нэвтрэхийн тулд та микроконтроллерийн 42 ба 37 -р зүү рүү утсыг гагнах ёстой (схемд N_SDA, N_SCL гэж тэмдэглэсэн).

Алхам 2: Татах эсэргүүцэл нэмэх

Процессор бүрт SDA ба SCL холболтыг хийсний дараа хоёр самбарыг холбож болно

SDA -ийг SDA -д, SCL -ийг SCL -д холбох, самбаруудын хооронд нийтлэг газардуулгын утсыг холбох замаар хооронд нь холбох боломжтой. Мөр бүр дээр татах эсэргүүцэл хэрэгтэй болно (би 12к ашигладаг байсан, гэхдээ энэ бол миний хажууд байсан зүйл юм). Нийт хоёр эсэргүүцэлтэй (4 биш) нэг мөрөнд зөвхөн нэг татах эсэргүүцэл хэрэгтэй гэдгийг анхаарна уу.

Алхам 3: Боолыг програмчлах

Одоо физик холболтууд байгаа тул та боолын микроконтроллерыг програмчлах хэрэгтэй болно. Таныг эхлүүлэхийн тулд би доор хэдэн код нэмсэн.

Бяцхан боол шинэ oDDELinkDim LED нь шинэ oDIO1Sub Main () ба бидний I2C хаягийг 2 болгож тохируулна уу (энэ нь мастер кодонд тохируулсан алсын зай ба апостресстэй таарч байх ёстой) ooPIC. Node = 2 & LED LED. IOLine = 5 LED. = cvOutput & aposnow, бидний DDELink объектын гаралтыг & aposthe LED -тэй холбож асаагаарай … одоо автоматаар LED SLAVE. Output. Link (LED) SLAVE. Operate = cvTrueEnd дэд

Алхам 4: Мастерыг програмчлах

Эцэст нь мастер микроконтроллерыг програмчилна уу. DDELink -ийн. Location шинж чанарыг тохируулсан мөрүүдэд анхаарлаа хандуулаарай: Хэрэв үүнийг зөв тохируулаагүй бол энэ нь ажиллахгүй болно!

Дим Мастер Шинэ oDDELinkDim утас шиг Шинэ oWireDim hz1 Шинэ Шинэ oBitSub Main () ба 1 секундын таймерыг бид хандах боломжтой хэсэг рүү холбоно & aposthis бит одоо секунд тутамд нэг удаа сэлгэнэ. Оролт. Link (ooPIC. Hz1) утас Link (hz1) утас. Operate = cvTrue & aposthis нь манай локал микроконтроллерын I2C хаягийг тогтоодог бөгөөд хаягийг тохируулах хүртэл I2C интерфэйс aposthe идэвхгүй байдаг. Объект нь бас. Output шинж чанарыг ашигладаг бөгөөд бид хүлээн авах горимд байх үед Master. Input. Link (hz1) & aposthis бол алсын микроконтроллерийн I2C хаяг бөгөөд боолын кодыг & aposin хийснээр бид 2 хаягтай байхыг хэлдэг. Master. Node = 2 & aposugh… энэ бол муухай хэсэг, энэ бол DDELink ба aposobject -ийн боол ба aposs санах ойн орон зайн "хаяг" юм. Энэ дугаарыг олж мэдэхийн тулд & aposwe нь боолын кодыг нээж хөрвүүлэх шаардлагатай бөгөөд дараа нь View-> Эмхэтгэсэн кодыг авах хэрэгтэй. & aposlook: & aposL *. Construct. Begin; Шинэ oDDELink шиг бүдгэрүүлээрэй & aposwhere * нь ямар ч тоо бөгөөд энэ нь таны DDELink объектын нэр бөгөөд боолын кодоо дарна уу. Дараах мөрөнд дараах зүйлийг унших ёстой: & aposC0020: 041; Энэ … & apos -ийн баруун талд байгаа хаяг & aposthe: & apos бол DDELink объектын эзэн Master. Location = 41 & aposthis нь бидний илгээж буй объектыг хэлнэ. өгөгдөл (өөрөөр хэлбэл, манай. Input property & aposto of the slaves.output property -аас өгөгдлийг хуулах = cvTrue Do & aposcheck, хэрэв бид Master. Transmitting = cvFalse Дараа нь өгөгдөл дамжуулж байгаа эсэхийг харахын тулд энэ утгыг 1 болгож авснаар мастер нь боол руу илгээгдэх болно. = 1 бол LoopEnd Sub байвал дуусна

Зөвлөмж болгож буй: