ერთ-ერთ წინა სტატიაში ჩვენ უკვე მოკლედ შევეხეთ ცვლადი რეესტრის გამოყენებას, კერძოდ, 74HC595. მოდით, უფრო დეტალურად გავეცნოთ ამ მიკროსქემასთან მუშაობის შესაძლებლობებს და პროცედურას.
აუცილებელია
- - არდუინო;
- - ცვლის რეესტრი 74HC595;
- - სადენების დამაკავშირებელი.
ინსტრუქციები
Ნაბიჯი 1
Shift რეგისტრი 74HC595 და სხვა მსგავსი გამოიყენება მოწყობილობებად სერიული მონაცემების პარალელურად გადასაყვანად და ასევე შეიძლება გამოყენებულ იქნას როგორც "ჩამკეტი" მონაცემთა გადასაცემად.
Pinout (pinout) ნაჩვენებია მარცხენა ფიგურაზე. მათი მიზანი შემდეგია.
Q0… Q7 - მონაცემთა პარალელური შედეგები;
GND - ადგილზე (0 V);
Q7 '- სერიული მონაცემების გამომავალი;
^ MR - გადატვირთვის საძიებო სისტემა (აქტიური დაბალია);
SHcp - ცვლის რეესტრის საათის შეყვანა;
STcp - საათის პულსის "ჩამკეტი" შეყვანა;
^ OE - გამომავალი ჩართვა (აქტიური დაბალია);
Ds - სერიული მონაცემების შეყვანა;
Vcc - ელექტრომომარაგება +5 ვ.
სტრუქტურულად მიკროციკლი მზადდება რამდენიმე ტიპის შემთხვევაში; მე გამოვიყენებ სურათზე ნაჩვენებ სურათს - გამომავალს - იმიტომ უფრო ადვილია პურის დაფის გამოყენება.
ნაბიჯი 2
მოკლედ გავიხსენო SPI სერიული ინტერფეისი, რომელსაც გამოვიყენებთ მონაცემების ცვლის რეესტრში გადასაცემად.
SPI არის ოთხი მავთულის ორმხრივი სერიული ინტერფეისი, რომელშიც ბატონი და მონა მონაწილეობენ. ჩვენს შემთხვევაში ბატონი იქნება Arduino, მონა იქნება რეგისტრირებული 74HC595.
Arduino– ს განვითარების გარემოს აქვს ინტეგრირებული ბიბლიოთეკა SPI ინტერფეისზე მუშაობისთვის. მისი გამოყენებისას გამოიყენება დასკვნები, რომლებიც აღნიშნულია ნახატზე:
SCLK - SPI საათის გამომავალი;
MOSI - მონაცემები სამაგისტროდან მონაზე;
MISO - მონაცემები მონადან სამაგისტროდან;
SS - მონათა შერჩევა.
ნაბიჯი 3
მოდით ერთად მოვათავსოთ წრე, როგორც სურათზე.
მე ასევე დავაკავშირებ ლოგიკის ანალიზატორს ცვლის რეესტრის მიკროსქემის ყველა ქინძისთავთან. მისი დახმარებით ვნახავთ, რა ხდება ფიზიკურ დონეზე, რა სიგნალები მიდის სად, და გავარკვევთ, რას ნიშნავს ისინი. ეს უნდა გამოიყურებოდეს ფოტოს მსგავსი.
ნაბიჯი 4
მოდით დავწეროთ ესკიზი ასე და ჩავტვირთოთ Arduino მეხსიერებაში.
ცვლადი PIN_SPI_SS არის შიდა სტანდარტული მუდმივა, რომელიც შეესაბამება Arduino- ს პინს "10", როდესაც ის გამოიყენება SPI ინტერფეისის სამაგისტროდ, რომელსაც აქ ვიყენებთ. პრინციპში, ჩვენ შეგვიძლია ისევე ვიყენოთ ნებისმიერი სხვა ციფრული პინი Arduino- ზე; მაშინ ჩვენ უნდა გამოვაცხადოთ იგი და დავაყენოთ მისი მუშაობის რეჟიმი.
ამ ქინძისთავის დაბლა შეკვრით, ჩვენ ვააქტიურებთ ჩვენი ცვლის რეესტრს გადაცემის / მიღებისთვის. გადაცემის შემდეგ, ჩვენ კვლავ ვმატებთ ძაბვას HIGH- ზე და გაცვლა მთავრდება.
ნაბიჯი 5
მოდით, ჩვენი წრე სამუშაოდ გადავაქციოთ და ვნახოთ, რას გვიჩვენებს ლოგიკის ანალიზატორი. დროის დიაგრამის ზოგადი ხედი ნაჩვენებია ნახატზე.
ლურჯი დატეხილი ხაზი აჩვენებს 4 SPI ხაზს, წითელ წრფივ ხაზს აჩვენებს ცვლადი რეესტრის პარალელური მონაცემების 8 არხს.
დროის სკალაზე A არის ის მომენტი, როდესაც რიცხვი "210" გადადის ცვლის რეესტრში, B არის მომენტი, როდესაც იწერება რიცხვი "0", C არის ციკლი თავიდანვე გამეორებული.
როგორც ხედავთ, A- დან B- მდე - 10,03 მილიწამი და B- დან C - 90,12 მილიწამი, თითქმის როგორც ესკიზში ვკითხეთ. 0, 03 და 0, 12 ms– ში მცირე დამატება არის Arduino– სგან სერიული მონაცემების გადატანის დრო, ამიტომ აქ ზუსტად 10 და 90 ms არ გვაქვს.
ნაბიჯი 6
მოდი უფრო ახლოს გავეცნოთ A განყოფილებას.
ზედა ნაწილში გრძელი პულსია, რომლითაც Arduino იწყებს გადაცემას SPI-ENABLE ხაზით - მონათა შერჩევა. ამ დროს იწყება SPI-CLOCK საათის იმპულსების წარმოქმნა (ზემოდან მეორე ხაზი), 8 ცალი (1 ბაიტის გადასაცემად).
ზემოდან შემდეგი ხაზია SPI-MOSI - მონაცემები, რომელსაც Arduino- დან ცვლის რეესტრში გადავცემთ. ეს არის ჩვენი რიცხვი "210" ორობით - "11010010".
გადაცემის დასრულების შემდეგ, SPI-ENABLE პულსის ბოლოს, ვხედავთ, რომ ცვლის რეგისტრმა იგივე მნიშვნელობა დააყენა 8 ფეხზე. მე ეს გამოვნიშნე ლურჯი წერტილოვანი ხაზით და შევაფასე სიწმინდის მნიშვნელობები.
ნაბიჯი 7
ახლა ყურადღება გავამახვილოთ B განყოფილებაზე.
ისევ ყველაფერი იწყება მონას არჩევით და 8 საათის იმპულსის წარმოქმნით.
SPI-MOSI ხაზის მონაცემები ახლა არის "0".ანუ, ამ მომენტში რეესტრში ვწერთ რიცხვს "0".
სანამ გადაცემა არ დასრულდება, რეგისტრი ინახავს მნიშვნელობას "11010010". ის გამოდის Q0.. Q7 პარალელურ ქინძისთავებამდე და გამოდის, როდესაც ხაზში არის პარალელური გამომავალი Q7 '- დან SPI-MISO ხაზამდე საათის პულსი, რომელსაც აქ ვხედავთ.
ნაბიჯი 8
ამრიგად, ჩვენ დეტალურად შევისწავლეთ ინფორმაციის გაცვლის საკითხი საძიებო მოწყობილობას, რომელიც იყო Arduino და 74HC595 ცვლის რეესტრს შორის. ჩვენ ვისწავლეთ როგორ უნდა დავაკავშიროთ ცვლადი რეესტრი, დავწეროთ მონაცემები და წავიკითხოთ მონაცემები მისგან.