SPI Thiab Arduino Interface

Cov txheej txheem:

SPI Thiab Arduino Interface
SPI Thiab Arduino Interface

Video: SPI Thiab Arduino Interface

Video: SPI Thiab Arduino Interface
Video: Видеоуроки по Arduino. Интерфейсы SPI (8-я серия, ч1) 2024, Kaum ib hlis
Anonim

Peb kawm txog SPI interface thiab txuas kev hloov npe rau Arduino, uas peb yuav nkag mus siv cov txheej txheem no los tswj cov LEDs.

SPI interface
SPI interface

Tsim nyog

  • - Arduino;
  • - hloov npe rau npe 74HC595;
  • - 8 LEDs;
  • - 8 resistors ntawm 220 Ohm.

Cov Lus Qhia

Kauj ruam 1

SPI - Serial Peripheral Interface lossis "Serial Peripheral Interface" yog cov ntaub ntawv hloov xa cov txheej txheem rau kev cuam tshuam tus tswv ntaus nrog cov khoom siv ua ke (cov qhev). Tus tswv feem ntau yog tus microcontroller. Kev sib txuas lus ntawm cov khoom siv yog nqa tawm ntawm plaub xaim, uas yog vim li cas SPI qee zaum hu ua "plaub-xaim interface". Cov log tsheb yog:

MOSI (Master Out Slave In) - cov ntaub ntawv xa tawm kab ntawm tus tswv mus rau tus qhev qhev;

MISO (Master In Slave Out) - kis kab ntawm tus qhev mus rau tus tswv;

SCLK (Lub Sijhawm Teev) - synchronization moos pulses tsim los ntawm tus tswv;

SS (Qiv Xaiv) - qhev cov cuab yeej xaiv kab; thaum ntawm kab "0", tus qhev "nkag siab" uas nws nkag mus.

Muaj plaub hom kev hloov ntaub ntawv (SPI_MODE0, SPI_MODE1, SPI_MODE2, SPI_MODE3), vim muaj kev sib xyaw ntawm lub moos pulmon polarity (peb ua haujlwm ntawm HIGH lossis Qib Qib), Clock Polarity, CPOL, thiab theem ntawm lub moos pulses (synchronization) ntawm qhov nce los poob ntawm lub moos ntawm lub moos mem tes), Moos Phase, CPHA.

Daim duab qhia ob qho kev xaiv rau kev sib txuas ntawm cov khoom siv uas siv SPI raws tu qauv: ywj siab thiab ua tub sab. Thaum muaj kev ywj pheej txuas rau SPI lub tsheb npav, tus tswv sib txuas lus nrog txhua tus qhev ncaj thiab ntse. Nrog ib tug cascade - qhev cov cuab yeej muaj cuam tshuam hloov, hauv cascade.

Cov hom ntawm SPI sib txuas
Cov hom ntawm SPI sib txuas

Kauj ruam 2

Hauv Arduino, SPI cov tsheb thauj khoom yog nyob ntawm cov pob tshwj xeeb. Txhua pawg thawj coj ua haujlwm nws tus kheej nawj. Rau kom yooj yim, cov pins yog theej tawm thiab muab tso rau qhov sib cais ICSP (Hauv Circuit Serial Programming) qhov txuas. Thov nco ntsoov tias tsis muaj ib qho qhev xaiv tus pin ntawm ICSP txuas - SS, txij li Nws tau kwv yees tias Arduino yuav siv los ua tus tswv hauv lub network. Tab sis yog tias tsim nyog, koj tuaj yeem tso ib qho koob digital ntawm Arduino ua ib qho SS.

Daim duab ua piv txwv qhia tus qauv ntawm cov pins rau SPI npav rau Arduino UNO thiab Nano.

Kev siv SPI hauv Arduino
Kev siv SPI hauv Arduino

Kauj ruam 3

Lub tsev khaws ntaub ntawv tshwj xeeb tau sau rau Arduino uas ua raws li SPI cov qauv. Nws txuas nrog zoo li no: thaum pib ntawm lub program, ntxiv #include SPI.h

Txhawm rau pib ua haujlwm nrog SPI raws tu qauv, koj yuav tsum teeb tsa tus txheej txheem thiab tom qab ntawd pib ua raws tu qauv siv SPI.beginTransaction () tus txheej txheem. Koj tuaj yeem ua qhov no nrog ib qho kev qhia: SPI.beginTransaction (SPISettings (14000000, MSBFIRST, SPI_MODE0)).

Qhov no txhais tau hais tias peb pib SPI raws tu qauv ntawm kev ntwm ntawm 14 MHz, cov ntaub ntawv hloov mus, pib los ntawm MSB (feem ntau tseem ceeb me ntsis), hauv "0" hom.

Tom qab pib pib, peb xaiv cov qhev cov cuab yeej los ntawm qhov muab tus pin SS sib piv rau hauv lub xeev LOW.

Tom qab ntawd peb hloov cov ntaub ntawv mus rau tus qhev twj nrog SPI.transfer () txib.

Tom qab kis tau tus mob, peb rov qab SS rau hauv lub xeev HIGH.

Ua haujlwm nrog cov txheej txheem xaus nrog SPI.endTransaction () hais kom ua. Nws yog qhov tsim nyog kom txo cov sij hawm ua tiav ntawm kev hloov chaw ntawm SPI.beginTransaction () thiab SPI.endTransaction () cov lus qhia kom tsis muaj kev sib tshooj yog tias lwm cov khoom siv sim pib cov ntaub ntawv hloov chaw siv cov chaw sib txawv.

Kev sib kis SPI
Kev sib kis SPI

Kauj ruam 4

Cia peb xav txog cov tswv yim siv ntawm SPI interface. Peb yuav taws cov LED taws los ntawm kev tswj hwm 8-ntsis hloov npe ntawm SPI npav. Cia txuas tus 74HC595 kev hloov npe rau Arduino. Peb txuas rau txhua qhov ntawm 8 qhov tawm ntawm LED (los ntawm kev txwv tsis kam). Daim duab kos tau qhia hauv daim duab.

Siv kev hloov pauv rau npe 74HC595 rau Arduino
Siv kev hloov pauv rau npe 74HC595 rau Arduino

Kauj ruam 5

Cia sau li sketch.

Ua ntej tshaj, peb txuas lub tsev qiv ntawv SPI thiab pib tsim SPI interface. Cia peb txhais tus pin 8 ua tus qhev xaiv tus pin. Cia peb tshem tawm qhov hloov npe tso npe los ntawm xa tus nqi "0" rau nws. Peb pib lub chaw nres nkoj serial.

Txhawm rau lub teeb tshwj xeeb LED siv kev hloov npe, koj yuav tsum siv tus lej 8 tus lej rau nws cov tswv yim. Piv txwv li, txhawm rau thawj LED kom teeb, peb pub lub binary naj npawb 00000001, rau lub thib ob - 00000010, rau qhov thib peb ib - 00000100, thiab lwm yam. Cov lej binary hauv kev txiav txim siab txog zauv yog cov hauv qab no: 1, 2, 4, 8, 16, 32, 64, 128 thiab muaj zog ntawm ob txog 0 txog 7.

Raws li, nyob rau hauv lub voj () los ntawm cov xov tooj ntawm LED, peb rov qab los ntawm 0 txog 7. Tus hmoov (puag, degree) ua haujlwm nce 2 rau lub zog ntawm lub voj voog txee. Microcontrollers tsis ua haujlwm tsis raug nrog cov lej ntawm "ob" ntawm hom, yog li txhawm rau hloov qhov tshwm sim rau ib qho lej, peb siv cov haujlwm puag ncig (). Thiab peb hloov tus naj npawb ntawm cov lej hloov mus rau npe hloov chaw. Txog kev pom meej, lub chaw nres nkoj serial saib pom qhov muaj nuj nqis uas tau txais thaum lub sijhawm ua haujlwm no: ib qho khiav los ntawm cov lej - LEDs ci hauv lub nthwv dej.

Kos duab rau tswj kev hloov chaw sau npe los ntawm SPI npav
Kos duab rau tswj kev hloov chaw sau npe los ntawm SPI npav

Kauj Ruam 6

Cov LED ci ci rau hauv lem, thiab peb pom ib qho "nthwv dej" ntawm cov teeb. Cov LEDs raug tswj hwm siv qhov hloov npe, uas peb txuas nrog ntawm SPI interface. Raws li qhov tshwm sim, tsuas yog 3 Arduino pins siv los tsav 8 LED.

Peb tau kawm qhov piv txwv yooj yim tshaj plaws ntawm qhov uas Arduino ua haujlwm nrog SPI npav. Peb yuav txiav txim siab qhov kev sib txuas ntawm cov ntawv sau qhia kev hloov pauv ntawm ntau dua hauv ib tsab xov xwm cais.

Pom zoo: