Სარჩევი:

წარმოგიდგენთ I2C– ს Zio მოდულებით და Qwiic– ით: 6 ნაბიჯი
წარმოგიდგენთ I2C– ს Zio მოდულებით და Qwiic– ით: 6 ნაბიჯი

ვიდეო: წარმოგიდგენთ I2C– ს Zio მოდულებით და Qwiic– ით: 6 ნაბიჯი

ვიდეო: წარმოგიდგენთ I2C– ს Zio მოდულებით და Qwiic– ით: 6 ნაბიჯი
ვიდეო: შესავალი LCD2004 LCD დისპლეი Arduino– ს I2C მოდულით 2024, ივლისი
Anonim
წარმოგიდგენთ I2C– ს Zio მოდულებით და Qwiic– ით
წარმოგიდგენთ I2C– ს Zio მოდულებით და Qwiic– ით

რობინ შარმამ თქვა:”ყოველდღიური ყოველდღიური მცირე გაუმჯობესება იწვევს განსაცვიფრებელ შედეგებს”. თქვენ ალბათ ფიქრობთ: "აჰ, კიდევ ერთი I2C პოსტი?". რა თქმა უნდა, ათასობით ინფორმაციაა, როდესაც საქმე I2C– ს ეხება. მაგრამ იყავით თვალყური, ეს არ არის მხოლოდ სხვა I2C სტატია. Qwiic Connect System და Zio პერიფერიული გარღვევის დაფები ნამდვილად I²C თამაშის შემცვლელია!

შესავალი

თუ თქვენ აშენებთ ელექტრონულ პროექტებს და აკეთებთ გასაოცარ საქმეებს, თქვენ ალბათ მიხვდებოდით, რომ რაც უფრო დიდი გახდება თქვენი პროექტები, თქვენი პურის დაფა გველის ორმოს ჰგავს (ცოტა არეულია?).

გარდა ამისა, თუ თქვენ გაქვთ მრავალი პროექტი, თქვენ ხარჯავთ უამრავ დროს პროექტებიდან პროექტზე მავთულის გადართვაზე.

ჩვენ შემქმნელნი ვართ, ამიტომ გვესმის ბრძოლა. ჩვენი უახლესი წვლილი OHS საზოგადოებაში არის მოდულური პროტოტიპების სისტემა სახელწოდებით ZIO, რომელიც იღებს Qwiic დამაკავშირებელ სისტემას. Qwiic არის ძალიან მოსახერხებელი გზა პროგრამირებადი მიკროსქემის გადასატანად სენსორებთან, გამტარებლებთან და გამანადგურებელ დაფებთან I²C საშუალებით.

ნაბიჯი 1: რა არის I²C და რატომ მოგვწონს იგი

რა არის I²C და რატომ მოგვწონს იგი
რა არის I²C და რატომ მოგვწონს იგი

I²C არის ყველაზე ფართოდ გამოყენებული მრავალ სამაგისტრო ავტობუსი, რაც იმას ნიშნავს, რომ სხვადასხვა ჩიპი შეიძლება იყოს დაკავშირებული ერთ ავტობუსთან. იგი გამოიყენება მრავალ აპლიკაციაში სამაგისტროსა და მონას შორის ან მრავალ სამაგისტრო და მონა მოწყობილობას შორის. მიკროკონტროლერებიდან, სმარტფონებამდე, სამრეწველო პროგრამებამდე, განსაკუთრებით ვიდეო მოწყობილობებისთვის, როგორიცაა კომპიუტერის მონიტორები. მისი მარტივად დანერგვა შესაძლებელია ბევრ ელექტრონულ დიზაინში (და ბოლო დროს კიდევ უფრო ადვილია Qwiic კონექტორით).

თუ ჩვენ უნდა აღვწეროთ I²C ორი სიტყვით, ჩვენ ალბათ გამოვიყენებთ სიმარტივეს და მოქნილობას.

I²C– ის ერთ – ერთი უდიდესი უპირატესობა სხვა საკომუნიკაციო პროტოკოლებთან შედარებით არის ის, რომ ეს არის ორი მავთულის ინტერფეისი, რაც იმას ნიშნავს, რომ მას სჭირდება მხოლოდ ორი სიგნალის მავთული, SDA (სერიული მონაცემთა ხაზი) და SCL (სერიული საათის ხაზი). ეს არ შეიძლება იყოს ყველაზე სწრაფი პროტოკოლი, მაგრამ ცნობილია, რომ ძალიან მოქნილია, რაც მოქნილობას იძლევა ავტობუსის ძაბვაში.

კიდევ ერთი მნიშვნელოვანი მახასიათებელი, რაც ამ ავტობუსს მიმზიდველს ხდის, არის ბატონსა და მონას შორის ურთიერთობა. მრავალი მოწყობილობა შეიძლება იყოს დაკავშირებული ერთ ავტობუსთან და არ არის საჭირო მოწყობილობებს შორის გაყვანილობის შეცვლა, რადგან თითოეულ მოწყობილობას აქვს უნიკალური მისამართი (სამაგისტრო ირჩევს მოწყობილობას კომუნიკაციისთვის).

ნაბიჯი 2: მოდით შევხედოთ უფრო ახლოს

მოდით შევხედოთ უფრო ახლოს
მოდით შევხედოთ უფრო ახლოს
მოდით შევხედოთ უფრო ახლოს
მოდით შევხედოთ უფრო ახლოს
მოდით შევხედოთ უფრო ახლოს
მოდით შევხედოთ უფრო ახლოს
მოდით შევხედოთ უფრო ახლოს
მოდით შევხედოთ უფრო ახლოს

მაშ, როგორ მუშაობს I²C? ადრე ჩვენ აღვნიშნეთ, რომ ერთ -ერთი ყველაზე მნიშვნელოვანი მახასიათებელია ძაბვის შემწეობა, ეს შესაძლებელია, რადგან I²C იყენებს ღია კოლექტორს (ასევე ცნობილია როგორც ღია სანიაღვრე) როგორც SDA, ასევე SCL საკომუნიკაციო ხაზებისთვის.

SCL არის საათის სიგნალი, ახდენს მონაცემთა გადაცემის სინქრონიზაციას მოწყობილობებს შორის I²C ავტობუსში და მას გენერირებს სამაგისტრო. სანამ SDA ატარებს მონაცემებს გასაგზავნად ან მისაღებად სენსორებისგან ან ავტობუსთან დაკავშირებული სხვა მოწყობილობებისგან.

სიგნალის გამომუშავება მიწასთან არის დაკავშირებული, რაც იმას ნიშნავს, რომ თითოეული მოწყობილობა დაბალ დონეზეა დაწესებული. სიგნალის მაღალი დონის აღსადგენად, ორივე ხაზი დაკავშირებულია პოზიტიურ ძაბვასთან დაძაბული რეზისტორის მეშვეობით, რომელიც უნდა შეწყდეს.

ZIO მოდულებით ჩვენ დაგვიფარეთ, ყველა ჩვენი დაფის დაფა აერთიანებს აუცილებელ გამწევ რეზისტორს.

I²C მიჰყვება შეტყობინების პროტოკოლს, რათა დაუკავშირდეს ოსტატს მონა მოწყობილობებთან. ორი ხაზი (SCL და SDA) საერთოა ყველა I²C მონაში, ავტობუსში ყველა მონადირე უსმენს შეტყობინებას.

შეტყობინების პროტოკოლი მიჰყვება თანდართულ სურათზე ნაჩვენებ ფორმატს:

შეიძლება ერთი შეხედვით რთული ჩანდეს, მაგრამ ჩვენ გვაქვს კარგი ამბავი. Arduino IDE– ს გამოყენებისას არის ბიბლიოთეკა Wire.h, რათა გაამარტივოს I theC შეტყობინებების პროტოკოლის ყველა პარამეტრი.

დაწყების მდგომარეობა წარმოიქმნება, როდესაც მონაცემთა ხაზი (SDA) მცირდება დაბალი, ხოლო საათის ხაზი (SCL) ჯერ კიდევ მაღალი. არდუინოს ინტერფეისზე პროექტის შექმნისას ჩვენ ნამდვილად არ გვჭირდება ფიქრი დაწყების მდგომარეობის გენერირებაზე, ის ინიცირებული იქნება კონკრეტული ფუნქციით (Wire.beginTransmission (slaveAddress)).

გარდა ამისა, ეს ფუნქცია ასევე იწყებს გადაცემას კონკრეტული მონა მისამართის საშუალებით. მონა აირჩიოს საერთო ავტობუსში, სამაგისტრო აგრძელებს გადასცემს მონას კომუნიკაციისთვის. მას შემდეგ, რაც მისამართი დაყენებულია შესაბამის მონათან კომუნიკაციისთვის, დე შეტყობინებას მოყვება წაკითხვის ან ჩაწერის ბიტი, არჩეული რეჟიმიდან გამომდინარე.

ხსნარი გასცემს პასუხს აღიარებით (ACK ან NACK), ხოლო ავტობუსში სხვა მონა მოწყობილობებს აქვთ ფასდაკლება დანარჩენ მონაცემებზე შეტყობინების დასრულებამდე და ავტობუსი თავისუფალია. ACK– ს შემდეგ, მონების შიდა მისამართების რეგისტრაციის თანმიმდევრობა აგრძელებს გადაცემას.

როდესაც მონაცემები იგზავნება, გადაცემის შეტყობინება მთავრდება გაჩერების პირობით. გადაცემის დასრულების მიზნით მონაცემთა ხაზი იცვლება მაღალი და საათის ხაზი რჩება მაღალი.

ნაბიჯი 3: I²C და ZIO

I²C და ZIO
I²C და ZIO

ჩვენ აღმოვაჩინეთ, რომ უკეთესი იქნებოდა ყველა ზემოთ მოყვანილი ინფორმაციის დაგეგმვა ოსტატსა (მაგ. ზუინო, ჩვენი მიკრო) და მონაებს შორის (ანუ ZIO გარღვევის დაფები) საუბარში.

ამ ძირითად მაგალითში ჩვენ ვიყენებთ ZIO TOF მანძილის სენსორს და ZIO OLED ეკრანს. TOF იძლევა მანძილზე ინფორმაციას, ხოლო ZIO Oled აჩვენებს მონაცემებს. გამოყენებული კომპონენტები და მოწყობილობები:

  • ZUINO M UNO - ოსტატი
  • ZIO OLED ჩვენება - Slave_01
  • ZIO TOF მანძილის სენსორი - Slave_02
  • Qwiic კაბელი - მარტივი კავშირი I²C მოწყობილობებისთვის

აი, რამდენად ადვილია დაფების ერთმანეთთან დაკავშირება Qwiic– ის გამოყენებით, არ არის საჭირო დაფა, დამატებითი კაბელები დაყენებული ან ZUINO ქინძისთავები. ZUINO– ს სერიული საათი და მონაცემთა ხაზი ავტომატურად უკავშირდება დისტანციის სენსორს და OLED– ს Qwiic კონექტორის გამოყენებით. ორი სხვა კაბელი არის 3V3 და GND.

უპირველეს ყოვლისა, მოდით შევხედოთ საჭირო ინფორმაციას, ბატონთან მონაებთან კომუნიკაციისთვის ჩვენ უნდა ვიცოდეთ უნიკალური მისამართები.

მოწყობილობა: ZIO დისტანციის სენსორი

  • ნაწილის ნომერი: RFD77402
  • I2C მისამართი: 0x4C
  • მონაცემთა ცხრილის ბმული

მოწყობილობა: ZIO OLED ეკრანი

  • ნაწილის ნომერი: SSD1306
  • მისამართი: 0x3C
  • მონაცემთა ცხრილის ბმული

მონა მოწყობილობების უნიკალური მისამართის საპოვნელად გახსენით მოწოდებული მონაცემთა ცხრილი. დისტანციის სენსორისთვის მისამართი მოცემულია მოდულის ინტერფეისის განყოფილებაში. თითოეულ სენსორს ან კომპონენტს აქვს განსხვავებული მონაცემთა ფურცელი, სადაც მოცემულია სხვადასხვა ინფორმაცია. ზოგჯერ შეიძლება რთული იყოს მისი პოვნა 30 გვერდიანი მონაცემების ფურცელზე (მინიშნება: გახსენით პოვნა ინსტრუმენტი PDF მნახველზე და ჩაწერეთ "მისამართი" ან "მოწყობილობის ID" სწრაფი ძიებისთვის).

ახლა, როდესაც თითოეული მოწყობილობის უნიკალური მისამართი ცნობილია, მონაცემების წასაკითხად/ დასაწერად, შიდა რეგისტრის მისამართი უნდა იყოს განსაზღვრული (ასევე მონაცემთა ფურცლიდან). ZIO Distance სენსორის მონაცემთა ფურცლის დათვალიერებისას, მანძილის მისაღებად მისამართი შეესაბამება 0x7FF.

ამ კონკრეტულ შემთხვევაში ჩვენ ნამდვილად არ გვჭირდება ეს ინფორმაცია სენსორის გამოყენებისათვის, როგორც ამას ბიბლიოთეკა უკვე აკეთებს.

შემდეგი ნაბიჯი, ჩააბარეთ კოდი. ZUINO M UNO თავსებადია Arduino IDE– სთან, რაც დაყენებას ბევრად აადვილებს. ამ პროექტისათვის საჭირო ბიბლიოთეკები არის:

  • მავთული.ჰ
  • Adafruit_GFX.h
  • Adafruit_SSD1306.ს
  • SparkFun_RFD77402_Arduino_Library.h

Wire.h არის არდუინოს ბიბლიოთეკა, ორი ადაფრუტის ბიბლიოთეკა გამოიყენება OLED– ისთვის და ბოლო გამოიყენება დისტანციის სენსორისთვის. გადახედეთ ამ გაკვეთილს, თუ როგორ დაუკავშიროთ *.zip ბიბლიოთეკები Arduino IDE– ს.

კოდის დათვალიერებისას, ჯერ უნდა გამოცხადდეს ბიბლიოთეკები, ასევე OLED– ის მისამართი.

კონფიგურაციაში () გადაცემა იწყება და ტექსტი ნაჩვენებია მანძილის სენსორის ფუნქციონირებისთვის.

მარყუჟი () იღებს გაზომვებს მანძილზე და OLED ბეჭდავს მას.

შეამოწმეთ წყაროს კოდი github ბმულზე.

ორივე გამყოფი დაფის გამოყენება საკმაოდ ადვილია ყველა თვალსაზრისით. აპარატურის მხრივ, Qwiic კონექტორი აპარატურის დაყენებას უფრო სწრაფად და ბევრად ნაკლებად ბინძურს ხდის, ვიდრე პურის დაფისა და ჯუმბერის მავთულის არსებობა. ფირმისთვის, I2C კომუნიკაციისთვის შესაბამისი ბიბლიოთეკების გამოყენებით, სენსორი და ეკრანი კოდს ბევრად უფრო ამარტივებს.

ნაბიჯი 4: რა არის კაბელის მაქსიმალური სიგრძე?

მაქსიმალური სიგრძე დამოკიდებულია SDA და SCL- ისთვის გამოყენებულ გამწევ რეზისტორებზე და საკაბელო ტევადობაზე. რეზისტორები ასევე განსაზღვრავენ ავტობუსის სიჩქარეს, რაც უფრო დაბალია ავტობუსის სიჩქარე, მით უფრო გრძელია საკაბელო ლიმიტი. საკაბელო ტევადობა ზღუდავს ავტობუსში მოწყობილობების რაოდენობას, ასევე კაბელის სიგრძეს. ტიპიური პროგრამები ზღუდავს მავთულის სიგრძეს 2.5-3.5 მ-მდე (9-12 ფუტი), მაგრამ არსებობს ცვალებადობა გამოყენებული კაბელის მიხედვით. ცნობისთვის, I2C პროგრამებზე მაქსიმალური სიგრძე დაფარული 22 AWG გრეხილი წყვილი კაბელების გამოყენებით არის დაახლოებით 1 მ (3 ფუტი) 100 კბუუნტზე, 10 მ (30 ფუტი) 10 კბუზე.

არის საიტები, როგორიცაა მაგამი ან ვოლფრამალფა, რომელიც საშუალებას გაძლევთ შეაფასოთ კაბელის სიგრძე.

ნაბიჯი 5: როგორ დააკავშიროთ მრავალი მოწყობილობა იმავე ავტობუსში?

როგორ დააკავშიროთ მრავალი მოწყობილობა იმავე ავტობუსში?
როგორ დააკავშიროთ მრავალი მოწყობილობა იმავე ავტობუსში?
როგორ დააკავშიროთ მრავალი მოწყობილობა იმავე ავტობუსში?
როგორ დააკავშიროთ მრავალი მოწყობილობა იმავე ავტობუსში?

I2C არის სერიული ავტობუსი, სადაც ყველა მოწყობილობა დაკავშირებულია საერთო ავტობუსთან. Qwiic კონექტორით სხვადასხვა ბრეაკოუტ დაფები შეიძლება ერთმანეთთან იყოს დაკავშირებული Qwiic კონექტორის გამოყენებით. თითოეულ დაფას აქვს მინიმუმ 2 Qwiic კონექტორი.

ჩვენ შევქმენით სხვადასხვა დაფები Qwiic და I2C შეზღუდვების მოსაგვარებლად. Zio Qwiic ადაპტერის დაფა გამოიყენება Qwiic მოწყობილობების მეშვეობით Qwiic კონექტორის გარეშე დასაკავშირებლად, Qwiic– ის გამოყენებით breadboard– ის მამრობითი სათაურის კაბელისთვის. ეს მარტივი ხრიკი ქმნის შეუზღუდავ შესაძლებლობებს.

ავტობუსის ან ხის ქსელში სხვადასხვა მოწყობილობების დასაკავშირებლად ჩვენ გამოვიყვანეთ Zio Qwiic Hub.

ბოლოს და ბოლოს, Zio Qwiic MUX საშუალებას იძლევა ორი ან მეტი მოწყობილობის დაკავშირება ერთი და იმავე მისამართის გამოყენებით.

ნაბიჯი 6: რა არის I2C შეწყვეტა?

I2C საჭიროა შეწყვეტის მიზნით, ამიტომ ხაზი თავისუფალია სხვა მოწყობილობების დასამატებლად. ეს შეიძლება ცოტა დამაბნეველი იყოს, რადგან შეწყვეტის ტერმინი ჩვეულებრივ გამოიყენება ავტობუსების ამწევ რეზისტორების აღსაწერად (ნაგულისხმევი მდგომარეობის უზრუნველსაყოფად, ამ შემთხვევაში მიკროსქემის დენის მიწოდებისთვის). Zuino დაფებისთვის, რეზისტორის მნიშვნელობა არის 4.7kΩ.

თუ შეწყვეტა გამოტოვებულია, ავტობუსში საერთოდ არ იქნება კომუნიკაცია- ოსტატი ვერ შეძლებს დაწყების მდგომარეობის გენერირებას, ამიტომ შეტყობინება არ გადაეცემა მონაებს.

დამატებითი ინფორმაციისთვის და Zio შესაძლებლობებისთვის შეამოწმეთ უახლესი Zio პროდუქტები. ამ სტატიის მიზანია ახსნას I²C კომუნიკაციის საფუძვლები და როგორ მუშაობს იგი Zio და Qwiic კონექტორთან. დაელოდეთ სხვა განახლებებს.

გირჩევთ: