Vegyes témakörök. 7. Microchip PIC18 mikrovezérlők. Hobbielektronika csoport 2017/2018. Debreceni Megtestesülés Plébánia

Hasonló dokumentumok
PIC18xxx utasításkészlet

MSP430 programozás Energia környezetben. Kitekintés, további lehetőségek

Nagy Gergely április 4.

1 Doszpi

Ismerkedés az MSP430 mikrovezérlőkkel

Számítógépek felépítése, alapfogalmak

Járműfedélzeti rendszerek I. 3. előadás Dr. Bécsi Tamás

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

Bevezetés az informatikába

A PIC18 mikrovezérlő család

A Texas Instruments MSP430 mikrovezérlőcsalád

Programozási segédlet DS89C450 Fejlesztőpanelhez

ATMEL ATMEGA MIKROVEZÉRLŐ-CSALÁD

Programozott soros szinkron adatátvitel

C nyelvű programfejlesztés PIC18 mikrovezérlőkre. Összeállította: Molnár Zsolt

CHIPCAD KFT PIC TANFOLYAM PWM 1/7 TERVEZÉSI FELADAT

VI. SZOFTVERES PROGRAMOZÁSÚ VLSI ÁRAMKÖRÖK

Jelfeldolgozás a közlekedésben

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

Labor gyakorlat Mikrovezérlők

TARTALOMJEGYZÉK. 1. Ismétlés A mikroprocesszor mőködése Mikroszámítógépek, mikrokontrollerek... 20

Labor gyakorlat Mikrovezérlők

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

USB I/O kártya. 12 relés kimeneti csatornával, 8 digitális bemenettel (TTL) és 8 választható bemenettel, mely analóg illetve TTL módban használható.

találhatók. A memória-szervezési modell mondja meg azt, hogy miként

1. Digitális írástudás: a kőtáblától a számítógépig 2. Szedjük szét a számítógépet 1. örök 3. Szedjük szét a számítógépet 2.

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

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

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

Digitális technika VIMIAA01 9. hét

Hobbi Elektronika. 1. Témakörök, célkitűzés, hozzávalók

II. számú melléklet. Mikrovezérlő programozása assembly nyelven. Bevezetés

Új kompakt X20 vezérlő integrált I/O pontokkal

SZÁMÍTÓGÉPEK BELSŐ FELÉPÍTÉSE - 1

DSP architektúrák dspic30f család memória kezelése

Labor gyakorlat Mikrovezérlők

PIC16F877 KÍSÉRLETI PANEL

Újrakonfigurálható eszközök

Processzor (CPU - Central Processing Unit)

3. A DIGILENT BASYS 2 FEJLESZTŐLAP LEÍRÁSA

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

Digitális technika (VIMIAA01) Laboratórium 9

OPERÁCIÓS RENDSZEREK. Elmélet

Digitális technika (VIMIAA01) Laboratórium 9

A Számítógépek hardver elemei

Újrakonfigurálható eszközök

Mikrorendszerek tervezése

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.

A mikroprocesszor egy RISC felépítésű (LOAD/STORE), Neumann architektúrájú 32 bites soft processzor, amelyet FPGA val valósítunk meg.

PIC18XXX CSALÁD FELÉPÍTÉSE

Bevezetés a mikrovezérlők programozásába: MAX6958: Hétszegmenses LED kijelző vezérlő

Programfejlesztés PIC mikrovezérlőkre II.

Az interrupt Benesóczky Zoltán 2004

A 16F84-ről. CMOS Flash/EEPROM technológia: Lábkiosztás

MPLAB IDE - SIM - - Rövid ismertető a használathoz - Kincses Levente 3E22 89/ November 14. Szabadka

ARM Cortex magú mikrovezérlők

Nyíregyházi Egyetem Matematika és Informatika Intézete. Input/Output

Az AVR ATmega128 mikrokontroller

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

2. rész PC alapú mérőrendszer esetén hogyan történhet az adatok kezelése? Írjon pár 2-2 jellemző is az egyes esetekhez.

1.1. A PIC12F509 mikrovezérl általános ismertetése

A mikroszámítógép felépítése.

Vezérlés és irányítástechnológia (Mikroprocesszoros irányítás)

Laboratóriumi műszerek megvalósítása ARM alapú mikrovezérlővel és Linux-szal

Digitális technika VIMIAA01

Digitális technika VIMIAA01

Hobbi Elektronika. Mikrovezérlők programozása Microchip PIC mikrovezérlők bevezető előadás

Digitális rendszerek. Utasításarchitektúra szintje

MPLAB ICD használata

Számítógépek felépítése, alapfogalmak

Hibakeresés MPLAB ICD2 segítségével I-II.

Digitális technika VIMIAA hét

0 0 1 Dekódolás. Az órajel hatására a beolvasott utasítás kód tárolódik az IC regiszterben, valamint a PC értéke növekszik.

T2-CNCUSB vezérlő család hardver segédlet

Készítette: Ruzsinszki Gábor webmaster442

SZAKDOLGOZAT. Debrecen Borsi István Norbert

Alapismeretek. Tanmenet

Vegyes témakörök. A KAT120B kijelző vezérlése Arduinoval

Autóipari beágyazott rendszerek CAN hardver

Analóg-digitális átalakítás. Rencz Márta/ Ress S. Elektronikus Eszközök Tanszék

Érzékelők és beavatkozók I.

Digitális technika VIMIAA hét

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

Nagyteljesítményű mikrovezérlők

Informatika érettségi vizsga

A 16F84-rl. CMOS Flash/EEPROM technológia: Lábkiosztás

A LEGO Mindstorms EV3 programozása

2. Számítógépek működési elve. Bevezetés az informatikába. Vezérlés elve. Külső programvezérlés... Memória. Belső programvezérlés

Vegyes témakörök. 1. Soros vezérlésű LCD számkijelző. Hobbielektronika csoport 2018/2019. Debreceni Megtestesülés Plébánia

A 16F84-r l. CMOS Flash/EEPROM technológia: Lábkiosztá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

Informatika 1 2. el adás: Absztrakt számítógépek

Első sor az érdekes, IBM PC ra alapul: 16 bites feldolgozás, 8 bites I/O (olcsóbb megoldás). 16 kbyte RAM. Nem volt háttértár, 5 db ISA foglalat

Architektúra, megszakítási rendszerek

Az AVR programozás alapjai. Előadja: Both Tamás

Megoldás. Feladat 1. Statikus teszt Specifikáció felülvizsgálat

1. Milyen eszközöket használt az ősember a számoláshoz? ujjait, fadarabokat, kavicsokat

Beágyazott vezérlők tervezése dspic33 eszközökkel MPLAB-X

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

Aritmetikai utasítások I.

Átírás:

Vegyes témakörök 7. Microchip PIC18 mikrovezérlők 1

Microchip PIC18 mikrovezérlők A Megtestesülés Plébánia Hobbielektronika foglalkozásain 2017. április 27-én és 2017. november 30-án már tartotttunk előadást a Microchip középkategóriás mikrovezérlőiről (PIC12, PIC16), így az ot elhangzotakat nem ismételném meg A PIC18 mikrovezérlők több vonatkozásban előrelépést jelentenek: 16 bites szóhosszúság Bővebb utasításkészlet és jelzőbitkészlet Hardveres szorzóegység Kétszintű (prioritásos) megszakítási rendszer C programnyelv hardveres támogatása (mutatók, szofveresen manipulálható veremtár, ) Gyorsabb végrehajtás, nagyobb memória, egyes típusoknál külső memória Bővítet perifériakészlet (CAN, USB, Ethernet) Kiterjesztet utasításkészlet (csak a C18 fordító fizetős változata támogatja) 2

High-end Midrange & Enhanced midrange Baseline 3

Felépítés A nagyteljesítményű PIC18 mikrovezérlők főbb jellemzői Harvard felépítés Kétfokozatú ttutasítás csővezeték Nagyméretű regiszterfájl koncepció Egyciklttusú ttutasítás-végrehajtás (néhány kivétellel) Egyszavas ttutasítások illetve hosszúszavas ttutasítások RISC redttukált ttutasításkészlet (a midrange-hoz képest bővítet) Ortogonális ttutasítások (azonos ttutasítások kezelik a regisztereket, az adatmemóriát és az I/O portokat) 4

Harvard felépítés A Hardvard-felépítésnek köszönhetően az adatmemória és a programmemória külön adatsínt használ, amelyek eltérő szélességűek Megnövelt átviteli sebesség (párhttuzamosan működhetnek) Az ttutasítás és az adatsín különböző szélességű lehet (ennek köszönhető az egyszavas ttutasítások egyciklttusú végrehajtása) 5

Utasítás csővezetékezés Az ttutasítás elővétele átfed az előzőleg elővet ttutasítás végrehajtásával Ugráskor vagy visszatéréskor egy ttutasítás-ciklttus veszendőbe megy 6

Regiszterfájl koncepció A teljes adatmemória a regiszterkészlet része, tehát bármelyik eleme közvetlenül elérhető Minden periféria regiszterek segítségével kezelhető Ortogonális ttutasítások: epció bármelyik ttutasítás bármelyik regisztercímen operálhat A hosszúszavas ttutasítások révén bármelyik cím közvetlenül elérhető 7

PIC18 utasításkészlet 8

PIC18 utasításkészlet 9

Bájt orientált műveletek Bájt orientált műveletek esetén az ttutasítás kódja az alábbi elemekből áll: Műveleti kód, regisztercím, hozzáférési mód (a), és bizonyos ttutasításoknál a célt (W vagy F) kiválasztó d bit. 10

Bit orientált műveletek Bit orientált műveletek esetén az ttutasítás kódja az alábbi elemekből áll: Műveleti kód, regisztercím, hozzáférési mód (a), és a művelet által érintet bit sorszáma (bbb). 11

Vezérlő, vagy konstans értéket tartalmazó utasítások Vezérlő ttutasítások, illetve literálist (konstans értéket) tartalmazó ttutasítások esetén a műveleti kódot egy 8-bites konstans egészítheti ki 12

Bájtmozgató utasítás direkt címzéssel A MOVFF ttutasítás két 12-bites címet tartalmaz, ezért ez kétszavas ttutasítás A második szó műveleti kódja (1111) NOP ttutasítást jelöl. Ha téves címzés miat ttugrik rá a program, nincs véletlen kódvégrehajtás 13

CALL és GOTO utasítás A kétszavas CALL és GOTO ttutasítások 21 bites címzést használnak, de csak a felső 20 bitet kell megadni, a legalsó bit alapértelmezeten nttulla (az ttutasítások mindig páros címen kezdődnek) 14

Az adatmemória szervezése Az adatmemória legfeljebb 4 kb lehet Az adatmemória 256 bájtos lapokra (bank) van osztva A lapozáshoz a BSR regiszter alsó 4 bitje használható Az első lap első fele és az ttutolsó lap második fele lapozás nélkül elérhető Access módban (ha az A bit értéke 15

Regiszter közvetlen címzés példák A második lapon elhelyezett változó eléréséhez a lapválasztó BSR regisztert be kell állítanunk a movlb utasítással! R S B s zé m cí Access mód 16

Regiszter indirekt címzés Nincs lapozás, a teljes RAM terület címezhető FSRH:FSRL egyetlen lfsr ttutasítással feltölthető A 12 bites mttutatók inkrementálhatók, ill. dekrementálhatók Három FSR regiszterpár áll rendelkezésre: FSR0, FSR1, FSR2 (C programoknál FSR1 a szofveresen kezelt adatverem mttutatója) 17

Regiszter indirekt címzés Az indirekt címzéshez számos további lehetőség társttul, amellyel a mttutató attutomatikttus léptetése, vagy az indexelt címzés valósítható meg Indirect FSRn változatlan INDFn Auto post-decrement FSRn az átvitel után csökken POSTDECn Auto post-increment FSRn az átvitel után növekszik POSTINCn Auto pre-increment FSRn az átvitel előtt növekszik PREINCn Index-indirect A cím FSRn + W lesz PLUSWn 18

Regiszter indirekt címzés példa 19

A PIC18 programmemória felosztása Felhasználói memória (ttutasítások) Legfeljebb 128 kb belső memória Legfeljebb 2 MB külső memória User ID: 8 bájt újraírható terület Device ID: típttus és verzió azonosító A táblázatolvasásra használható TBLPTR mttutató segítségével a teljes címterület elérhető (22 bites címzés) Konffigurációs bitek (a hardver tttulajdonságait állítják be) A PC programszámláló csak a felhasználói memóríát tttudja megcímezni (21 bit) 20

A programmemória elérése A programmemória olvasása a TBLPTR regiszter segítségével: A címet a 22 bites TBLPTR regiszter tartalmazza A tblrd* olvasás eredménye a TABLAT regiszterben érhető el 21

A programmemória elérése A programmemória elérése az alábbi módokon történhet A táblázat nem tartalmazza a 21 bites PC regiszter közvetlen módosítását ( számítot GOTO ), illetve a 32 x 21 bites veremtár kezelését Címzési mód Közvetlen Relatív Táblázat olvasás/írás Táblázat olvasás/írás utóinkrementálással Táblázat olvasás/írás utódekrementálással Táblázat olvasás/írás előinkrementálással 22 Példa utasítás goto <addr> bra <addr> tablerd* tablewt* tablerd*+ tablewt*+ tablerd*- tablewt*- tablerd+* tablewt+*

Oszcillátor lehetőségek Sokféle lehetőség közül választhatttunk: belső vagy külső RC oszcillátor, kristálystabilizált oszcillátor, külső órajel stb. A PIC18 újdonsága, hogy PLL bekapcsolásával az órajel megtöbbszörözhető. A maximális órajel frekvencia: 40 MHz (USB eszközöknél 48 MHz) 23

Energiatakarékos mód (SLEEP) A CPU energiatakarékos módba kapcsolható (alvás mód) A rendszer órajel megszűnik A rendszer statikus állapota megőrződik A watchdog timer tovább fut, ha engedélyezve van Minimális áramfelvétel - szivárgási áram (0,1 2.0 µa) 24

A Read-Modify-Write probléma A PORT regiszterek olvasásakor a külső kapacitív terhelés késlelteti a jelek felfttutását, így előfordttulhat, hogy hibás értéket olvasttunk be 25

LATx regiszterek A PIC18 mikrovezérlőknél a kimeneti adatregiszter visszaolvasható, így a LATA, LATB, LATC stb. regisztereken végzet read-modifywrite bitmanipttulációs műveleteknél nem kell számolni az I/O kivezetések kapacitív terheléséből adódó késleltetések kellemetlen következményeivel 26

Bináris szorzás Bináris szorzás: a szorzó legalacsonyabb helyiértékű bitjétől indttulttunk, s ha ez 1, akkor leírjttuk a szorzandót, ha pedig nttulla, akkor a szorzandó minden számjegye helyet nttullát írttunk. Utána helyiértékenként balra lépve s a szorzandót (vagy a nttullákat) is egy-egy helyiértékkel balra léptetve írjttuk le. Végül összeadjttuk a rész-szorzatokat. A fentieket tetszés szerinti bitszámra kiterjeszthetjük 27

Hardveres szorzó A PIC18 hardveres szorzója hatékonyabb programírást tesz lehetővé ;--- 8x8 szorzás hw utasítással ;--- a * b kiszámítása mult8x8: movf b,w ;--- a végeredmény a:b-ben lesz mul8x8: movlw 0xff mulwf a ; PRODH:PRODL = a * b movwf a ; a=255 movff PRODL,b ; a:b = PRODH:PRODL movlw 0xff movff PRODH,a movwf b ; b=255 return clrf r movlw 8 movwf n ; n=8 bcf STATUS,C ; C=0 ciklus: rrcf b bnc next ; Átlépés, ha C=0 movf a,w addwf r ; C:r = r+a next: rrcf r ; r léptetése (r<0> -> C!!!) decfsz n ; n = n-1 bra ciklus ; folytatás, amíg n>0 rrcf b ; (C:b) >> 1 movff r,a return 28

16-bites számok szorzása 16-bites számok szorzásakor felbonthatjttuk a műveleteket 8x8 bites rész-szorzatokra, amelyeket a hardveres szorzóval kiszámoltathatttunk, majd a részeredményeket egy, illetve két bájtal eltolva összeadjttuk. Összességében 4 db 8x8 bites szorzást és három 32 bites összeadást kell elvégeznünk (az eredmény 32 bites lesz). 29

I2C perifériák használata Az I2C periféria konfgtturálása és kezelése legegyszerűbben az alábbi függvényekkel végezhető 30

I2C példa: LM75 hőmérő typedef union _union16 { uint16 word; struct { uint8 lo_byte; uint8 hi_byte; }; } union16; 31

Hőmérés LCD kijelzéssel Az előző oldalon bemttutatot függvények segítségével könnyen kiolvashatjttuk a Stture Electronics DB-DP113 kártyán található LM75 hőmérő által mért hőmérsékletet, s kijelezhetjük az LCD kijelzőn További információ: esca.atomki.httu/picttula/index.html 32

USB HID custom demo A Microchip Applications Library egyik mintapéldája egyedi HID eszközt (httuman interface device) valósít meg. Az egyediség it azt jelenti, hogy az üzenetek nem szabványosak, csttupán az egyedi PC alkalmazás és a mikrovezérlő frmware érti Egyszerű kapcsolás, ami kompatibilis a Microchip FSUSB demókártyával (PIC18F4550 MCU) 33

USB HID custom demo HID PnP Demo.exe Hevenyészett kapcsolás - a képen még hiányzik RB5 felhúzó ellenállása - a nyomógombokat ideiglenes vezetékkel helyettesítjük PIC18F4550 34

Tápegység vezérlés PIC18F4550-tel 35

Tápegység vezérlés PIC18F4550-tel Az áramkört házilag nyomtatot áramköri lapon építetük meg A frmware USB HID egyedi protokol szerint kommttunikál a PC-vel 36

Tápegység vezérlés PIC18F4550-tel VG Scientifc 0128/6 típttusú nagyfeszültségű tápegység bemérése a házi készítésű vezérlőkártya segítségével A PC alkalmazás az USB HID Cttustom Demo átdolgozásával készült 37

További információ PICCOLO projekt: PIC18F14K50 és PIC18F4550 tananyag MPLAB 8 fejlesztői környezetben C18 C fordítóval honlap: esca.atomki.httu/pic18 PICttula projekt: PIC18F4520 tananyag MPLAB 8 fejlesztői környezetben C18 C fordítóval honlap: esca.atomki.httu/picttula/index.html 38