Өмнөх өгүүллүүдийн аль нэгэнд бид ээлжийн бүртгэл, тухайлбал 74HC595 ашиглах талаар товч дурдсан. Энэ бичил схемтэй ажиллах чадвар, журмыг нарийвчлан авч үзье.
Шаардлагатай
- - Ардуино;
- - ээлжийн бүртгэл 74HC595;
- - холбох утас.
Зааварчилгаа
1-р алхам
Shift регистр 74HC595 ба үүнтэй төстэй зүйлийг цуваа өгөгдлийг паралель болгон хөрвүүлэх төхөөрөмж болгон ашигладаг бөгөөд дамжуулсан төлөвийг барьж өгөгдөлд "түгжээ" болгон ашиглаж болно.
Pinout (pinout) -ийг зүүн талын зураг дээр харуулав. Тэдний зорилго дараах байдалтай байна.
Q0… Q7 - зэрэгцээ өгөгдлийн гаралт;
GND - газар (0 V);
Q7 '- цуваа өгөгдлийн гаралт;
^ MR - дахин тохируулах мастер (идэвхтэй бага);
SHcp - ээлжийн бүртгэлийн цагийн оролт;
STcp - "түгжээ" цагны импульсийн оролт;
^ OE - гаралтыг идэвхжүүлэх (идэвхтэй бага);
Ds - цуваа өгөгдөл оруулах;
Vcc - цахилгаан хангамж +5 В.
Бүтцийн хувьд бичил схемийг хэд хэдэн төрлийн тохиолдолд хийдэг; Би баруун талын зураг дээр харуулсан нэгийг ашиглах болно талхны тавцантай хамт хэрэглэхэд хялбар байдаг.
Алхам 2
SPI цуваа интерфэйсийг товчхон санацгаая, үүнийг бид ээлжийн бүртгэлд өгөгдөл дамжуулахад ашиглах болно.
SPI бол мастер ба боол оролцдог дөрвөн утастай хоёр чиглэлтэй цуваа интерфэйс юм. Манай тохиолдолд эзэн нь Ардуино байх бөгөөд боол нь 74HC595 бүртгэлтэй болно.
Arduino-ийн хөгжлийн орчин нь SPI интерфейс дээр ажиллах зориулалттай номын сантай. Үүнийг хэрэгжүүлэхдээ зураг дээр тэмдэглэсэн дүгнэлтийг ашиглана.
SCLK - SPI цагийн гаралт;
MOSI - мастераас боол хүртэл өгөгдөл;
MISO - боолоос мастер хүртэлх өгөгдөл;
SS - боолын сонголт.
Алхам 3
Зураг дээрх шиг схемийг нэгтгэе.
Би бас логик анализаторыг ээлжийн бүртгэлийн микро схемийн бүх тээглүүрүүдтэй холбоно. Үүний тусламжтайгаар бид физик түвшинд юу болж байгааг, ямар дохио хаашаа явж байгааг харж, ямар утгатай болохыг олж мэдэх болно. Энэ нь зурагтай төстэй байх ёстой.
Алхам 4
Энэ мэт ноорогоо бичээд Arduino-ийн санах ойд оруулъя.
PIN_SPI_SS хувьсагч нь бидний ашиглаж буй SPI интерфейсийн мастер болгон ашиглахад Arduino-ийн "10" зүүтэй тохирч байгаа дотоод стандарт тогтмол юм. Зарчмын хувьд бид Arduino дээрх бусад дижитал зүүг ашиглаж болно. дараа нь бид үүнийг зарлаж, үйл ажиллагааны горимыг тохируулах хэрэгтэй болно.
Энэхүү зүүг LOW-ээр тэжээснээр бид дамжуулах / хүлээн авах ээлжийн бүртгэлээ идэвхжүүлдэг. Дамжуулалт хийсний дараа бид хүчдэлийг дахин HIGH болгож, солилцоо дуусна.
Алхам 5
Цахилгаан хэлхээгээ ажил хэрэг болгож, логик анализатор бидэнд юу харуулж байгааг харцгаая. Цаг хугацааны схемийн ерөнхий дүр төрхийг зураг дээр харуулав.
Цэнхэр тасархай шугам нь SPI-ийн 4 шугамыг, улаан тасархай шугам нь ээлжийн бүртгэлийн зэрэгцээ өгөгдлийн 8 сувгийг харуулна.
Цагийн хуваарийн А цэг нь "210" дугаарыг ээлжийн бүртгэлд шилжүүлэх, В бол "0" тоог бичих мөч, С нь эхнээсээ давтагдах мөчлөг юм.
Таны харж байгаагаар А-аас B хүртэл 10.03 миллисекунд, B-ээс C хүртэл 90.12 миллисекунд, бидний ноорог дээр асуусан шиг. 0, 03, 0, 12 ms-ийн жижиг нэмэлт нь Arduino-оос цуваа өгөгдөл дамжуулах цаг хугацаа тул энд яг 10 ба 90 ms байхгүй байна.
Алхам 6
А хэсгийг нарийвчлан авч үзье.
Хамгийн дээд хэсэгт нь Arduino нь SPI-ENABLE шугамаар дамжуулдаг боолын сонголтоор дамжуулдаг урт импульс юм. Энэ үед SPI-CLOCK цагийн импульс үүсч эхэлнэ (дээд талаас хоёр дахь мөр), 8 ширхэг (1 байт дамжуулахад).
Дээд талаас дараагийн мөр бол SPI-MOSI бөгөөд бид Arduino-оос ээлжийн бүртгэл рүү шилжүүлдэг өгөгдөл юм. Энэ бол "11010010" гэсэн хоёртын хувилбарын "210" тоо юм.
Шилжүүлэлт дууссаны дараа SPI-ENABLE импульсийн төгсгөлд ээлжийн бүртгэл нь 8 хөл дээрээ ижил утгыг тохируулсан болохыг бид харж байна. Би үүнийг цэнхэр тасархай шугамаар тодруулж, тодорхой болгохын тулд утгуудыг тэмдэглэв.
Алхам 7
Одоо В хэсэгт анхаарлаа хандуулцгаая.
Дахин хэлэхэд бүх зүйл боолыг сонгож, 8 цагийн импульс үүсгэхээс эхэлдэг.
SPI-MOSI шугамын өгөгдөл одоо "0" байна. Өөрөөр хэлбэл, энэ мөчид бид "0" тоог регистрт бичнэ.
Гэхдээ шилжүүлэг дуусах хүртэл регистр нь "11010010" утгыг хадгалдаг. Энэ нь Q0.. Q7 параллель тээглүүрүүдэд гаргадаг бөгөөд Q7 'зэрэгцээ гарцаас SPI-MISO шугам хүртэлх шугаман дахь импульс байгаа үед гарна.
Алхам 8
Тиймээс бид Arduino байсан мастер төхөөрөмж болон 74HC595 ээлжийн бүртгэлийн хооронд мэдээлэл солилцох асуудлыг нарийвчлан судлав. Бид ээлжийн бүртгэлийг хэрхэн холбож, түүнд өгөгдөл бичиж, үүнээс өгөгдөл унших талаар сурч мэдсэн.