Cov txheej txheem:

GPIO ARM ASSEMBLY - T.I. ROBOTICS SYSTEM LEARNING KIT - LAB 6: 3 Cov Kauj Ruam
GPIO ARM ASSEMBLY - T.I. ROBOTICS SYSTEM LEARNING KIT - LAB 6: 3 Cov Kauj Ruam

Video: GPIO ARM ASSEMBLY - T.I. ROBOTICS SYSTEM LEARNING KIT - LAB 6: 3 Cov Kauj Ruam

Video: GPIO ARM ASSEMBLY - T.I. ROBOTICS SYSTEM LEARNING KIT - LAB 6: 3 Cov Kauj Ruam
Video: TI-RSLK Lab 6 GPIO Example 2024, Hlis ntuj nqeg
Anonim
GPIO ARM ASSEMBLY - T. I. ROBOTICS SYSTEM LEARNING KIT - LAB 6
GPIO ARM ASSEMBLY - T. I. ROBOTICS SYSTEM LEARNING KIT - LAB 6

Nyob zoo, Hauv Cov Lus Qhia yav dhau los txog kev kawm ARM sib dhos siv Texas Instruments TI-RSLK (siv MSP432 microcontroller), aka Lab 3 yog tias koj ua T. I. tau kawg, peb tau hla qee cov lus qhia yooj yim xws li sau rau npe, thiab ua raws txoj cai. Peb nqis los ntawm kev ua tiav siv Eclipse IDE.

Cov phiaj xwm hluas uas peb ua tiav tsis muaj dab tsi cuam tshuam nrog ntiaj teb sab nrauv.

Yam tho txawv.

Cia peb sim hloov qhov me ntsis niaj hnub no los ntawm kev kawm me ntsis txog cov tswv yim/tawm cov chaw nres nkoj, tshwj xeeb, cov lej GPIO digital.

Nws tshwm sim zoo li no tias MSP432 los txog ntawm pawg thawj coj loj twb muaj ob lub laub-khawm hloov pauv, RGB LED, thiab LED liab, txhua yam uas tau khi rau qee qhov chaw GPIO.

Qhov no txhais tau tias thaum peb kawm teeb tsa thiab tswj cov pins no los ntawm kev sib dhos, peb tuaj yeem pom kev pom cov teebmeem ntawd.

Ntau qhov nthuav ntau dua li tsuas yog nqis los ntawm tus debugger.

(Peb tseem tab tom mus rau kauj ruam - qhov no yuav yog peb txoj haujlwm 'ncua'):-D

Kauj Ruam 1: Cia Sim Sim Sau Ntawv / Nyeem Los Ntawm RAM

Ua ntej peb dhia mus rau kev nkag mus thiab tswj hwm GPIO, peb yuav tsum nqis tes me me.

Cia peb pib los ntawm kev nyeem ntawv thiab sau ntawv mus rau tus qauv cim xeeb chaw nyob. Peb paub los ntawm Cov Lus Qhia yav dhau los (saib cov duab muaj) tias RAM pib ntawm 0x2000 0000, yog li cia peb siv qhov chaw nyob ntawd.

Peb tab tom yuav txav cov ntaub ntawv ntawm tus lej sau npe (R0) thiab 0x2000 0000.

Peb pib nrog cov qauv txheej txheem lossis cov ntsiab lus ntawm cov phiaj xwm sib dhos. Thov xa mus rau Cov Lus Qhia no los tsim cov phiaj xwm sib dhos siv TI's Code Composer Studio (CCS), thiab qee qhov qauv ua haujlwm.

.thov

.text.align 2. ntiaj teb lub ntsiab. thumbfunc lub ntsiab tseem ceeb:.asmfunc; ---------------------------------- -----------------------------------------------; (peb cov cai yuav mus ntawm no); ------------------------------------------ ---------------------------------------.endasmfunc.end

Kuv xav ntxiv qee yam tshiab rau ntu sab saum toj, puas muaj qee qhov kev tshaj tawm (cov lus qhia). Nws yuav pom meej dua tom qab.

ACONST.set 0x20000000; peb yuav siv qhov no txuas ntxiv mus (nws tsis tu ncua)

; pom tseeb, '0x' qhia txog dab tsi hauv qab no yog tus lej hex.

Yog li peb pib cov ntaub ntawv tam sim no zoo li:

.thov

.text.align 2 ACONST.set 0x20000000; peb yuav siv qhov no txuas ntxiv mus (nws tsis tu ncua); pom tseeb, '0x' qhia txog dab tsi hauv qab no yog tus lej hex..global main.thumbfunc lub ntsiab tseem ceeb:.asmfunc; --------------------------------------- ----------------------------------------------; (peb cov cai yuav mus ntawm no); ------------------------------------------ ---------------------------------------.endasmfunc.end

Tam sim no uas peb muaj cov saum toj no, cia ntxiv cov lej nyob nruab nrab ntawm cov kab dashed.

Peb pib nrog kev sau ntawv mus rau qhov chaw RAM. Ua ntej peb yuav tsim cov qauv ntaub ntawv, tus nqi, uas peb yuav tau sau rau hauv RAM. Peb siv cov tub ntxhais sau npe los tsim tus nqi lossis cov ntaub ntawv.

Nco tseg: nco ntsoov tias hauv txoj cai, ib kab twg muaj ib nrab txoj hnyuv (';') txhais tau tias nws yog txhua qhov lus pom tom qab ib nrab txoj hnyuv.

;-----------------------------------------------------------------------------------------------

; Sau ntawv; ------------------------------------------------ ----------------------------------------------- MOV R0, 0x55; ua. tub ntxhais sau npe R0 yuav muaj cov ntaub ntawv peb xav sau rau RAM qhov chaw.; pom tseeb, '0x' qhia txog dab tsi hauv qab no yog tus lej hex.

Tom ntej no, cia saib cov nqe lus hais tias DONT ua haujlwm.

; MOV MOV tsis siv tau los sau cov ntaub ntawv mus rau qhov chaw RAM.

; MOV tsuas yog rau cov ntaub ntawv tam sim rau hauv npe,; lossis los ntawm ib lub npe mus rau lwm qhov; ie, MOV R1, R0.; STR yuav tsum siv STR.; STR R0, = TSIS MUAJ; Lub sij hawm tsis zoo hauv kev qhia (tus '='); STR R0, 0x20000000; Hom kev hais lus tsis raug cai rau kev qhia hauv khw; STR R0, TSIS MUAJ; Hom kev hais tsis raug cai rau kev qhia hauv khw

Tsis tau piav qhia ntau dhau, peb tau sim siv qhov 'ACONST' saum toj no. Qhov tseem ceeb, nws yog qhov sawv-hauv lossis tas li tsis txhob siv tus nqi zoo li 0x20000000.

Peb tsis muaj peev xwm sau ntawv los sau rau RAM qhov chaw siv cov lus saum toj no. Cia peb sim lwm yam ntxiv.

; zoo li peb yuav tsum siv lwm qhov sau npe uas muaj RAM qhov chaw nyob hauv

; xaj kom khaws mus rau qhov chaw RAM ntawd MOV R1, #0x20000000; teeb tsa RAM qhov chaw (tsis yog nws cov ntsiab lus, tab sis qhov chaw) rau hauv R1.; pom tseeb, '0x' qhia txog dab tsi hauv qab no yog tus lej hex. STR R0, [R1]; sau dab tsi hauv R0 (0x55) rau hauv RAM (0x20000000) siv R1.; peb siv lwm daim ntawv sau npe (R1) uas muaj RAM chaw nyob; txhawm rau sau mus rau qhov chaw RAM ntawd.

Lwm txoj hauv kev los ua qhov saum toj no, tab sis siv 'ACONST' hloov qhov chaw nyob qhov tseeb:

; cia peb ua qhov saum toj no ntxiv, tab sis cia peb siv lub cim tsis txhob siv tus nqi RAM qhov chaw.

; peb xav siv 'ACONST' ua qhov sawv ntsug rau 0x20000000.; peb tseem yuav tsum tau ua tus '#' txhawm rau qhia tus nqi tam sim ntawd,; yog li (saib rau saum), peb yuav tsum tau siv '.set' cov lus qhia.; txhawm rau ua pov thawj qhov no, cia peb hloov cov qauv ntaub ntawv hauv R0. MOV R0, #0xAA; ok peb tau npaj los sau rau RAM siv lub cim tsis txhob siv qhov chaw nyob qhov tseeb MOV R1, #ACONST STR R0, [R1]

Cov vis dis aus mus rau qee qhov kev qhia ntxaws ntxiv, nrog rau nqis los ntawm kev nyeem los ntawm qhov chaw nco.

Koj tseem tuaj yeem saib cov ntaub ntawv txuas.asm.

Kauj Ruam 2: Qee Cov Ntaub Ntawv Qhia Txog Chaw Nres Nkoj

Image
Image
Qee Cov Lus Qhia Txog Chaw Nres Nkoj
Qee Cov Lus Qhia Txog Chaw Nres Nkoj
Qee Cov Lus Qhia Txog Chaw Nres Nkoj
Qee Cov Lus Qhia Txog Chaw Nres Nkoj

Tam sim no peb muaj lub tswv yim zoo yuav sau ntawv / nyeem los ntawm RAM qhov chaw, qhov no yuav pab peb nkag siab yuav tswj hwm thiab siv tus pin GPIO li cas

Yog li peb yuav cuam tshuam nrog GPIO koob li cas? Los ntawm peb saib yav dhau los ntawm lub microcontroller no thiab nws cov lus qhia ARM, peb paub yuav ua li cas nrog nws cov ntawv sau npe sab hauv, thiab peb paub yuav cuam tshuam nrog kev nco (RAM) chaw nyob li cas. Tab sis GPIO pins?

Nws tshwm sim zoo li ntawd cov pins yog cim xeeb-mapped, yog li peb tuaj yeem kho lawv tib yam li qhov chaw nyob nco.

Qhov no txhais tau tias peb yuav tsum paub cov chaw nyob ntawd yog dab tsi.

Hauv qab no yog chaw nres nkoj pib chaw nyob. Los ntawm txoj kev, rau MSP432, "chaw nres nkoj" yog sau cov pins, thiab tsis yog ib tus pin xwb. Yog tias koj paub nrog Raspberry Pi, kuv ntseeg tias txawv dua li qhov xwm txheej ntawm no.

Cov voj voos xiav hauv cov duab saum toj no qhia txog kev sau ntawv ntawm lub rooj tsavxwm rau ob lub qhov muag thiab LEDs. Cov kab xiav taw qhia rau cov LEDs tiag tiag. Peb yuav tsis tau kov lub taub hau dhia.

Kuv tau ua cov chaw nres nkoj uas peb txhawj xeeb nrog hauv qab hauv qab no.

  • GPIO P1: 0x4000 4C00 + 0 (txawm tias chaw nyob)
  • GPIO P2: 0x4000 4C00 + 1 (chaw nyob txawv txawv)
  • GPIO P3: 0x4000 4C00 + 20 (txawm tias chaw nyob)
  • GPIO P4: 0x4000 4C00 + 21 (chaw nyob tsis zoo)
  • GPIO P5: 0x4000 4C00 + 40 (txawm tias chaw nyob)
  • GPIO P6: 0x4000 4C00 + 41 (qhov chaw nyob txawv)
  • GPIO P7: 0x4000 4C00 + 60 (txawm tias chaw nyob)
  • GPIO P8: 0x4000 4C00 + 61 (chaw nyob txawv txawv)
  • GPIO P9: 0x4000 4C00 + 80 (txawm tias chaw nyob)
  • GPIO P10: 0x4000 4C00 + 81 (chaw nyob txawv)

Peb tseem tsis tau ua tiav. Peb xav tau xov xwm ntxiv.

Txhawm rau tswj chaw nres nkoj, peb xav tau ntau qhov chaw nyob. Tias yog vim li cas hauv cov npe saum toj no, peb pom "txawm tias chaw nyob" lossis "chaw nyob khib".

I/O Sau Npe Chaw Nyob Blocks

Peb yuav xav tau lwm qhov chaw nyob, xws li:

  • Chaw nres nkoj 1 Nkag Mus Sau Npe chaw nyob = 0x40004C00
  • Chaw nres nkoj 1 Output Sau npe chaw nyob = 0x40004C02
  • Chaw nres nkoj 1 Qhia rau chaw nyob = 0x40004C04
  • Chaw nres nkoj 1 Xaiv 0 Sau npe chaw nyob = 0x40004C0A
  • Chaw nres nkoj 1 Xaiv 1 Sau npe chaw nyob = 0x40004C0C

Thiab peb yuav xav tau lwm tus.

Ok, tam sim no peb paub thaj tsam ntawm GPIO sau npe chaw nyob kom tswj tau ib leeg liab LED.

Cov ntawv tseem ceeb heev: Txhua qhov chaw nres nkoj I/O ntawm MSP432 LaunchPad pawg thawj coj yog sau los ntawm ntau (feem ntau yog 8) tus pin lossis kab, thiab txhua tus tuaj yeem teeb tsa ib tus zuj zus raws li kev nkag los lossis tso tawm.

Qhov no txhais tau tias, piv txwv li, yog tias koj tab tom teeb tsa qhov tseem ceeb rau "Chaw Nkag Nkag Chaw Nkag Nkag Chaw Nkag Nkag 1", koj yuav tsum tau txhawj xeeb txog qhov me ntsis (lossis khoom me) koj tab tom teeb tsa lossis hloov pauv ntawm qhov chaw nyob ntawd. Ntau ntxiv txog qhov no tom qab.

GPIO Port Programming Sequence

Qhov kawg uas peb xav tau, yog txheej txheem lossis txheej txheem siv, los tswj cov LED.

Ib zaug ua ntej pib:

  • Kho P1.0 (P1SEL1REG: P1SEL0REG Sau npe) <--- 0x00, 0x00 rau ib txwm ua haujlwm GPIO.
  • Teem Direction npe me ntsis 1 ntawm P1DIRREG raws li tso tawm, lossis HIGH.

Loop:

Sau HIGH me ntsis 0 ntawm P1OUTREG sau npe kom qhib lub Liab LED

  • Hu ua haujlwm qeeb
  • Sau LOW kom me ntsis 0 ntawm P1OUTREG sau npe kom tua Liab LED
  • Hu ua haujlwm qeeb
  • Rov Ua Dua

Cov tswv yim / tawm tswv yim twg (teeb tsa SEL0 thiab SEL1)

Ntau tus pins ntawm LaunchPad muaj ntau yam siv. Piv txwv, tus pin tib yam tuaj yeem yog tus qauv digital GPIO, lossis nws tseem tuaj yeem siv tau hauv UART, lossis I2C kev sib txuas lus txuas.

Txhawm rau siv cov haujlwm tshwj xeeb rau tus pin, koj yuav tsum xaiv qhov haujlwm ntawd. Koj yuav tsum teeb tsa tus lej ua haujlwm.

Muaj cov duab saum toj no rau theem no uas sim piav qhia lub tswv yim no hauv daim ntawv pom.

SEL0 thiab SEL1 chaw nyob ua khub ua ke uas ua raws qee yam kev ua haujlwm / xaiv xaiv.

Rau peb lub hom phiaj, peb xav tau tus qauv digital GPIO rau me ntsis 0. Qhov ntawd txhais tau tias peb xav tau me ntsis 0 rau SEL0 thiab SEL1 los ua LOW.

Port Programming Sequence (Dua)

1. Sau 0x00 rau P1 SEL 0 Sau npe (chaw nyob 0x40004C0A). Qhov no teeb tsa LOW rau me ntsis 0

2. Sau 0x00 rau P1 SEL 1 Sau npe (chaw nyob 0x40004C0C). Qhov no teeb tsa LOW rau me ntsis 0, teeb tsa rau GPIO.

3. Sau 0x01 rau P1 DIR Sau Npe (chaw nyob 0x40004C04). Qhov no teeb tsa HIGH rau me ntsis 0, lub ntsiab lus OUTPUT.

4. Qhib lub LED los ntawm kev sau 0x01 rau P1 OUTPUT Sau npe (chaw nyob 0x40004C02)

5. Ua qee yam qeeb (lossis tsuas yog ib kauj ruam dhau los thaum debugging)

6. Tua lub LED los ntawm kev sau 0x00 rau P1 OUTPUT Sau npe (chaw nyob 0x40004C02)

7. Ua qee yam qeeb (lossis tsuas yog ib kauj ruam dhau los thaum debugging)

8. Rov ua cov kauj ruam 4 txog 7.

Cov yeeb yaj kiab cuam tshuam rau cov kauj ruam no coj peb mus rau tag nrho cov txheej txheem hauv kev ua yeeb yaj kiab nyob, raws li peb ib leeg-qib dhau los thiab tham los ntawm txhua qhov kev qhia ua ke, thiab qhia LED ua. Thov zam txim qhov ntev ntawm daim vis dis aus.

Kauj Ruam 3: Koj Puas Tau Pom Ib Qhov Tsis Zoo Hauv Cov Duab?

Hauv cov vis dis aus uas taug kev hla tag nrho cov txheej txheem ntawm kev ua haujlwm thiab teeb pom kev zoo ntawm LED, muaj ib kauj ruam ntxiv hauv lub voj tseem ceeb, uas tuaj yeem txav mus rau qhov pib ua haujlwm ib zaug.

Ua tsaug rau koj siv sijhawm los hla cov lus qhia no.

Qhov tom ntej nthuav tawm qhov peb tau pib ntawm no.

Pom zoo: