Digitális technika (VIMIAA02) Laboratórium 12

Hasonló dokumentumok
Digitális technika (VIMIAA02) Laboratórium 12

Digitális technika VIMIAA01

Digitális technika VIMIAA01

A LOGSYS GUI. Fehér Béla Raikovich Tamás, Laczkó Péter BME MIT FPGA laboratórium

Digitális technika (VIMIAA01) Laboratórium 9

Digitális technika (VIMIAA01) Laboratórium 9

Digitális technika (VIMIAA01) Laboratórium 10

Digitális technika VIMIAA hét

Digitális technika VIMIAA hét

Digitális technika (VIMIAA02) Laboratórium 1

Digitális technika (VIMIAA02) Laboratórium 1

Digitális technika (VIMIAA02) Laboratórium 5.5

Karakteres LCD kijelző használata MiniRISC processzoron

Programozott soros szinkron adatátvitel

Digitális technika (VIMIAA02) Laboratórium 5

Digitális technika (VIMIAA02) Laboratórium 5

Digitális technika (VIMIAA02) Laboratórium 3

Digitális technika (VIMIAA02) Laboratórium 3

Programozási segédlet DS89C450 Fejlesztőpanelhez

Digitális technika (VIMIAA02) Laboratórium 4

A vezérlő alkalmas 1x16, 2x16, 2x20, 4x20 karakteres kijelzők meghajtására. Az 1. ábrán látható a modul bekötése.

A számítógép alapfelépítése

Digitális technika (VIMIAA02) Laboratórium 4

loop() Referencia:

Mikrorendszerek tervezése

Digitális technika VIMIAA hét

A LOGSYS rendszer ismertetése

Digitális technika (VIMIAA01) Laboratórium 4

Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT

Digitális technika VIMIAA01 9. hét

Yottacontrol I/O modulok beállítási segédlet

XII. PÁRHUZAMOS ÉS A SOROS ADATÁTVITEL

LOGSYS LOGSYS HŐMÉRŐ ÉS EEPROM MODUL FELHASZNÁLÓI ÚTMUTATÓ szeptember 16. Verzió 1.0.

Digitális technika (VIMIAA01) Laboratórium 11

Digitális technika (VIMIAA01) Laboratórium 11

Mérési jegyzőkönyv. az ötödik méréshez

Nagy Gergely április 4.

Ellenőrző mérés mintafeladatok Mérés laboratórium 1., 2011 őszi félév

The modular mitmót system. 433, 868MHz-es ISM sávú rádiós kártya

LOGSYS LOGSYS LCD KIJELZŐ MODUL FELHASZNÁLÓI ÚTMUTATÓ november 8. Verzió

A MiniRISC processzor (rövidített verzió)

I. C8051Fxxx mikrovezérlők hardverfelépítése, működése. II. C8051Fxxx mikrovezérlők programozása. III. Digitális perifériák

PWM elve, mikroszervó motor vezérlése MiniRISC processzoron

Beágyazott és Ambiens Rendszerek Laboratórium BMEVIMIA350. Mérési feladatok az 1., 2. és 3. mérési alkalomhoz

LOGSYS LOGSYS SPARTAN-3E FPGA KÁRTYA FELHASZNÁLÓI ÚTMUTATÓ szeptember 19. Verzió

A mikroprocesszor felépítése és működése

DIGITÁLIS TECHNIKA feladatgyűjtemény

Digitális technika HF2 Elkészítési segédlet Gépi szintű programozás

ARM programozás. Iványi László Szabó Béla

Periféria kezelési módszerek. programozott megszakításos DMA-s - közvetlen szoftver ütemezés - lekérdezéses ütemezés

Labor gyakorlat Mikrovezérlők

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

Digitális technika VIMIAA02 1. EA

Fixpontos és lebegőpontos DSP Számrendszerek

FPGA áramkörök alkalmazásainak vizsgálata

A/D és D/A konverterek vezérlése számítógéppel

Mintavételezés tanulmányozása. AD - konverzió. Soros kommunikáció

Labor gyakorlat Mikrovezérlők

Informatika érettségi vizsga

Mikrorendszerek tervezése

Billentyűzet. Csatlakozók: A billentyűzetet kétféle csatlakozóval szerelhetik. 5 pólusú DIN (AT vagy XT billentyűzet csatlakozó),

The modular mitmót system. 433, 868MHz-es ISM sávú rádiós kártya

Mikrorendszerek tervezése

DIGITÁLIS TECHNIKA I

A feladatokat önállóan, meg nem engedett segédeszközök használata nélkül oldottam meg. Olvasható aláírás:...minta VIZSGA...

A számítógép fő részei

Digitális technika VIMIAA02 1. EA Fehér Béla BME MIT

Programozó- készülék Kezelőkozol RT óra (pl. PC) Digitális bemenetek ROM memória Digitális kimenetek RAM memória Analóg bemenet Analóg kimenet

I 2 C, RS-232 és USB. Informatikai eszközök fizikai alapjai. Oláh Tamás István

Digitális technika (VIMIAA02) Laboratórium 2

Digitális technika (VIMIAA01) Laboratórium 2

Az MSP430 mikrovezérlők digitális I/O programozása

T Bird 2. AVR fejlesztőpanel. Használati utasítás. Gyártja: BioDigit Kft. Forgalmazza: HEStore.hu webáruház. BioDigit Kft, Minden jog fenntartva

Digitális technika VIMIAA02 9. hét Fehér Béla BME MIT

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

LOGSYS LOGSYS SZTEREÓ CODEC MODUL FELHASZNÁLÓI ÚTMUTATÓ szeptember 16. Verzió

Számítógép felépítése

Összeadás BCD számokkal

Digitális technika VIMIAA02 9. hét

I 2 C, SPI, I 2 S, USB, PWM, UART, IrDA

Előadó: Nagy István (A65)

Roger UT-2. Kommunikációs interfész V3.0

Digitális technika (VIMIAA01) Laboratórium 2

Hobbi Elektronika. A digitális elektronika alapjai: Sorrendi logikai áramkörök 4. rész

Az interrupt Benesóczky Zoltán 2004

Digitális technika VIMIAA01

1 done by: b+bme. Adja meg, hogy milyen ICW3 parancsot kell küldeni a MASTER illetve a SLAVE egységeknek!

Mintavételes szabályozás mikrovezérlő segítségével

RUBICON Serial IO kártya

Perifériák hozzáadása a rendszerhez

2008. október 9. Verzió

Az I2C egy soros, 8 bit-es, kétirányú kommunikációs protokoll, amelynek sebessége normál üzemmódban 100kbit/s, gyors üzemmódban 400kbit/s.

2.3. Soros adatkommunikációs rendszerek CAN (Harmadik rész alapfogalmak II.)

5. KOMBINÁCIÓS HÁLÓZATOK LEÍRÁSÁNAK SZABÁLYAI

Digitális technika VIMIAA01

WDS 4510 adatátviteli adó-vevő

VBIP PRO. IP Kommunikátor

MPLAB ICD használata

Digitális jelfeldolgozás

T Bird 2. AVR fejlesztőpanel. Használati utasítás. Gyártja: BioDigit Kft. Forgalmazza: HEStore.hu webáruház. BioDigit Kft, Minden jog fenntartva

Átírás:

BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Digitális technika (VIMIAA02) Laboratórium 12 Fehér Béla Raikovich Tamás, Fejér Attila BME MIT Lab12: A soros interfészek használata 1. A mikroprocesszorok kommunikációs interfészei 2. A USRT periféria használata 3. Az SPI interfész bit banging programozása 4. A laborfeladatok programjainak elkészítése

Lab12: A soros perifériák Az általános célú mikroprocesszorok általában rendelkeznek különböző soros kommunikációs interfészekkel Ezek hardveresen támogatják a szükséges átviteli protokollok beállíthatóságát Flexibilisen programozható periféria egységek A tipikus soros interfészek az alábbiak: UART/USRT Univerzális aszinkron/szinkron adó vevő SPI Soros periféria interfész I2C Áramkörök közötti interfész Lab12: A soros perifériák Amennyiben valamelyik interfész nem támogatott hardver perifériával, vagy esetleg az igények kielégítése során a rendelkezésre álló eszközkészlet kimerült, akkor azt a mikroprocesszor GPIO interfész lábain, bit banging módon, szoftverből is realizálhatjuk (ha a sebességi igények megengedik) Ez a szoftveres emuláció általában nem annyira gyors, nem kínál speciális szolgáltatásokat, viszont tetszőleges egyedi igényekre felprogramozható A lehetséges megoldásokra számtalan mintapélda található

Lab12: Az UART/USRT soros periféria Univerzális aszinkron/szinkron adó vevő egység Kis sebességű adatátvitel, aszimmetrikus vonalakon Nincs megkülönböztetett szerep, egyenrangú kommunikáció két egység között Külön TX/RX adatvezeték, egy időben akár két irányú karakter átvitel full duplex kommunikáció Órajel csak USRT esetében CLK_IN RX UART/USRT UUAART TX CLK_OUT TX UART/USRT RX Lab12: A MiniRISC USRT periféria A MiniRISC processzor hardveresen csak az USRT protokollt támogatja Ez az USRT interfész csak a MiniRISC GUI Terminállal bonyolított kommunikáció lebonyolítására használható Technikai részletek Az USRT formátumú adatátvitel csak a processzor és az LDC (letöltőkábel) eszköz között zajlik valójában Ezután a PC felé az LDC eszköz USB adatcsomagok formájában továbbítja a karaktereket A PC ben az USB Host a Windows számára egy virtuális COM port ot jelenít meg Ehhez kapcsolódik a terminál ablak, a GUI ezt használja

Lab 12: MiniRISC USRT periféria USRT adatátvitel Keretezett formátum: 1 START bit, melynek értéke mindig 0 8 adatbit (D0 D7) 1 STOP bit, melynek értéke mindig 1 USRT órajel: az adatátviteli sebességet határozza meg A master egység adja ki a slave egység felé Adás: a bitek kiadása az USRT órajel felfutó élére történik Vétel: a mintavételezés az USRT órajel lefutó élére történik Csak a kerethiba mentes (STOP bit = 1) karakterek kerülnek tárolásra USRT clk TXD/RXD inaktív START D0 D1 D2 D3 D4 D5 D6 D7 STOP inaktív Az adó itt adja ki a következő bitet A vevő itt mintavételezi az adatot Lab 12: MiniRISC USRT periféria Programozói interfész: Vezérlő regiszter (UC): BASEADDR + 0x00, írható és olvasható 7. bit 6. bit 5. bit 4. bit 3. bit 2. bit 1. bit 0. bit 0 0 0 0 RXCLR TXCLR RXEN TXEN R R R R W W R/W R/W Bit Mód Funkció TXEN R/W 0: az USRT adó tiltott 1: az USRT adó engedélyezett RXEN R/W 0: az USRT vevő tiltott 1: az USRT vevő engedélyezett TXCLR W 1 beírásának hatására az adási FIFO törlődik RXCLR W 1 beírásának hatására a vételi FIFO törlődik Adatregiszter (UD): BASEADDR + 0x03, írható és olvasható Írás: adat írása az adási FIFO ba (ha TXNF=1) Olvasás: adat olvasása a vételi FIFO ból (ha RXNE=1) 7. bit 6. bit 5. bit 4. bit 3. bit 2. bit 1. bit 0. bit D7 D6 D5 D4 D3 D2 D1 D0 R/W R/W R/W R/W R/W R/W R/W R/W

Lab 12: MiniRISC USRT periféria Programozói interfész: FIFO státusz regiszter (US): BASEADDR + 0x01, csak olvasható 7. bit 6. bit 5. bit 4. bit 3. bit 2. bit 1. bit 0. bit 0 0 0 0 RXFULL RXNE TXNF TXEMPTY R R R R R R R R Megszakítás eng. regiszter (UIE): BASEADDR + 0x02, írható és olvasható A FIFO státusz megszakítások engedélyezhetők/tilthatók vele A megszakításkérés az engedélyezett események fennállásáig aktív 7. bit 6. bit 5. bit 4. bit 3. bit 2. bit 1. bit 0. bit 0 0 0 0 RXFULL RXNE TXNF TXEMPTY R R R R R/W R/W R/W R/W Bit Jelentés TXEMPTY 0: az adási FIFO ban van adat 1: az adási FIFO üres TXNF 0: az adási FIFO tele van 1: az adási FIFO nincs tele RXNE 0: a vételi FIFO üres 1: a vételi FIFO ban van adat RXFULL 0: a vételi FIFO nincs tele 1: a vételi FIFO tele van Lab 12: MiniRISC USRT periféria A USRT FIFO státuszbitek jelentése és használata Bit Jelentés TXEMPTY 0: az adási FIFO ban van adat 1: az adási FIFO üres TXNF 0: az adási FIFO tele van 1: az adási FIFO nincs tele RXNE 0: a vételi FIFO üres 1: a vételi FIFO ban van adat RXFULL 0: a vételi FIFO nincs tele 1: a vételi FIFO tele van TXNF használható, ha karakterenként kívánjuk küldeni az üzenetet Jelentése: Legalább 1 üres hely van a TX_FIFO ban RXNE használható, ha karakterenként kívánjuk fogadni az üzenetet Jelentése: Legalább 1 beérkezett bájt van az RX_FIFOban

Lab 12: MiniRISC USRT periféria A USRT FIFO státuszbitek jelentése és használata Bit Jelentés TXEMPTY 0: az adási FIFO ban van adat 1: az adási FIFO üres TXNF 0: az adási FIFO tele van 1: az adási FIFO nincs tele RXNE 0: a vételi FIFO üres 1: a vételi FIFO ban van adat RXFULL 0: a vételi FIFO nincs tele 1: a vételi FIFO tele van TXEMPTY használható, ha 16 bájtos blokkokban kívánjuk küldeni az üzenetet Jelentése: Az üres TX_FIFO ba írhatunk 16 bájtot RXFULL használható, ha 16 bájtos blokkokban kívánjuk fogadni az üzenetet Jelentése: A teli RX_FIFO ból 16 bájt kiolvasható Az adatmozgatásra 1ms idő van (a 9600b/s miatt) Lab12_1a feladat: USRT adás A MiniRISC adatmemóriában készítsünk elő egy 16 bájtnál rövidebb üzenetet (pl. NEPTUN kód) Az üzenet legyen nulla végkarakteres a könnyű kezelhetőség érdekében Programozzuk fel a MiniRISC USRT perifériát adásra A parancsregiszterben TXEN=1, TXCLR=1, RXCLR=1 Megszakítás nincs engedélyezve

Lab12_1a feladat: USRT adás Az üzenetet egyszer kell elküldeni A küldő programrészlet: Egymás után olvassuk a karaktereket Ellenőrizzük a végkaraktert, ha már az, akkor kilépés Ha nem, akkor kiírjuk az UD regiszterébe, a TX_FIFOban biztosan van szabad hely Címpointer inkrementálás és folytatás Lab12_1a feladat: USRT adás Az üzenetet egyszer kell elküldeni A küldő programrészlet: Egymás után olvassuk a karaktereket Ellenőrizzük a végkaraktert, ha már az, akkor kilépés Ha nem, akkor kiírjuk az UD regiszterébe, a TX_FIFOban biztosan van szabad hely Címpointer inkrementálás és folytatás

Lab12_1b feladat: USRT adás A MiniRISC adatmemóriában készítsünk elő egy 16 bájtnál hosszabb üzenetet (pl. LOOONG üzenet) Az üzenet legyen nulla végkarakteres a könnyű kezelhetőség érdekében Programozzuk fel a MiniRISC USRT perifériát adásra a korábbi paraméterekkel A parancsregiszterben TXEN=1, TXCLR=1, RXCLR=1 Megszakítás nincs engedélyezve Lab12_1b feladat: USRT adás Használjuk az előző programkódot a LOOONG üzenet átvitelére Az üzenetet egyszer kell elküldeni Miért nem hibátlan a LOOONG üzenet átvitele? Melyik státuszregiszter bitet használná a hiba elkerülésére? Módosítsa úgy a programot, hogy az üzenet hosszától függetlenül az átvitel hibamentes legyen!

Lab12_1a feladat: USRT adás Az üzenetet egyszer kell elküldeni A küldő programrészlet: Egymás után olvassuk a karaktereket Ellenőrizzük a végkaraktert, ha már az, akkor kilépés Ha nem, akkor kiírjuk az UD regiszterébe, a TX_FIFO ban biztosan van szabad hely Címpointer inkrementálás és folytatás Lab12: Az SPI soros adatátvitel Az SPI soros adatátviteli interfész elsősorban áramkörön belüli, áramkörök közötti adatátvitelre szolgál 4 vezetékes szinkron interfész CSn Periféria kiválasztó jel SCK Soros órajel MOSI Master kimenet, Slave bemenet MISO Master bemenet, Slave kimenet

Lab12: Az SPI soros adatátvitel Az SPI soros adatátviteli interfész nagyon flexibilis, sok különböző megvalósítása létezik 4 féle üzemmód Tetszőleges adatméret Egyirányú kapcsolat (pl. csak bemenet) Több bites kiterjesztés Busz topológia Láncba kapcsolás Nagy sebesség Lab12: Az SPI soros adatátvitel A MiniRISC processzor nem rendelkezik hardveres SPI perifériával Az SPI interfész a GPIO periférián keresztül, bitbanging módban realizálható A megoldás rugalmas, tetszőleges előíráshoz könnyen adaptálható Az elérhető sebesség konfiguráció és protokoll függő

Lab12_2: Az SPI interfész realizálása Az SPI interfész szoftveres használatát egy TMP12 típusú hőmérséklet szenzor modul illesztésén keresztül ismertetjük A szenzor modul kapcsolási rajza a következő: Lab12_2: Az SPI interfész realizálása Az SPI interfész jelei az A csatlakozó 8 bites GPIO_A perifériájához kapcsolódnak, a következőképpen: CSn A[0], SCK A[1], MISO A[2] CSn, SCK kimeneti jelek, MISO bemenet A GPIO_A periféria felprogramozása:

Lab12_2: Az SPI interfész realizálása A TMP121 SPI kimeneti interfész idődiagramja: A CSn és SCK kimenetek programozásával jellegre hasonló változásokat generálunk és SCK = 1, azaz magas értéke alatt beolvassuk az éppen aktuális bitet A beolvasott bitet egy (2 db 8 bitesből képezett) 16 bites regiszterpárba léptetjük A 16 bit beolvasása után CSn = 1 és SCK = 0 értékkel alaphelyzetbe állítjuk a vezérlőjeleket Lab12_2a feladat: A TMP121 olvasása Készítsük el azt a read adatbeolvasó szubrutint, ami bit banging módban használva a GPIO_A periféria A[2:0] lábait, beolvassa a TMP121 SPI kimeneti interfészén elérhető hőmérséklet adatot és 16 bites adattal az {r9:r8} regiszterben tér vissza A GPIO_A[2] bitpozícióban beolvasott bit helyes beléptetése a 16 bites eredményregiszterbe különböző módokon lehetséges A minta szubrutin ezt tesztelés nélkül oldja meg Értelmezzük a megoldást!

Lab12_2a feladat: A TMP121 olvasása Az SPI adatbeolvasó szubrutin Lab12_2a feladat: A TMP121 olvasása A beolvasott 16 bit adatban egy 13 bites, fixpontos (13.4) formátumú, kettes komplemens valós szám definiálja a hőmérséklet értéket Tehát a beolvasott érték további feldolgozást kíván 3 LSB bit kiléptetése előjeles aritmetikai léptetéssel Eredmény: 16 bites, 4 digites érték Ebből 3 digit egészrész Egy digit törtrész Az érték hexadecimálisan kijelezhető a 4 digites 7 szegmenses kijelzőn

Lab12_2a feladat: A TMP121 olvasása Készítsük el a skálázott értéket hexadecimálisan megjelenítő programot A hexadecimális 7 szegmenses átkódolást az adatmemóriában elhelyezett táblázattal végezzük A táblázat adatai a következők: Tipp: A MiniRISC GUI Display lapján a szegmensképekre kattintva a szükséges kódok könnyen származtathatók Lab12_2a feladat: A TMP121 olvasása Az egyes digitek konvertálása a következő utasításokkal végezhető el: Ugyanezt kell elvégezni mind a 4 digitre A DIG1 esetében be kell kapcsolni a törtrészt jelentő pontot is! Vizsgáljuk meg a szenzor érintésével a hőmérséklet változást!

Lab12_2b feladat: A TMP121 olvasása A hexadecimális kijelzés nem feltétlenül felhasználóbarát Ezen a problémán egy BIN DEC vagy HEX DEC konvertálással segíthetünk. Sajnos a konverzió kicsit bonyolult Ezt a feladatot is táblázatosan oldjuk meg! A laborhőmérsékletet 0 és +49 C közöttinek tételezzük fel, a táblázatot erre méretezzük! Emiatt a legfelső digit 0 értékét nem használjuk Külön táblázat a 4 bites, 1 hexa digites törtrésznek! A pontmátrix kijelzőn jelenítsünk meg egy C jelet! Lab12_2b feladat: A TMP121 olvasása A decimális kijelzéshez tartozó tartozó táblázatok: SEG_TAB: 7 szegmenses konverter, itt is kell, bár csak decimális számokra HEX_DEC: Hexa 0 31 konvertálása decimális 0 49 re FRAC: Hexa 0/16 15/16 konvertálása 0.0 0.94 re CELS_STR: A C bitkép 5x7 ponton