ARM Cortex-M0+ mikrovezérlő programozása KEIL MDK 5 környezetben. 4. Aszinkron soros kommunikáció (UART)
|
|
- Ildikó Király
- 8 évvel ezelőtt
- Látták:
Átírás
1 ARM Cortex-M0+ mikrovezérlő programozása KEIL MDK 5 környezetben 4. Aszinkron soros kommunikáció (UART) 1
2 Felhasznált anyagok, ajánlott irodalom Joseph Yiu: The Definitive Guide to ARM Cortex -M0 and Cortex-M0+ Processors (2nd Ed.) Muhammad Ali Mazidi, Shujen Chen, Sarmad Naimi, Sepehr Naimi: Freescale ARM Cortex-M Embedded Programming ARM University Program: Course/Lab Material for Teaching Embedded Systems/MCUs (for the FRDM-KL25Z board) Trevor Martin: The Designer s Guide to the Cortex-M Processor Family Freescale: MKL25Z128VLK4 MCU datasheet Freescale: KL25 Sub-Family Reference Manual Freescale: FRDM-KL25Z User Manual 2
3 Miért kell soros kommunikáció? Az adatok bájt vagy szó szervezésűek (8, 16, 32, stb.), ilyen adagokban küldjük vagy fogadjuk. Sok esetben nem célszerű az adatbiteket egyszerre, párhuzamosan küldeni Költség és súly: több vezeték kell, nagyobb csatlakozókra van szükség Mechanikus megbízhatóság: több vezeték=> több csatlakozási pont => több érintkezési meghibásodási lehetőség Időzítési bonyodalmak: előfordulhat, hogy némelyik bit később érkezik meg, mint a többi, a vezetékek ellenállásának és szórt kapacitásának eltérései miatt Áramkör bonyolultság és áramigény: nem biztos, hogy szeretnénk beépíteni 16 db rádió adóvevőt 3
4 Példa párhuzamos csatlakozásra Peripheral Wr Rd Data Peripheral Data Rd Wr MCU Data Rd Wr Peripheral Data Rd Wr Peripheral Dedikált pont pont kapcsolódás Párhuzamos adatvonalak, küldő/fogadó vezetékek az MCU és a perifériák között Gyors, szimultán adatküldést is támogat Sok vezetéket, nyomtatott áramkörön sok helyet igényel, rosszul skálázható 4
5 Párhuzamos buszrendszer MCU Select Peripheral Wr Rd Data Select Peripheral Wr Rd Data Select Peripheral Wr Rd Data Select Peripheral Wr Rd Data Minden eszköz a buszvezetékekre csatlakozik Az MCU egyedi választóvonalakat használ a periféria kiválasztására Az MCU kevesebb vezetéket használ, de az adatbitenként külön vezeték kell Az MCU egyszerre csak egy perifériával kommunikálhat 5
6 Szinkron soros adatküldés D3 Párhuzamos adatbemenet Parallel Data In D2 D1 D0 D Q D Q D Q D Q Serial Data Out Serial Data In D Q D Q D Q D Q Clk Clk Adatküldő egység D3 D2 D1 Parallel Data Out Párhuzamos adatkimenet vevőegység D0 Órajel Soros adat Adat mintavételezés a vevőben Shift regiszterek és órajel segítségével történik a soros és párhuzamos adatformátumok közötti átalakítás Szinkron: az adatjellel szinkronban egy ütemvezérlő órajelet is küldeni kell 6
7 Szinkron kétirányú soros adatbusz MCU Select Peripheral Clk DIn DOut Select Peripheral DIn DOut Select Peripheral DIn DOut Select Peripheral DIn DOut Két adatvonalat használunk egyet küldésre, egyet fogadásra. Szimultán adatküldést és fogadást tesz lehetővé (full-duplex kapcsolat) az MCU és egy kiválasztott periféria között. A kapcsolat aszimmetrikus: az MCU a master eszköz, ez biztosítja az órajelet és a kiválasztó jelet. A megszólított eszköz a slave, amelynek alkalmazkodnia kell a masterhez. Ilyen típusú kapcsolatot valósítanak meg meg a mikrovezérlő SPI moduljai (SPI = Soros Periféria Illesztő). 7
8 Aszinkron soros kommunikáció (UART) adat bitek Paritás Adat mintavételezési időpontok a vevőnél Time Zero T bit *1.5 T bit *2.5 T bit *3.5 Nincs szükség órajel továbbításra! Az adóban és a vevőben helyileg kell órajelet előállítani Az adó egy állandó értékű start bitet kell, hogy küldjön minden adategység előtt az adás kezdetének jelzésére A vevő detektálja a start bit homlokélét, és ehhez viszonyítva jelöli ki a mintavételezési időket, az N-edik adatbit számára T bit *(N+1.5) időeltolással Stop bitet is használunk az időzítési hibák detektálása érdekében T bit *4.5 T bit *5.5 T bit *6.5 T bit *7.5 T bit *8.5 T bit *9.5 T bit *10.5 8
9 UART kommunikáció jellemzői Adatkeret: Start bit (1 bit) Adat (LSB vagy MSB sorrend, adatméret 7, 8, 9 bit) Opcionális paritásbit használható az adatban Adat bitek Üzenet Paritás szereplő egyesek páros vagy páratlan számának jelzésére. Stop bit (egy vagy két stop bit használható) Az adó és a fogadó fél meg kell, hogy egyezzen: Kommunikációs sebesség (300 baud, 600, 1200, 2400, 9600, 14400, 19200, stb.) Szofisztikált hálózati protokollok üzenetenként további adatokat tartalmazhatnak: Médium hozzáférés ha több egység kapcsolódik a buszra, arbitrációra van szükség annak eldöntésére, hogy melyikük küldhet adatot Címzési információ melyik csomópontnak szól az üzenet? Nagyobb méretű keretezett üzenetcsomag Erősebb hibadetektáláshoz vagy hibajavításhoz szükséges információ (pl. CRC) Kérelem azonnali válaszért 9
10 Hibadetektálás Járulékos adat küldhető az adattévesztések detektálásához Specifikálni kell, hogy milyen paritásjelzést várunk: páros, páratlan vagy nincs. A paritásbit páratlan számúra egészíti ki az adatban szereplő egyesek számát (páratlan paritás esetén) vagy páros számúra (páros paritás esetén) például 6 db. 1 -es bitet tartalmaz, tehát a paritásbit 1 lesz páratlan, illetve 0 lesz páros paritás esetén például db. 1 -es bitet tartalmaz, tehát a paritásbit 0 lesz páratlan, illetve 1 lesz páros paritás esetén Egyetlen paritásbit jelzi, ha 1, 3, 5, 7 vagy 9 bit hibás, de nem detektálja a páros számú bithibákat. Erősebb hibadetektáló kód (pl. Cyclic Redundancy Check CRC) is létezik, mely több bitnyi (pl. 8, vagy 16) bites, és többféle hiba detektálását teszi lehetővé. Használja a CAN, USB, Ethernet, Bluetooth stb. 10
11 Eszközök soros kommunikációs fejlesztéshez Fárasztó és lassú a soros protokollok értelmezése oszcilloszkóppal Helyette használjunk olyan logikai analizátort, amely képes értelmezni az adatfolyamot Saelae 8-csatornásl Logikai Analizátor $150 ( USB porton csatlakozik a PC-hez Képes dekódolni az SPI, UART, I 2 C, 1- Wire, CAN, stb. kommunikációt Építs magadnak!: a Logic Sniffer vagy más hasonló projekt alapján 11
12 Szoftver megfontolások A kommunikáció aszinkron a programhoz képest is Nem lehet előre tudni, hogy a program merre jár Amikor a következő adat beérkezik Amikor a folyamatban levő adatátvitel befejeződik Amikor valamilyen hiba lép fel az átvitelben Valahogy szinkronizálni kell a program futását a kommunikációs interfésszel Lehetőségek Lekérdezés Várunk, amíg adat érkezik be Egyszerű, de nem hatékonyan használja a processzor idejét Megszakítás Megszakítjuk a program futását, ha új adat érkezik Hatékony, de bonyolultabb módszer 12
13 Soros kommunikáció és a megszakítások Több programszálat kell biztosítani a zavartalan kezeléshez Főprogram (és az abból hívott függvények) Transmit ISR akkor aktiválódik, amikor az eszköz kész új adat küldésére Receive ISR akkor aktiválódik, amikor új adat érkezett Error ISR akkor aktiválódik, ha adatátvitel közben hiba történt Adatbufferelés a programszálak között Megoldás: gyűrűs tár, beléptetési is kivételi mutatókkal Egy az adáshoz, egy a vételhez Főprogram vagy programszál send_string tx_isr Soros Illesztő get_string rx_isr 13
14 KL25 soros perifériák Az MKL25Z128VLK4 MCU soros kommunikációs perifériái: USB OTG periféria, amely Full speed (12 Mbit/s) és Low speed (1.5 Mbit/s) kommunikációra alkalmas 2 db SPI (Serial Peripheral Interface) modul 2 db I2C (Inter Integrated Circuits) modul 3 db UART (Universal Asynchron Transmitter Receiver) melyek közül az egyik kis fogyasztású UART0 Energia-takarékos MCU módokban is működhet Választható órajelforrás Túlmintavételezés 4x 32x UART1, UART2 Fix órajelforrás (a busz órajel) Túlmintavételezés 16x 14
15 UART modulok kivezetései Az alábbi táblázatban felsoroltuk azokat az UART kivezetéseket, amelyek a FRDM-KL25Z kártyán elérhetők. Zárójelben megadtuk a kivezetés üzemmódjának beállításához szükséges számot is, amit a megfelelő PORTx_PCRn portvezérlő regiszter MUX bitcsoportjába kell beírni az UART mód kiválasztásához. Például UART0 PTA1 és PTA2 kivezetések engedélyezése: SIM->SCGC5 = 0x0200; // PORTA engedélyezése PORTA->PCR[1] = 0x0200; // PTA1 UART RX módba állítása PORTA->PCR[2] = 0x0200; // PTA2 UART TX módba állítása Modul TX RX Megjegyzés UART0 PTA2 (2) PTA1 (2) OpenSDA-hoz csatlakozik PTD7 (3) PTD6 (3) PTE20 (4) PTE21 (4) UART1 PTE0 (3) PTE1 (3) Támogatott kivezetés PTC4 (3) PTC3 (3) UART2 PTE22 (4) PTE23 (4) Támogatott kivezetés PTD3 (3) PTD2 (3) PTD5 (3) PTD4 (3) 15
16 16
17 KL25Z soros perifériák engedélyezése SIM_SCGC4 regiszter A használni kívánt perifériát engedélyezni kell a SIM_SCGC4 regiszter megfelelő bitjének 1-be állításával 17
18 Az UARTx modulok regiszterei UART0 báziscím: 0x4006 A000, UART1 báziscím: 0x4006 B000, UART2 báziscím: 0x4006 C000 Az UART0 modul regiszterkészlete (8-bites regiszterek): (Freescale: KL25 Sub-Family Reference Manual, 39. fejezet) Regiszternév A regiszter funkciója Cím UART0_BDH Baud Rate Register High (adatsebesség - magas h.é.) 4006_A000 UART0_BDL Baud Rate Register Low (adatsebesség - alacsony h.é.) 4006_A001 UART0_C1 Control Register 1 (1. vezérlő regiszter) 4006_A002 UART0_C2 Control Register 2 (2. vezérlő regiszter) 4006_A003 UART0_S1 Status Register 1 (1. állapotjelző regiszter) 4006_A004 UART0_S2 Status Register 2 (2. állapotjelző regiszter) 4006_A005 UART0_C3 Control Register 3 (3. vezérlő regiszter) 4006_A006 UART0_D Data Register (Adat regiszter) 4006_A007 UART0_MA1 Match Address Register 1 (1. címegyezés regiszter) 4006_A008 UART0_MA2 Match Address Register 2 (2. címegyezés regiszter) 4006_A009 UART0_C4 Control Register 4 (4. vezérlő regiszter) 4006_A00A UART0_C5 Control Register 5 (5. vezérlő regiszter) 4006_A00B 18
19 Egyszerűsített blokkvázlat Konfigurációs regiszterek: Mielőtt használnánk az UART modult, konfigurálni kell azt. Be kell állítani az adatsebességet, a szóhosszt, a stop bitek számát, a megszakítást (ha kell) stb. A legfontosabb regiszterek: UARTx_BDH, UARTx_BDL, UARTx_C1, és UARTx_C2. Adatküldő és vételi regiszter: az adatküldés vagy fogadás esetünkben egyszerűen az UART_D regiszter írásval/olvasásával történik. Státusz regiszter: a státusz regiszter bitjei az UART modul állapotát, különféle események bekövetkeztét jelzik, például új adat beérkezését, a beérkezett adat érvénytelenségét, az adatküldés végét stb. A számunkra legfontosabb állapotjelző biteket az UARTx_S1 regiszter tartalmazza. 19
20 UART0 számára többféle forrásból választhatunk. Ha STOP módban is működtetni akarjuk UART0-t, a választott órajel generátor is működjön abban a módban! UART órajel források Az órajel kiválasztása a SIM_SOPT2 regiszter segítségével történik. (Lásd: KL25 Sub-Family Reference Manual, 5. és 12. fejezet) 20
21 Baud Rate Generator UART0 esetén 16x-tól különböző túlmintavételezés is választható! Az UART modul órajelének frekvenciáját le kell osztani a kívánt bitsebesség és a túlmintavételezési arány szorzatának eléréséhez Példa: 24 MHz buszfrekvencia -> 4800 baud, 16-szoros túlmintavételezéssel Osztó = /(4800*16) = Kerekíteni kell a legközelebbi egészre (312 vagy 313), végeredményben lesz egy kis eltérés a névleges értéktől. UART1, illetve UART2 órajele csak a periféria busz órajele lehet: - Alapértelmezett órajel esetén (CLOCK_SETUP = 0) a busz órajel 10,48576 MHz-es - 48 MHz CPU frekvencia (CLOCK_SETUP = 1, vagy 4) esetén a busz órajel 24 MHz-es 21
22 SBR és OSR konfigurálása A 13 bites SBR értéke közötti érték lehet, s bitjeit a BDH:BDL regiszterekbe kell írni UART0 esetén meg kell adni a túlmintavételezési arányt is (OSR), melynek 1-gyel csökkentett értékét az UART0_C4 regiszter OSR bitcsoportjába kell írni. 22
23 Bemenő adat túlmintavételezés Vételnél az UART túlmintavételezi (oversampling) a bejövő adatvonalat Az extra minta lehetővé teszi a többségi szavazást, javítja a zajérzéketlenséget Jobb szinkronizálás a bejövő adathoz UART0 konfigurálható túlmintavételezés: 4-szerestől 32-szeresig A kívánt túlmintavételezési arány 1 írandó az UART0_C4 vezérlőregiszter OSR bitcsoportjába. UART1, UART2 fix 16-szoros túlmintavételezés 23
24 UART vezérlő regiszter 1 (UART0_C1) LOOPS: Visszahurkolás/egyvezetékes (TX/RX) mód DOZEEN: Energiatakarékos mód engedélyezés UART tiltása alvás módban RSRC: Visszahurkolás vagy egyvezetékes mód közötti választás M: 9-bites adatmód (8-bites mód helyett) WAKE: Felébresztési mód ILT: Tétlen vonal típusa PE: Paritás engedélyezés (ha 1) PT: Paritás (0: páros, 1: páratlan) Egyszerű esetekben megfelel számunkra az alapértelmezett UART0_C1 = 0; beállítás 24
25 UART vezérlő regiszter 2 (UART0_C2) Megszakítás engedélyezés TIE: Megszakítás ha a küldő adatregiszter üres TCIE: Megszakítás az átvitel végén RIE: Megszakítás ha van beérkezett adat Modul engedélyezés TE: Adó (transmitter) engedélyezés RE: Vevő (receiver) engedélyezés Továbbiak RWU: a vevőt standby módba teszi, felébresztés az előírt feltételek esetén SBK: Break karakter (csupa nulla) küldése Az UARTx modulok konfigurálása előtt le kell tiltani az adó és vevőegységet! 25
26 UART státusz regiszter 1 (UART_S1) TDRE: A küldő regiszter felszabadult, újabb adatot írhatunk bele TC: Adatátvitel kész. RDRF: Adat érkezett a vételi adatregiszterbe IDLE: az UART vevő bemenete tétlen már egy karakternyi ideje OR: Ráfutási hiba. A beérkezett adat felülírta a korábbi, még nem kiolvasottat. NF: Zaj jelző. A vett bitminták ellentmondásosak (túl gyors változás) FE: Keretezési hiba. A stop bit helyén 0-t érzékeltünk 1 helyett. PF: Paritáshiba a vett adatban. 26
27 Az UART használata Mikor küldhetünk adatot? A küldő buffer üres legyen! Vizsgáljuk az UARTx->S1 TDRE jelzőt! Vagy használjunk megszakítást a küldéshez, ehhez azonban várakozási sorba kell pakolni az adatokat! Mikor tudunk adatot fogadni? A vevőbuffer megtelt legyen Vizsgáljuk a UARTx->S1 RDRF jelzőt Vagy használjunk megszakítást a fogadáshoz, majd pakoljuk várakozási sorba az adatokat Írjuk az adatot az UARTx_D (CMSISben UARTx->D) regiszterbe! Az adatot az UARTx_D (CMSIS esetén UARTx->D) regiszterből vehetjük elő 27
28 Program4_1: UART0 egyszerű adatküldés Az első programban "Yes" szöveget küldünk ki a FRDM-KL25Z kártya UART0 Tx kimenetén (PTA2) keresztül a számítógép felé, az OpenSDA által biztosított virtuális soros portra. A konfigurálás lépései: 1. Engedélyezzük az UART0 modult a SIM_SCGC4 regiszter 10. bitjének 1-be állításával. 2. Legyen FLL az UART0 órajel forrása: SIM_SOPT2 bit27-26 = 01 és bit16 = Az UART0 Tx/Rx letiltása konfigurálás előtt: UART0_C2 regiszter TE=0, RE = Az UART0 bitsebesség konfigurálása UART0_BDH és UART0_BDL beírásával. 5. Túlmintavételezés konfigurálása: OSR = 16x-hoz UART0_C4-ba írjunk 0x0F-et! 6. Adatformátum konfigurálása: 1 stop bit, nincs paritás vizsgálat, 8-bites adat megadásához írjunk 0x00-t az UART0_C1 vezérlő regiszterbe! 7. Engedélyezzük UART0 adóját: írjunk 0x08-at az UART0_C2 regiszterbe (TE bit = 1)! 8. Engedélyezzük az A portot: a SIM_SCGC5 regiszter 9. bitje legyen 1! 9. Válasszuk ki a PTA2 kivezetés Alt2 funkcióját (UART0_Tx) PORTA_PCR2 MUX=2. Az adatküldés lépései: 10. Vizsgáljuk a Status Register 1 (UART0_S1) TDRE bitjét és várjunk addig, amíg a küldő buffer üressé válik (TDRE = 1)! 11. Írjuk bele a kiküldendő bájtot az UART0_D adatregiszterbe! 12. Újabb karakter kiküldéséhez menjünk a 10. ponthoz! 28
29 Program4_1/1. A program forrása: Mazidi et al., Freescale ARM Cortex-M Embedded Programming Változtatás: BDH:BDL újraszámolása az eltérő frekvencia miatt, #include <MKL25Z4.h> void UART0_init(void); void delayms(int n); int main (void) { UART0_init(); while (1) { while(!(uart0->s1 & 0x80)); UART0->D = 'Y'; while(!(uart0->s1 & 0x80)); UART0->D = 'e'; while(!(uart0->s1 & 0x80)); UART0->D = 's'; delayms(2000); // UART0 kimenet inicializálása // Várunk, míg üres lesz a kimeneti buffer! // karakter küldés (TDRE = 1 után) // Várunk, míg üres lesz a kimeneti buffer! // karakter küldés // Várunk, míg üres lesz a kimeneti buffer! // karakter küldés // Várunk egy kicsit... void delayms(int n) { // Késleltető függvény int i, j; for(i = 0 ; i < n; i++) for (j = 0; j < 3500; j++); // Alapértelmezett órajelhez ( MHz) Folytatás a következő oldalon... 29
30 Program4_1/2. /* UART0 Tx inicializálása 9600 Baud átviteli sebességre * Baudrate = UART0 clock freq / [OSR+1] / BDH:BDL * Esetünkben MHz / [15 + 1] / 0x00:0x88 = 9637 bps, * ami elfogadható eltérés a névleges értéktől. */ void UART0_init(void) { SIM->SCGC4 = 0x0400; // UART0 periféria engedélyezése SIM->SOPT2 = 0x ; // MCGFLLCLK választása UART0 baudrate órajelnek UART0->C2 = 0; // UART0 letiltása a konfigurálás időtartamára UART0->BDH = 0x00; // Baudrate = 9600 bps (bit8 - bit12) UART0->BDL = 0x88; // Baudrate = 9600 bps (bit0 - bit7) UART0->C4 = 0x0F; // Túlmintavételezési arány = 16 UART0->C1 = 0x00; // 8-bites adatformátum UART0->C2 = 0x08; // Adatküldés engedélyezése SIM->SCGC5 = 0x0200; PORTA->PCR[2] = 0x0200; // PORTA engedélyezése // PTA2 legyen UART0_Tx üzemmódban 30
31 Program4_1 futási eredménye 31
32 Lekérdezéses küldés/fogadás Hexadecimális bitvarázslás helyett használhatjuk az előre definiált elnevezéseket is! void UART2_Transmit_Poll(uint8_t data) { // wait until transmit data register is empty while (!(UART2->S1 & UART_S1_TDRE_MASK)); UART2->D = data; uint8_t UART2_Receive_Poll(void) { // wait until receive data register is full while (!(UART2->S1 & UART_S1_RDRF_MASK)); return UART2->D; 32
33 Program4_2: UART0 egyszerű adatfogadás Karakter fogadása a FRDM-KL25Z kártya UART0 Rx bemenetén. A vett karakter legalsó bitjeivel az RGB LED állapotát vezéreljük. A LED kezelése Program2_7-hez hasonlóan történik. A konfigurálás lépései: 1. Engedélyezzük az UART0 modult a SIM_SCGC4 regiszter 10. bitjének 1-be állításával. 2. Legyen FLL az UART0 órajel forrása: SIM_SOPT2 bit27-26 = 01 és bit16 = Az UART0 Tx/Rx letiltása konfigurálás előtt: UART0_C2 regiszter TE=0, RE = Az UART0 bitsebesség konfigurálása UART0_BDH és UART0_BDL beírásával. 5. Túlmintavételezés konfigurálása: OSR = 16x-hoz UART0_C4-ba írjunk 0x0F-et! 6. Adatformátum konfigurálása: 1 stop bit, nincs paritás vizsgálat, 8-bites adat megadásához írjunk 0x00-t az UART0_C1 vezérlő regiszterbe! 7. Engedélyezzük UART0 vevőjét: írjunk 0x04-et az UART0_C2 regiszterbe (RE bit = 1)! 8. Engedélyezzük az A portot: a SIM_SCGC5 regiszter 9. bitje legyen 1! 9. Válasszuk ki a PTA1 kivezetés Alt2 funkcióját (UART0_Rx) PORTA_PCR1 MUX=2. Az adatfogadás lépései: 10. Vizsgáljuk a Status Register 1 (UART0_S1) RDRF bitjét és várjunk addig, amíg a vevő bufferbe karakter érkezik (RDRF = 1)! 11. Olvassuk ki a vett bájtot az UART0_D adatregiszterből! 12. Újabb karakter fogadásához menjünk a 10. ponthoz! 33
34 Program4_2/1. A program forrása: Mazidi et al., Freescale ARM Cortex-M Embedded Programming #include <MKL25Z4.h> void UART0_init(void); void LED_init(void); // UART0 Rx bemenet inicializálása // RGB LED inicializálása int main (void) { char c; UART0_init(); LED_init(); while (1) { while(!(uart0->s1 & 0x20)); // UART0 Rx bemenet inicializálása // RGB LED inicializálása // Adatbeérkezésre várunk c = UART0->D; // Kiolvassuk a vett karaktert if (c & 1) PTB->PCOR = 0x40000; // Piros LED: BE (bit18 = 0) else PTB->PSOR = 0x40000; // Piros LED: KI (bit18 = 1) if (c & 2) PTB->PCOR = 0x80000; // Zöld LED: BE (bit19 = 0) else PTB->PSOR = 0x80000; // Zöld LED: KI (bit19 = 1) if (c & 4) PTD->PCOR = 0x02; // Kék LED: BE (bit1 = 0) else PTD->PSOR = 0x02; // Kék LED: KI (bit1 = 0) Folytatás a következő oldalon... Megjegyzés: az adatküldő terminál emulátor programot úgy konfiguráljuk, hogy a begépelt karakterhez elküldéskor ne fűzzön hozzá semmilyen sorvége jelet! 34
35 Program4_2/2. /* UART0 Rx inicializálása 9600 Baud átviteli sebességre */ void UART0_init(void) { SIM->SCGC4 = 0x0400; // UART0 periféria engedélyezése SIM->SOPT2 = 0x ; // MCGFLLCLK választása UART0 baudrate órajelnek UART0->C2 = 0; // UART0 letiltása a konfigurálás idotartamára UART0->BDH = 0x00; // Baudrate = 9600 bps (bit8 - bit12) UART0->BDL = 0x88; // Baudrate = 9600 bps (bit0 - bit7) UART0->C4 = 0x0F; // Túlmintavételezési arány = 16 UART0->C1 = 0x00; // 8-bites adatformátum UART0->C2 = 0x04; // Adatfogadás engedélyezése SIM->SCGC5 = 0x0200; // PORTA engedélyezése PORTA->PCR[1] = 0x0200; // PTA1 legyen UART0_Rx üzemmódban void LED_init(void) { SIM->SCGC5 = 0x400; // Port B engedélyezése SIM->SCGC5 = 0x1000; // Port D engedélyezése PORTB->PCR[18] = 0x100; // PTB18 legyen GPIO (MUX = 1) PTB->PDDR = 0x40000; // PTB18 legyen kimenet (bit18) PTB->PSOR = 0x40000; // Piros LED lekapcsolása (negatív logika!) PORTB->PCR[19] = 0x100; // PTB19 legyen GPIO (MUX = 1) PTB->PDDR = 0x80000; // PTB19 legyen kimenet (bit19=1) PTB->PSOR = 0x80000; // Zöld LED lekapcsolása (negatív logika!) PORTD->PCR[1] = 0x100; // PTD1 legyen GPIO (MUX = 1) PTD->PDDR = 0x02; // PTD1 legyen GPIO (MUX = 1) PTD->PSOR = 0x02; // Kék LED lekapcsolása (negatív logika!) 35
36 USB - UART átalakító A mai laptopokon már nem találunk RS-232 portot. Akkor hogyan kommunikáljunk az UART eszközökkel? USB - UART átalakító A PC felé USB eszköz (virtuális soros port) Logikai szint (3.3V, vagy 5V) a mikrovezérlő UART portja felől nézve (nem RS232 jelszinteket használ!) FT232 USB - soros átalakító Választható jelszint (3,3V vagy 5V) Modemvezérlő jelek (pl. DTR, RTS) Tápfeszültséget is ad 5 V, 3.3 V az USB buszról RX vonalon küldhetünk adatot a PC felé TX vonalon érkezik, amit a PC küld Az adatsebesség a PC alkalmazásban állítható (PUTTy, Termite, TeraTerm, HyperTerminal stb.) 36
37 Program4_3: UART2 egyszerű adatküldés "Hello" szöveget küldünk folyamatosan a FRDM-KL25Z kártya UART2 Tx (PTE22) kimenetén keresztül. Használjunk egy 3,3 V jelszintű USB-soros átalakítót az üzenetek PC-re küldéséhez! A konfigurálás lépései: 1. Engedélyezzük az UART2 modult a SIM_SCGC4 regiszter 12. bitjének 1-be állításával. 2. Az UART2 Tx/Rx letiltása konfigurálás előtt: UART2_C2 regiszter TE=0, RE = Az UART2 bitsebesség konfigurálása UART2_BDH és UART2_BDL beírásával. 4. Adatformátum konfigurálása: 1 stop bit, nincs paritás vizsgálat, 8-bites adat megadásához írjunk 0x00-t az UART2_C1 vezérlő regiszterbe! 5. Engedélyezzük UART2 adóját: írjunk 0x08-at az UART2_C2 regiszterbe (TE bit = 1)! 6. Engedélyezzük az E portot: a SIM_SCGC5 regiszter 13. bitje legyen 1! 7. Válasszuk ki a PTE22 kivezetés Alt4 funkcióját (UART2_Tx) PORTE_PCR22 MUX=4. Az adatküldés lépései: 8. Vizsgáljuk a Status Register 1 (UART2_S1) TDRE bitjét és várjunk addig, amíg a küldő buffer üressé válik (TDRE = 1)! 9. Írjuk bele a kiküldendő bájtot az UART0_D adatregiszterbe! 10. Újabb karakter kiküldéséhez menjünk a 8. ponthoz! 37
38 Program4_3/1. A program forrása: Mazidi et al., Freescale ARM Cortex-M Embedded Programming Változtatások: BDH:BDL újraszámolása az eltérő frekvencia miatt, PTE22 kimenet használata #include <MKL25Z4.h> void UART2_init(void); void delayms(int n); // UART2 kimenet inicializálása // Késlelteto függvény int main (void) { char message[] = "Hello\r\n"; int i; UART2_init(); while (1) { for (i = 0; i < 7; i++) { // Ez lesz a kiírandó szöveg // Ciklusváltozó while(!(uart2->s1 & 0x80)); // Várunk, míg kiürül a kimeneti buffer! UART2->D = message[i]; // Következo karakter küldése delayms(2000); // Várunk egy kicsit... Folytatás a következő oldalon... 38
39 Program4_3/2. /* UART2 Tx (PTE22) inicializálása 9600 Baud átviteli sebességre * Baudrate = bus freq/16/bdh:bdl = MHz/16/0x00:0x44 = 9637 bps, */ void UART2_init(void) { SIM->SCGC4 = 0x1000; // UART2 periféria engedélyezése UART2->C2 = 0; // UART2 letiltása a konfigurálás időtartamára UART2->BDH = 0x00; // Baudrate = 9600 bps (bit8 - bit12) UART2->BDL = 0x44; // Baudrate = 9600 bps (bit0 - bit7) UART2->C1 = 0x00; // 8-bites adatformátum UART2->C3 = 0x00; // Nincs hibainterrupt UART2->C2 = 0x08; // Adatküldés engedélyezése SIM->SCGC5 = 0x2000; // PORTE engedélyezése (bit 13) PORTE->PCR[22] = 0x0400; // PTE22 legyen UART2_Tx üzemmódban (Alt4) //Színezéssel az UART2 TX specifikus részeket jelöltük meg void delayms(int n) { // Késleltető függvény int i, j; for(i = 0 ; i < n; i++) for (j = 0; j < 3500; j++); // Alapértelmezett órajelhez ( MHz) 39
40 Bekötési vázlat, futási eredmény Program4_3 futási eredménye a fentebbi ábrán látható. Mivel sorvége jelzést (CR+LF) is küldünk, miden kiíratási ciklus új sort kezd. 40
41 Program4_4/1. /* Ez a program egy karaktert fogad az UART2 port bemenetén, majd eggyel * megnövelve, visszaírja azt az UART2 port kimenetére. * Használjunk egy USB-soros átalakítót a kapcsolódáshoz és egy terminál emulátor * programot az üzenetek megjelenítéséhez! Beállítás: 9600 bps, 8N1, no handshake. * Kivezetések: UART2 Tx a PTE22, UART Rx pedig a PTE23 lábra konfigurálva */ #include <MKL25Z4.h> void UART2_init(void); int main (void) { char c; UART2_init(); while (1) { while(!(uart2->s1 & 0x20)); c = UART2->D ; while(!(uart2->s1 & 0x80)); UART2->D = c+1; // UART2 kimenet inicializálása // Karakter beérkezésre várunk // Beolvassuk a vett karaktert // Várunk míg kiürül a küldo buffer // Kiküldjük az eggyel megnövelt kódot Folytatás a következő oldalon... 41
42 Program4_4/2. /* UART2 Tx (PTE22) inicializálása 9600 Baud átviteli sebességre * Baudrate = bus freq/16/bdh:bdl, Esetünkben MHz/16/0x00:0x44 = 9637 bps, */ void UART2_init(void) { SIM->SCGC4 = 0x1000; // UART2 periféria engedélyezése UART2->C2 = 0; // UART2 letiltása a konfigurálás idotartamára UART2->BDH = 0x00; // Baudrate = 9600 bps (bit8 - bit12) UART2->BDL = 0x44; // Baudrate = 9600 bps (bit0 - bit7) UART2->C1 = 0x00; // 8-bites adatformátum UART2->C3 = 0x00; // Nincs hibainterrupt UART2->C2 = 0x0C; // Adatküldés és fogadás engedélyezése SIM->SCGC5 = 0x2000; // PORTE engedélyezése (bit 13) PORTE->PCR[22] = 0x0400; // PTE22 legyen UART2_Tx üzemmódban (Alt4) PORTE->PCR[23] = 0x0400; // PTE23 legyen UART2_Rx üzemmódban (Alt4) // Színezéssel jelölve: változások a Program4_3-hoz képest Megjegyzések: Az adatküldő terminál emulátor programot úgy konfiguráljuk, hogy a begépelt karakter(ek)hez elküldéskor ne fűzzön hozzá semmilyen sorvége jelet! Ha egyszerre több karaktert küldünk, a vevő lefulladhat (ráfutási hiba?). Mivel a programunkban a hiba nincs lekezelve, az első hiba után az UART modul újraindulásig nem tud fogadni további karaktereket. 42
43 Printf() kimenet átirányítása Joseph Yiu: The Definitive Guide to ARM Cortex -M0 and Cortex-M0+ Processors c. könyvének egyik mintapéldája (18_2_uart_retarget) alapján bemutatjuk, hogy a stdio printf()/scanf() ki- és bemenetet hogyan irányíthatjuk át az UART0 portra. Az eredeti programot leegyszerűsítettük (kiszedve a LED vezérlést) és a kimenetet némiképp átalakítottuk (kiíratjuk a vett karakter betűképét és ANSI kódját is). Az átirányításra általában két lehetőség kínálkozik: Retargeting: néhány alacsony szintű I/O függvény felüldefiniálásával a kívánt kimenetre (UART vagy LCD) irányithatjuk a ki/bemenetet. Mi most ezt próbáljuk ki. Semihosting: Némelyik fejlesztői eszköz és környezet lehetővé teszi, hogy a stdio kimenet a hardveres nyomkövető egység legyen, s azon keresztül történhet adat ki- és bevitel. Ez a lehetőség azonban nem minden fejlesztőeszköznél áll rendelkezésre, viszonylag lassú, és csak debug módban használható. Az első módszerhez a Keil MDK5 esetén a fputc(), fgetc() és ferror() függvényeket kell felüldefiniálni. A szükséges kódrészeket a mintaprojekt retarget.c állomány tartalmazza. Az UART0 kezeléséhez szükséges függvényeket (UART_config(), UART_putc(), UART_getc(), UART_echo(), UART_puts()) az uart_funcs.c állomány tartalmazza. Ennek ismertetésére itt nem térünk ki, hasonlóan lekérdezéssel működik, mint az előbb bemutatott programok. 43
44 Retarget.c #include <stdio.h> #include <time.h> #include <rt_misc.h> #pragma import( use_no_semihosting_swi) extern char UART_putc(char ch); extern char UART_getc(void); struct FILE { int handle; /* Add whatever you need here */ ; FILE stdout; FILE stdin; int fputc(int ch, FILE *f) { if (ch == 10) UART_putc(13); return (UART_putc(ch)); int fgetc(file *f) { return (UART_putc(UART_getc())); int ferror(file *f) { /* Your implementation of ferror */ return EOF; void _ttywrch(int ch) { UART_putc(ch); void _sys_exit(int return_code) { label: goto label; /* endless loop */ 44
45 Az UART_Retarget program #include <MKL25Z4.H> #include "stdio.h" // System runs at 48MHz // Baud rate 38400, 8 bit data, no parity, 1 stop bit // UART functions extern void UART_config(void); extern char UART_putc(char ch); extern char UART_getc(void); extern void UART_echo(void); extern void UART_puts(char * mytext); int main(void) { char txt_buf[100]; char c; SystemCoreClockUpdate(); UART_config(); printf("\r\nwelcome to FRDM-KL25Z board!\r\n"); printf("please enter your name:"); scanf("%99s", txt_buf); printf("\nname entered :[%s]\n", txt_buf); while(1){ c = UART_getc(); //Read one character printf("received char: %c = %d\r\n",c,c); A 48 MHz-es órajel beállításához az 1. sorszámú előre definált beállítást kell kiválasztanunk. Ehhez a projekt lefordítása előtt a system_mkl25z4.h állományba be kell szúrnunk az alábbi sort: #define CLOCK_SETUP 1 Ekkor a CPU órajele 48 MHz lesz (külső kvarccal), a buszfrekvencia pedig 24 MHz lesz 45
46 Futási eredmény A program először egy nevet vár (a beolvasást a scanf() függvény kezeli), ennek lezárására egy szóközt kell nyomni. Ezután minden begépelt karakternek kiíratjuk a betűképét és az ANSI kódját. Ha egyszerre 2-3 karakternél többet küldünk, a vevő lefullad (ráfutási hiba?). Mivel a programunkban a hiba nincs lekezelve, az UART modul újraindulásig nem fogad újabb karaktert. Az adatsebességet ennél a programnál bps-re kell állítani! 46
47 47
48 48
ARM Cortex-M0+ mikrovezérlő programozása KEIL MDK 5 környezetben. 11. Impulzus-szélesség moduláció (PWM)
ARM Cortex-M0+ mikrovezérlő programozása KEIL MDK 5 környezetben 11. Impulzus-szélesség moduláció (PWM) 1 Felhasznált anyagok, ajánlott irodalom Muhammad Ali Mazidi, Shujen Chen, Sarmad Naimi, Sepehr Naimi:
loop() Referencia: https://www.arduino.cc/en/reference/homepage
Arduino alapok Sketch ~ Solution Forrás:.ino (1.0 előtt.pde).c,.cpp,.h Külső könyvtárak (legacy / 3rd party) Mintakódok (example) setup() Induláskor fut le, kezdeti értékeket állít be, inicializálja a
ARM Cortex-M0+ mikrovezérlő programozása KEIL MDK 5 környezetben. 5. Időzítők, számlálók 1. rész
ARM Cortex-M0+ mikrovezérlő programozása KEIL MDK 5 környezetben 5. Időzítők, számlálók 1. rész 1 Felhasznált anyagok, ajánlott irodalom Joseph Yiu: The Definitive Guide to ARM Cortex -M0 and Cortex-M0+
Programozási segédlet DS89C450 Fejlesztőpanelhez
Programozási segédlet DS89C450 Fejlesztőpanelhez Készítette: Fekete Dávid Processzor felépítése 2 Perifériák csatlakozása a processzorhoz A perifériák adatlapjai megtalálhatók a programozasi_segedlet.zip-ben.
ARM Cortex-M0+ mikrovezérlő programozása KEIL MDK 5 környezetben. 5. Időzítők, számlálók 2. rész
ARM Cortex-M0+ mikrovezérlő programozása KEIL MDK 5 környezetben 5. Időzítők, számlálók 2. rész 1 Felhasznált anyagok, ajánlott irodalom Joseph Yiu: The Definitive Guide to ARM Cortex -M0 and Cortex-M0+
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.
Soros LCD vezérlő A vezérlő modul lehetővé teszi, hogy az LCD-t soros vonalon illeszthessük alkalmazásunkhoz. A modul több soros protokollt is támogat, úgy, mint az RS232, I 2 C, SPI. Továbbá az LCD alapfunkcióit
ARM Cortex-M0+ mikrovezérlő programozása KEIL MDK 5 környezetben. 7. Analóg perifériák
ARM Cortex-M0+ mikrovezérlő programozása KEIL MDK 5 környezetben 7. Analóg perifériák 1 Felhasznált anyagok, ajánlott irodalom Joseph Yiu: The Definitive Guide to ARM Cortex -M0 and Cortex-M0+ Processors
4.1.1. I 2 C, SPI, I 2 S, USB, PWM, UART, IrDA
4.1.1. I 2 C, SPI, I 2 S, USB, PWM, UART, IrDA A címben található jelölések a mikrovezérlők kimentén megjelenő tipikus perifériák, típus jelzései. Mindegyikkel röviden foglalkozni fogunk a folytatásban.
A LOGSYS GUI. Fehér Béla Raikovich Tamás, Laczkó Péter BME MIT FPGA laboratórium
BUDAPESTI MŐSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK A LOGSYS GUI Fehér Béla Raikovich Tamás, Laczkó Péter BME MIT atórium
I 2 C, RS-232 és USB. Informatikai eszközök fizikai alapjai. Oláh Tamás István 2015.04.08
I 2 C, RS-232 és USB Informatikai eszközök fizikai alapjai Oláh Tamás István 2015.04.08 Az I 2 C Busz Phillips által kifejlesztett kétvezetékes szinkron adatátviteli eszköz integrált áramkörök összekapcsolására
XII. PÁRHUZAMOS ÉS A SOROS ADATÁTVITEL
XII. PÁRHUZAMOS ÉS A SOROS ADATÁTVITEL Ma, a sok más felhasználás mellett, rendkívül jelentős az adatok (információk) átvitelével foglakozó ágazat. Az átvitel történhet rövid távon, egy berendezésen belül,
The modular mitmót system. 433, 868MHz-es ISM sávú rádiós kártya
The modular mitmót system 433, 868MHz-es ISM sávú rádiós kártya Kártyakód: COM-R04-S-01b Felhasználói dokumentáció Dokumentációkód: -D01a Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és
Silabs STK3700, Simplicity Studio laborgyakorlat
Silabs STK3700, Simplicity Studio laborgyakorlat Scherer Balázs Budapest University of Technology and Economics Department of Measurement and Information Systems BME-MIT 2016 Saját Firmware library Saját
ARM programozás. Iványi László Szabó Béla
ARM programozás 4. Óra USART periféria és az RS-485 busz elmélete és használata Iványi László ivanyi.laszlo@stud.uni-obuda.hu Szabó Béla szabo.bela@stud.uni-obuda.hu Mi az USART/UART? USART => Universal
Mintavételezés tanulmányozása. AD - konverzió. Soros kommunikáció
Mintavételezés tanulmányozása. AD - konverzió. Soros kommunikáció A gyakorlat célja A gyakorlat során a dspic30f6010 digitális jelprocesszor Analóg Digital konverterét tanulmányozzuk. A mintavételezett
ARM Cortex-M0+ mikrovezérlő programozása KEIL MDK 5 környezetben. 8. Az SPI kommunikációs csatorna
ARM Cortex-M0+ mikrovezérlő programozása KEIL MDK 5 környezetben 8. Az SPI kommunikációs csatorna 1 Felhasznált anyagok, ajánlott irodalom Joseph Yiu: The Definitive Guide to ARM Cortex -M0 and Cortex-M0+
Dr. Oniga István DIGITÁLIS TECHNIKA 9
r. Oniga István IGITÁLIS TEHNIKA 9 Regiszterek A regiszterek több bites tárolók hálózata S-R, J-K,, vagy kapuzott tárolókból készülnek Fontosabb alkalmazások: adatok tárolása és adatmozgatás Funkcióik:
Mérési jegyzőkönyv. az ötödik méréshez
Mérési jegyzőkönyv az ötödik méréshez A mérés időpontja: 2007-10-30 A mérést végezték: Nyíri Gábor kdu012 mérőcsoport A mérést vezető oktató neve: Szántó Péter A jegyzőkönyvet tartalmazó fájl neve: ikdu0125.doc
ARM Cortex-M0+ mikrovezérlő programozása KEIL MDK 5 környezetben. 9. Az I2C kommunikációs csatorna
ARM Cortex-M0+ mikrovezérlő programozása KEIL MDK 5 környezetben 9. Az I2C kommunikációs csatorna 1 Felhasznált anyagok, ajánlott irodalom Joseph Yiu: The Definitive Guide to ARM Cortex -M0 and Cortex-M0+
The modular mitmót system. 433, 868MHz-es ISM sávú rádiós kártya
The modular mitmót system 433, 868MHz-es ISM sávú rádiós kártya Kártyakód: COM-R4-S-b Fejlesztői dokumentáció Dokumentációkód: -Da Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs
Dr. Oniga István DIGITÁLIS TECHNIKA 9
r. Oniga István IGITÁLIS TEHNIKA 9 Regiszterek A regiszterek több bites tárolók hálózata S-R, J-K,, vagy kapuzott tárolókból készülnek Fontosabb alkalmazások: adatok tárolása és adatmozgatás Funkcióik:
SR mini PLC Modbus illesztő modul. Modul beállítása Bemeneti pontok kiosztása főmodul esetén Bemeneti pontok címkiosztása kiegészítő modul esetében
SR mini PLC Modbus illesztő modul Modul beállítása Bemeneti pontok kiosztása főmodul esetén Bemeneti pontok címkiosztása kiegészítő modul esetében Kimeneti pontok címkiosztása főmodul esetében, olvasásra
PMU Kezdı lépések. 6-0 Csatlakozás LG GLOFA-GM és SAMSUNG PLC-hez. 6-1 Kommunikáció LG PMU és LG GLOFA-GM7 / GM6 / GM4 között
-0 Csatlakozás LG GLOFA-GM és SAMSUNG PLC-hez -1 Kommunikáció LG PMU és LG GLOFA-GM / GM között -1-1 PLC programozó csatlakozója ( CPU loader port ) -1- PLC beépített C-NET csatlakozója (CPU C-net) -1-
A Memory Interface Generator (MIG) beállítása a Logsys Kintex-7 FPGA kártyához
A Memory Interface Generator (MIG) beállítása a Logsys Kintex-7 FPGA kártyához Ellenőrizzük a projektből importált adatokat. Ha rendben vannak, akkor kattintsunk a Next gombra. Válasszuk a Create Design
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
I. C8051Fxxx mikrovezérlők hardverfelépítése, működése 1. Adja meg a belső RAM felépítését! 2. Miben különbözik a belső RAM alsó és felső felének elérhetősége? 3. Hogyan érhetők el az SFR regiszterek?
Perifériák hozzáadása a rendszerhez
Perifériák hozzáadása a rendszerhez Intellectual Property (IP) katalógus: Az elérhető IP modulok listája Bal oldalon az IP Catalog fül Ingyenes IP modulok Fizetős IP modulok: korlátozások Időkorlátosan
Yottacontrol I/O modulok beállítási segédlet
Yottacontrol I/O modulok beállítási segédlet : +36 1 236 0427 +36 1 236 0428 Fax: +36 1 236 0430 www.dialcomp.hu dial@dialcomp.hu 1131 Budapest, Kámfor u.31. 1558 Budapest, Pf. 7 Tartalomjegyzék Bevezető...
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.
Az I2C busz fizikai kialakítása 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. I2C busz csak két db kétirányú
Digitális technika VIMIAA01
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 VIMIAA01 Fehér Béla BME MIT A kommunikációs technológiák
Digitális technika VIMIAA01
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 VIMIAA01 Fehér Béla BME MIT A kommunikációs technológiák
A/D és D/A konverterek vezérlése számítógéppel
11. Laboratóriumi gyakorlat A/D és D/A konverterek vezérlése számítógéppel 1. A gyakorlat célja: Az ADC0804 és a DAC08 konverterek ismertetése, bekötése, néhány felhasználási lehetőség tanulmányozása,
RUBICON Serial IO kártya
RUBICON Serial IO kártya Műszaki leírás 1.0 Készítette: Forrai Attila Jóváhagyta: Rubin Informatikai Zrt. 1149 Budapest, Egressy út 17-21. telefon: +361 469 4020; fax: +361 469 4029 e-mail: info@rubin.hu;
Bevezetés a mikrovezérlők programozásába: Az Arduino, mint logikai analizátor
Bevezetés a mikrovezérlők programozásába: Az Arduino, mint logikai analizátor 1 Hasznos eszközök hibakereséshez Logikai áramkörök Logikai teszter Analóg áramkörök Voltmérő Logikai analizátor Oszcilloszkóp
9.1.1. ARM mikrovezérlők programozása
9.1.1. ARM mikrovezérlők programozása E fejezetben az ARM mikrovezérlők programozása lesz ismertetve néhány példaprogram és gyakorlati alkalmazás bemutatásával. Az általunk használt ARM mikrovezérlő gyártója
ARM Cortex-M0+ mikrovezérlő programozása KEIL MDK 5 környezetben. 1. Az ARM Cortex-M0+ CPU jellemzői
ARM Cortex-M0+ mikrovezérlő programozása KEIL MDK 5 környezetben 1. Az ARM Cortex-M0+ CPU jellemzői Hobbielektronika csoport 2015/2016 1 Felhasznált anyagok, ajánlott irodalom Joseph Yiu: The Definitive
(1) 10/100/1000Base-T auto-sensing Ethernet port (2) 1000Base-X SFP port (3) Konzol port (4) Port LED-ek (5) Power LED (Power)
HP 5120-24G 1.ábra Első panel (1) 10/100/1000Base-T auto-sensing Ethernet port (2) 1000Base-X SFP port (3) Konzol port (4) Port LED-ek (5) Power LED (Power) 2.ábra Hátsó panel (1) AC-input csatlakozó (2)
Nagy Gergely április 4.
Mikrovezérlők Nagy Gergely BME EET 2012. április 4. ebook ready 1 Bevezetés Áttekintés Az elektronikai tervezés eszközei Mikroprocesszorok 2 A mikrovezérlők 3 Főbb gyártók Áttekintés A mikrovezérlők az
Billentyűzet. Csatlakozók: A billentyűzetet kétféle csatlakozóval szerelhetik. 5 pólusú DIN (AT vagy XT billentyűzet csatlakozó),
Billentyűzet Általános billentyűzet Csatlakozók: A billentyűzetet kétféle csatlakozóval szerelhetik. 5 pólusú DIN (AT vagy XT billentyűzet csatlakozó), 6 pólusú mini-din (PS/2 billentyűzet csatlakozó).
MSP430 programozás Energia környezetben. LED mátrix vezérlése MAX7219 IC-vel
MSP430 programozás Energia környezetben LED mátrix vezérlése MAX7219 IC-vel 1 LED 8x8 mátrix 3 mm-es piros LED-ek 8x8 mátrixba szervezve 1088AS vagy M1388AR típusnál a sorkiválasztó vonal a közös katód
LOGSYS LOGSYS LCD KIJELZŐ MODUL FELHASZNÁLÓI ÚTMUTATÓ. 2010. november 8. Verzió 1.0. http://logsys.mit.bme.hu
LOGSYS LCD KIJELZŐ MODUL FELHASZNÁLÓI ÚTMUTATÓ 2010. november 8. Verzió 1.0 http://logsys.mit.bme.hu Tartalomjegyzék 1 Bevezetés... 1 2 Kommunikációs interfész... 2 3 Memóriák az LCD vezérlőben... 3 3.1
IDAXA-PiroSTOP. PIRINT PiroFlex Interfész. Terméklap
IDAXA-PiroSTOP PIRINT PiroFlex Interfész Terméklap Hexium Kft. PIRINT Terméklap Rev 2 2 Tartalomjegyzék. ISMERTETŐ... 3 2. HARDVER... 4 2. LED... 5 2.2 KAPCSOLAT A VKGY GYŰRŰVEL... 6 2.3 CÍMBEÁLLÍTÁS...
Mikrovezérlők Alkalmazástechnikája
Gingl Zoltán, 2015, Szeged Mikrovezérlők Alkalmazástechnikája 2015.12.06. 11:45 Kommunikációs áramkörök és használatuk 1 Processzoroknál tipikusan párhuzamos átvitel adatbusz címbusz vezérlőjelek, szinkronizálás
Laboratóriumi műszerek megvalósítása ARM alapú mikrovezérlővel és Linux-szal
Laboratóriumi műszerek megvalósítása ARM alapú mikrovezérlővel és Linux-szal Fuszenecker Róbert Budapesti Műszaki Főiskola Kandó Kálmán Műszaki Főiskolai Kar 2007. október 17. Laboratóriumi berendezések
Roger UT-2. Kommunikációs interfész V3.0
ROGER UT-2 1 Roger UT-2 Kommunikációs interfész V3.0 TELEPÍTŐI KÉZIKÖNYV ROGER UT-2 2 ÁLTALÁNOS LEÍRÁS Az UT-2 elektromos átalakítóként funkcionál az RS232 és az RS485 kommunikációs interfész-ek között.
Az interrupt Benesóczky Zoltán 2004
Az interrupt Benesóczky Zoltán 2004 1 Az interrupt (program megszakítás) órajel generátor cím busz környezet RESET áramkör CPU ROM RAM PERIF. adat busz vezérlõ busz A periféria kezelés során információt
ARM Cortex-M0+ mikrovezérlő programozása KEIL MDK 5 környezetben. 13. DMA közvetlen memória hozzáférés
ARM Cortex-M0+ mikrovezérlő programozása KEIL MDK 5 környezetben 13. DMA közvetlen memória hozzáférés 1 Felhasznált anyagok, ajánlott irodalom ARM University Program: Course/Lab Material for Teaching Embedded
Mikrovezérlők Alkalmazástechnikája
Gingl Zoltán, 2017, Szeged Mikrovezérlők Alkalmazástechnikája 18 jan. 1 Processzoroknál tipikusan párhuzamos átvitel adatbusz címbusz vezérlőjelek, szinkronizálás Mikrovezérlőknél soros átvitel Kevés vezeték
SLS-500-MBUS-MODBUS átalakító. Magyar nyelvű használati utasítás
SLS-500-MBUS-MODBUS átalakító Magyar nyelvű használati utasítás 1 Tartalomjegyzék Paraméterek...3 Csatlakozási pontok...4 Csatlakozási példák...5 Konfigurációs program...6 Gyors áttekintő...6 Menüpontok...7
Budapesti Műszaki- és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar MIT. Nagyteljesítményű mikrovezérlők tantárgy [vimim342]
Budapesti Műszaki- és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar MIT Nagyteljesítményű mikrovezérlők tantárgy [vimim342] 8x8x8 LED Cube Készítette: Szikra István URLJRN Tartalomjegyzék
Az MSP430 mikrovezérlők digitális I/O programozása
10.2.1. Az MSP430 mikrovezérlők digitális I/O programozása Az MSP430 mikrovezérlők esetében minden kimeneti / bemeneti (I/O) vonal önállóan konfigurálható, az P1. és P2. csoportnak van megszakítás létrehozó
3. A DIGILENT BASYS 2 FEJLESZTŐLAP LEÍRÁSA
3. A DIGILENT BASYS 2 FEJLESZTŐLAP LEÍRÁSA Az FPGA tervezésben való jártasság megszerzésének célszerű módja, hogy gyári fejlesztőlapot alkalmazzunk. Ezek kiválóan alkalmasak tanulásra, de egyes ipari tervezésekhez
SP-PROG (SP-PROG-BT) Univerzális USB (Bluetooth/USB) Programozó
SP-PROG (SP-PROG-BT) Univerzális USB (Bluetooth/USB) Programozó Használati útmutató (v1.0) Tartalomjegyzék 1. BEVEZETÉS... HIBA! A KÖNYVJELZŐ NEM LÉTEZIK. 2. ELSŐ LÉPÉSEK... HIBA! A KÖNYVJELZŐ NEM LÉTEZIK.
A Texas Instruments MSP430 mikrovezérlőcsalád
1.4.1. A Texas Instruments MSP430 mikrovezérlőcsalád A Texas Instruments MSP430-as mikrovezérlői 16 bites RISC alapú, kevert jelű (mixed signal) processzorok, melyeket ultra kis fogyasztásra tervezték.
BEÁGYAZOTT RENDSZEREK TERVEZÉSE UDP csomag küldése és fogadása beágyazott rendszerrel példa
BEÁGYAZOTT RENDSZEREK TERVEZÉSE 1 feladat: A Netburner MOD5270 fejlesztőlap segítségével megvalósítani csomagok küldését és fogadását a fejlesztőlap és egy PC számítógép között. megoldás: A fejlesztőlapra,
Digitális technika (VIMIAA02) Laboratórium 12
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,
Digitális technika (VIMIAA02) Laboratórium 12
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,
ARM Cortex magú mikrovezérlők
ARM Cortex magú mikrovezérlők 5. Mikrovezérlő alapperifériák Scherer Balázs Budapest University of Technology and Economics Department of Measurement and Information Systems BME-MIT 2017 Tartalom Általános
Az AVR programozás alapjai. Előadja: Both Tamás
Az AVR programozás alapjai Előadja: Both Tamás Fordító C nyelven programozunk Ehhez az AVR-GCC fordító áll rendelkezésre Ennek használatához a WinAVR-t kell telepíteni Teljes értékű C fordító, minden megengedett,
SZORGALMI FELADAT. 17. Oktober
SZORGALMI FELADAT F2. Tervezzen egy statikus aszinkron SRAM memóriainterfész áramkört a kártyán található 128Ki*8 bites memóriához! Az áramkör legyen képes az írási és olvasási műveletek végrehajtására
A LOGSYS rendszer ismertetése
BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK A LOGSYS rendszer ismertetése Raikovich Tamás BME MIT atórium A LOGSYS
LOGSYS LOGSYS SPARTAN-3E FPGA KÁRTYA FELHASZNÁLÓI ÚTMUTATÓ. 2012. szeptember 19. Verzió 1.2. http://logsys.mit.bme.hu
LOGSYS SPARTAN-3E FPGA KÁRTYA FELHASZNÁLÓI ÚTMUTATÓ 2012. szeptember 19. Verzió 1.2 http://logsys.mit.bme.hu Tartalomjegyzék 1 Bevezetés... 1 2 Memóriák... 3 2.1 Aszinkron SRAM... 3 2.2 SPI buszos soros
Serial 2: 1200/2400 bps sebességû rádiós modem vagy
- ATMEL ATmega Processzor - kb Flash memória a program részére - kb belsõ és Kb külsõ EEPROM - kb belsõ és kb külsõ RAM - db többfunkciós soros interfész (kiépitéstõl függõen) Serial : RS- vagy RS-5 (fél-
MSP430 programozás Energia környezetben. LED kijelzok második rész
MSP430 programozás Energia környezetben LED kijelzok második rész 1 Lab13 SPI_595_7seg Egyszerű mintaprogram kétszámjegyű hétszegmenses LED kijelzővel, 74HC595 shift regiszterrel, SPI programkönyvtár használattal
Procontrol RSC-24B. Kezelői, telepítői kézikönyv. RS232 / RS485 adatkonverter. Verzió: 1.4 2007.04.12
Procontrol RSC-24B RS232 / RS485 adatkonverter Kezelői, telepítői kézikönyv Verzió: 1.4 2007.04.12 2007 Procontrol Electronics Ltd. Minden jog fenntartva. A Worktime, a Workstar, a WtKomm a Procontrol
WDS 4510 adatátviteli adó-vevő
WDS 4510 adatátviteli adó-vevő A WDS-4510 készülék pont-pont és pont-több pont adatátviteli alkalmazásokra kifejlesztett digitális rádió adó-vevő. DSP technológiai bázison kifejlesztett, igen gyors adás-vétel
LOGSYS LOGSYS SZTEREÓ CODEC MODUL FELHASZNÁLÓI ÚTMUTATÓ szeptember 16. Verzió
LOGSYS SZTEREÓ CODEC MODUL FELHASZNÁLÓI ÚTMUTATÓ 2012. szeptember 16. Verzió 1.0 http://logsys.mit.bme.hu Tartalomjegyzék 1 Bevezetés... 1 2 A modul működése... 2 3 A CODEC konfigurációja... 3 4 Időzítési
Bevezetés az elektronikába
Bevezetés az elektronikába 18. Arduino programozás LCD kijelzők alkalmazása II. rész 1 HD44780 kompatibilis kijelzők A HD44780 vagy kompatibilis vezérlővel ellátott alfanumerikus (csak rögzített karakterképet
Mérő- és vezérlőberendezés megvalósítása ARM alapú mikrovezérlővel és Linux-szal
Mérő- és vezérlőberendezés megvalósítása ARM alapú mikrovezérlővel és Linux-szal Fuszenecker Róbert Budapesti Műszaki Főiskola Kandó Kálmán Műszaki Főiskolai Kar 2007. július 18. A mérőberendezés felhasználási
Előadó: Nagy István (A65)
Programozható logikai áramkörök FPGA eszközök Előadó: Nagy István (A65) Ajánlott irodalom: Ajtonyi I.: Digitális rendszerek, Miskolci Egyetem, 2002. Ajtonyi I.: Vezérléstechnika II., Tankönyvkiadó, Budapest,
Számítógépes Hálózatok 2012
Számítógépes Hálózatok 22 4. Adatkapcsolati réteg CRC, utólagos hibajavítás Hálózatok, 22 Hibafelismerés: CRC Hatékony hibafelismerés: Cyclic Redundancy Check (CRC) A gyakorlatban gyakran használt kód
SIOUX-RELÉ. Sioux relé modul telepítési leírás Szerkesztés MACIE0191
SIOUX-RELÉ Sioux relé modul telepítési leírás Szerkesztés 1.2 20MACIE0191 1 Leírás 1.1 Leírás A Sioux-relé egy soros modul, amely tartalmaz egy master kártyát, amely maximum két slave kártyával bővíthető.
Moduláris USB billentyűzet emulátor
Moduláris USB billentyűzet emulátor Használati és programozási leírás 2016. április Ismertető A modul alkalmas általános célú HID eszközként a számítógéphez csatlakoztatva szabványos billentyűzet emulációjára.
Szerelési és kezelési útmutató
USB-RS485 USB-s RS485 konverter Szerelési és kezelési útmutató EUROPROX Bt. E-mail: europrox@enternet.hu E01-07001-0A T A R T A L O M 1. Általános termékismertetı...3 2. Telepítés, üzembe helyezés...3
Digitális rendszerek. Digitális logika szintje
Digitális rendszerek Digitális logika szintje CPU lapkák Mai modern CPU-k egy lapkán helyezkednek el Kapcsolat a külvilággal: kivezetéseken (lábak) keresztül Cím, adat és vezérlőjelek, ill. sínek (buszok)
Bevezetés a mikrovezérlők programozásába: MAX6958: Hétszegmenses LED kijelző vezérlő
Bevezetés a mikrovezérlők programozásába: MAX6958: Hétszegmenses LED kijelző vezérlő 1 Lab 20 projektek MiniPirate.ino Arduino Mini Pirate interaktív vizsgálóprogram, amelyet most az I2C busz kézivezérlésére
Számítógép Architektúrák
Perifériakezelés a PCI-ban és a PCI Express-ben Horváth Gábor 2017. február 14. Budapest docens BME Hálózati Rendszerek és Szolgáltatások Tanszék ghorvath@hit.bme.hu A PCI PCI = Peripheral Component Interfész,
_INVHU000_WriteReadParameter.cxf Frekvenciaváltók
INV-HU-000 A FB feladata A dokumentáció tartalma Szimbólum A CP1H vagy a CP1L PLC és frekvenciaváltó(k) automatikus kommunikációja: _INVHU000_WriteReadParameter A frekvenciaváltó üzemi paramétereinek írása,
Vegyes témakörök. A KAT120B kijelző vezérlése Arduinoval
Vegyes témakörök A KAT120B kijelző vezérlése Arduinoval 1 KAT120B hívószám kijelző A KAT120B kijelző a NEMO-Q International AB egy régi terméke. A cég ma is fogalmaz különféle hívószám kijelzőket bankok,
Bevezetés a Modbus kommunikációba
Bevezetés a Modbus kommunikációba Mobus szervezet Teljesen ingyenes, nyílt-forrású rendszer nem licenc köteles http://www.modbus.org Modbus eszköz kereső motor http://www.modbus.org/devices.php - soros
Újrakonfigurálható eszközök
Újrakonfigurálható eszközök 15. Cypress PSOC 5LP DMA adatátvitel Hobbielektronika csoport 2017/2018 1 Debreceni Megtestesülés Plébánia Felhasznált irodalom és segédanyagok Cypress: CY8C58LP FamilyDatasheet
MSP430 programozás Energia környezetben. Hétszegmenses LED kijelzok
MSP430 programozás Energia környezetben Hétszegmenses LED kijelzok 1 A hétszegmenses kijelző A hétszegmenses kijelzők 7 db LED-et vagy LED csoportot tartalmaznak, olyan elrendezésben, hogy a 0 9 arab számjegyeket
RUPERT MÉRNÖKI IRODA. MODEM V.23 v3.1 RS232. Termék ismertető 2006.10.08
RUPERT MÉRNÖKI IRODA MODEM V.23 v3.1 RS232 Termék ismertető 2006.10.08 Műszaki paraméterek: A MODEM V.23 v3.1 típusú készülék moduláris kiépítésű, speciálisan PLC készülékek adatátviteli kommunikációjának
Labor gyakorlat Mikrovezérlők
Labor gyakorlat Mikrovezérlők ATMEL AVR ARDUINO 1. ELŐADÁS BUDAI TAMÁS Tartalom Labor 2 mikrovezérlők modul 2 alkalom 1 mikrovezérlők felépítése, elmélet 2 programozás, mintaprogramok Értékelés: a 2. alkalom
Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)
Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD) Bevezetés A laborgyakorlatok alapvető célja a tárgy későbbi laborgyakorlataihoz szükséges ismeretek átadása, az azokban szereplő
A mikroprocesszor felépítése és működése
A mikroprocesszor felépítése és működése + az egyes részegységek feladata! Információtartalom vázlata A mikroprocesszor feladatai A mikroprocesszor részegységei A mikroprocesszor működése A mikroprocesszor
Procontrol RFP-3. Műszaki adatlap. Rádiótransceiver / kontroller 433 vagy 868 MHz-re, felcsavarható SMA gumiantennával. Verzió: 4.1 2007.12.
Procontrol RFP-3 Rádiótransceiver / kontroller 433 vagy 868 MHz-re, felcsavarható SMA gumiantennával Műszaki adatlap Verzió: 4.1 2007.12.21 1/6 Tartalomjegyzék RFP-3... 3 Rádiótransceiver / kontroller
A számítógép fő részei
Hardver ismeretek 1 A számítógép fő részei 1. A számítógéppel végzett munka folyamata: bevitel ==> tárolás ==> feldolgozás ==> kivitel 2. A számítógépet 3 fő részre bonthatjuk: központi egységre; perifériákra;
Architektúra, megszakítási rendszerek
Architektúra, megszakítási ek Mirıl lesz szó? Megszakítás fogalma Megszakítás folyamata Többszintű megszakítási ek Koschek Vilmos Példa: Intel Pentium vkoschek@vonalkodhu Koschek Vilmos Fogalom A számítógép
Megoldás. Feladat 1. Statikus teszt Specifikáció felülvizsgálat
Megoldás Feladat 1. Statikus teszt Specifikáció felülvizsgálat A feladatban szereplő specifikáció eredeti, angol nyelvű változata egy létező eszköz leírása. Nem állítjuk, hogy az eredeti dokumentum jól
Dr. Schuster György szeptember 27.
Real-time operációs rendszerek RTOS 2012. szeptember 27. Általános ismérvek: ARM Cortex M3 mag 80 MHz órajel frekvencia (50 MHz flash-ből) 256 kbájt flash 96 kbájt RAM ARM Cortex Sys Tick Timer belső ROM
Programozható vezérlő rendszerek KOMMUNIKÁCIÓS HÁLÓZATOK 2.
KOMMUNIKÁCIÓS HÁLÓZATOK 2. CAN busz - Autóipari alkalmazásokhoz fejlesztették a 80-as években - Elsőként a BOSCH vállalat fejlesztette - 1993-ban szabvány (ISO 11898: 1993) - Később fokozatosan az iparban
Ismerkedés az MSP430 mikrovezérlőkkel
Ismerkedés az MSP430 mikrovezérlőkkel 1 Mikrovezérlők fogalma Mikroprocesszor: Egy tokba integrált számítógép központi egység (CPU). A működés érdekében körbe kell építeni külső elemekkel (memória, perifériák,
T Bird 2. AVR fejlesztőpanel. Használati utasítás. Gyártja: BioDigit Kft. Forgalmazza: HEStore.hu webáruház. BioDigit Kft, 2012. Minden jog fenntartva
T Bird 2 AVR fejlesztőpanel Használati utasítás Gyártja: BioDigit Kft Forgalmazza: HEStore.hu webáruház BioDigit Kft, 2012 Minden jog fenntartva Főbb tulajdonságok ATMEL AVR Atmega128 típusú mikrovezérlő
RÁDIÓS ADATGYŰJTŐ BERENDEZÉS RD01. Használati útmutató
RÁDIÓS ADATGYŰJTŐ BERENDEZÉS RD01 Használati útmutató Ez a dokumentum a Ring Games Kft. által gyártott GSM Adatgyűjtő Rendszer RD01 típusú eszközének Használati útmutatója. 2004, Ring Games Kft. Ring Games
Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)
Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD) Multiplexer (MPX) A multiplexer egy olyan áramkör, amely több bemeneti adat közül a megcímzett bemeneti adatot továbbítja a kimenetére.
Labor 2 Mikrovezérlők
Labor 2 Mikrovezérlők ATMEL AVR - ARDUINO BUDAI TAMÁS 2015. 09. 06. Tartalom Mikrovezérlők Mikrovezérlők felépítése, működése Mikrovezérlő típusok, gyártók Mikrovezérlők perifériái Mikrovezérlők 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, 2012. Minden jog fenntartva
T Bird 2 AVR fejlesztőpanel Használati utasítás Gyártja: BioDigit Kft Forgalmazza: HEStore.hu webáruház BioDigit Kft, 2012 Minden jog fenntartva Főbb tulajdonságok ATMEL AVR Atmega128 típusú mikrovezérlő
ARM Cortex magú mikrovezérlők
ARM Cortex magú mikrovezérlők 5. Mikrovezérlő alapperifériák Scherer Balázs Budapest University of Technology and Economics Department of Measurement and Information Systems BME-MIT 2017 Tartalom Általános
A mikroszámítógép felépítése.
1. Processzoros rendszerek fő elemei mikroszámítógépek alapja a mikroprocesszor. Elemei a mikroprocesszor, memória, és input/output eszközök. komponenseket valamilyen buszrendszer köti össze, amelyen az
Felhasználói útmutató
A BioEntry Smart/Pass Kezdő Csomag tartalmazza: BioEntry Smart/Pass készülék Műanyag BioEntry állvány BioEntry interfész panel Stereo aljzat a DB-9-es kábelnek DB-9-es bővítő kábel Csavar szett CD, amely