147
Gingl Zoltán, 2018, Szeged Mikrovezérlők Alkalmazástechnikája ’18 szept. 1

Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

Gingl Zoltán, 2018, Szeged

Mikrovezérlők Alkalmazástechnikája

’18 szept. 1

Page 2: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

’18 szept. 2

Page 3: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

Tartalmát megőrzi tápfeszültség nélkül isProgram memória, konstansok tárolásaNéhány mikrovezérlőn: scratchpad memory

Adatok tárolására speciális hely

Endurance – hányszor írható (≈10k-100k)Data retention – az adatokat meddig őrzi

(≈20-100 év)Biztonsági bitek

titkosítás lehetséges: olvasása tiltható (de törölhető marad)

’18 szept. 3

Page 4: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

Program letöltése: debug adaterrel (JTAG/C2)Programból: MOVX utasítással is írhatóÍrás: csak 0 írható, 1 nem.Törlés: az összes bit 1-re állításaA tápfeszültség-monitort kötelező bekapcsolni és

RESET forrásként konfigurálni!

’18 szept. 4

Page 5: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

Engedélyező SFR bitek

PSWE (program store write enable)

PSEE (program store erase enable)

Írás: PSWE=1Törlés: PSWE=1 és PSEE=1Az íráshoz/törléshez még kulcs is kell:

FLKEY=0xA5;

FLKEY=0xF1;

Minden egyes írás és törlés előtt szükséges

’18 szept. 5

Page 6: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

F410: 512-byte méretű lapokból áll

Törölni csak teljes lapot lehet

Írni bájtonként lehet

Ha egy lapon levő bájto(ka)t módosítani szeretnénk:

a lap használt bájtjainak átmeneti mentése (XRAM)

a lap törlése

a használt bájtok szükség szerinti módosítása

A használt bájtok visszaírása a flash memóriába

’18 szept. 6

Page 7: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

void FLASH_PageErase (unsigned int addr){bit ea_save = EA; // Preserve EAchar xdata * data pwrite; // FLASH write pointer

EA = 0; // Disable interruptsVDM0CN = 0xA0; // Enable VDD monitorRSTSRC = 0x02; // VDD mon reset sourcepwrite = (char xdata *) addr; // set pointerFLKEY = 0xA5; // Key Sequence 1FLKEY = 0xF1; // Key Sequence 2PSCTL |= 0x03; // PSWE = 1; PSEE = 1VDM0CN = 0xA0; // enable VDD monitorRSTSRC = 0x02; // VDD mon resetsource*pwrite = 0; // Initiate page erasePSCTL &= ~0x03; // PSWE = 0; PSEE = 0EA = ea_save; // Restore interrupts

}

’18 szept. 7

Page 8: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

void FLASH_ByteWrite (unsigned int addr, char byte)

{

bit ea_save = EA; // Preserve EA

char xdata * data pwrite; // FLASH write pointer

EA = 0; // Disable interrupts

VDM0CN = 0xA0; // Enable VDD monitor

RSTSRC = 0x02; // VDD monitor reset

pwrite = (char xdata *) addr; // set pointer

FLKEY = 0xA5; // Key Sequence 1

FLKEY = 0xF1; // Key Sequence 2

PSCTL |= 0x01; // PSWE=1, enable write

VDM0CN = 0xA0; // Enable VDD monitor

RSTSRC = 0x02; // VDD monitor reset

*pwrite = byte; // Write the byte

PSCTL &= ~0x01; // PSWE=0,disable write

EA = ea_save; // Restore interrupts

}

’18 szept. 8

Page 9: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

Page 62

Lock: védelem kiolvasás ellen lock byte: 0x7DFF flash címen n = lock byte értéke negálva:

ennyi blokk zárolva (első n-1 blokk és a lock byte blokk) Az alábbi példa: 0xFC negálva: 0x03

’18 szept. 9

Page 0

0xF

C

Page 1 Page 2

0x7DFF (lock byte)

0x0000 0x0200 0x0400 0x7C00

Page 63RESERVED

0x7E00

Page 10: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

VDD monitort RESET után azonnal engedélyezni kell RESET forrásként

Írás előtt a lap használt tartalmát el kell menteni, majd a lapot törölni kell

Íráskor, törléskor belső órajelre célszerű kapcsolniÍrás (byte): ~50 usLap törlés (512 byte): ~20 msBájt olvasás: 40ns

max: 25MHz

Nagyobb sebesség: prefecth (pipeline)

’18 szept. 10

Page 11: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

’18 szept. 11

Page 12: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

Logikai jellel vezérelhető eszközökhöz:

Áramkörök logikai bemeneteinek meghajtása

LED

Külső meghajtó-fokozattal:

relé (jelfogó), mágnesszelep, motorok, stb.

Logikai jeleket adó eszközökhöz, olvasásra:

Kapcsoló, nyomógomb, billentyűzet

Áramkörök logikai kimeneteinek figyelése

Külső elektronikával:

fénykapuk, Hall-detektorok, stb.

’18 szept. 12

Page 13: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

Cél:

Egy logikai jel a külvilág számára

Külső logikai jel értékének beolvasása

A processzorok adatbuszán csak rövid ideig érvényes az adat

Számos periféria azonos buszt használ

Kétirányú busz

A busz szélessége adott, korlátozott

’18 szept. 13

Page 14: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

Alap 8051-en:

4 port: P0, P1, P2, P3

8051 verziók:

lehet több is vagy kevesebb

Mindegyik porthoz:

8 áramköri kivezetés

A kivezetések angol neve:

pin

Elérés SFR regiszterként:

direkt címzés: 128-255

Assembly:

mov P0, #32

mov portvalue,P2

setb P1.4

C:

P0=32;

portvalue=P2;

P0_4=1;

2018. 09. 08. 6:48 Digitális perifériák és használatuk 14

Page 15: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

Kimenet: D tárolóa beírt adat (Q) a következő írásig azonos marad

Bemenet: 3 állapotú meghajtóolvasáskor az adatbuszra tudja kötni a jelet

’18 szept. 15

WRITE

D

C

Q

DA

TA B

US

READ

Page 16: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

’18 szept. 16

WRITE

SET

CLEAR

D

C

QPORT OUT

PORT IN

DAT

A B

US

READ

READ-MODIFY-WRITE

ANALOG I/O

PORTDRIVERDIGITAL

PERIPHERAL

ANALOGPERIPHERAL

pl: ANL P0,#32

Page 17: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

Sokféle mód egyetlen kivezetés esetén

A digitális ki- és bemenetek többfélék is lehetnek

’18 szept. 17

Page 18: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

A kapcsolók szabják meg

A kiválasztott módot

A logikai értéket

A kapcsolók tranzisztorok

Digitális jelek vezérlik őket

VI/O: input/output tápfeszültség

Általában nagyobb a mikrovezérlőbelső áramköreinek tápfeszültségénél (Vdd)

’18 szept. 18

VI/O

Rp

uR

pd

VI/O

Page 19: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

’18 szept. 19

VI/O

Rp

uR

pd

VI/O VI/O

Rp

uR

pd

VI/O

0 1

Page 20: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

’18 szept. 20

VI/O

Rp

uR

pd

VI/O VI/O

Rp

uR

pd

VI/O

0 1

Page 21: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

’18 szept. 21

VI/O

Rp

uR

pd

VI/O VI/O

Rp

uR

pd

VI/O

0

?

Page 22: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

’18 szept. 22

VI/OR

pu

Rp

dVI/O VI/O

Rp

uR

pd

VI/O VI/O

Rp

uR

pd

VI/O

Page 23: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

’18 szept. 23

VI/O

Rp

uR

pd

VI/O

Page 24: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

PORT DRIVER

’18 szept. 24

OUT ENABLEOR

AND

OR

Rp

PORT OUT

PUSH-PULL MODE

VI/O

VI/O

ANALOG MODE

ANALOG IN

PORT IN

WEAK PULL-UP

VI/O

Page 25: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

Alapmód: open-drain

0: erős kötés GND-re

1: 20k-100k VI/O-ra

1: egyben input mód is

’18 szept. 25

Rp

u

VI/O

PORT BIT

D tárolótól

Page 26: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

Push-pull mód

0: erős kötés GND-re

1: erős kötés VI/O-ra

’18 szept. 26

VI/O

PORT BIT

Page 27: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

OPEN-DRAIN MÓD

Logikai 1 kimenet esetén bementként is funkcionálhat

kevés perifériát lehet jól meghajtani

kicsi áramot tud adni a kimenet

Ha a kimeneten kapacitás van, lassú lehet a felfutás (≈RC)

Ha a kimeneten ellenállás van, könnyen elhúzhatja

Logikai 0 kimenet esetén erős meghajtás

nagy áramot tud húzni

PUSH-PULL MÓD

Erős meghajtás mindkét állapot esetére

Mindig érdemes használni, kivéve amikor open-drainszükséges (pl. wired-OR)

Kimondottan fontos, ha gyors jeleket kell előállítani

nagyobb áramot kell adni

’18 szept. 27

Page 28: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

Digitális mód

Schmitt-trigger input

20k-100k gyenge felhúzóellenállás

Analóg mód

Kikapcsolja a felhúzóellenállást

Nagyimpedanciás bemenet

’18 szept. 28

Rp

uVI/O

VI/O

VI/O

IL

Page 29: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

parameter conditions min typ max units

Voltage on any Port 0 Pin -0.3V - 5.5 V

Voltage on any Port I/O Pin(except Port 0 pins)

-0.3V - Vio+0.3 V

Maximum output current sunk by any Port pin

- 100 mA

Maximum output current sourced by any Port pin

- 100 mA

Maximum Total current through Vdd, Vio,... and GND

500 mA

’18 szept. 29

Page 30: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

parameter Conditions min typ max units

Output High Voltage(Port I/O push-pull )

IOH = –3 mAIOH = –70 μA

VI/O – 0.5 VI/O – 50mV

- - V

Output Low Voltage VI/O = 2.0 V:IOL = 70 μAIOL = 8.5 mA

VI/O = 4.0 V:IOL = 70 μAIOL = 8.5 mA

- -50

800

40400

mV

Input High Voltage VI/O x 0.7 - -

Input Low Voltage - - VI/O x 0.3

Input Leakage Current Weak Pullup Off - <0.1 1 μA

Weak Pullup Impedance - 120 - k

’18 szept. 30

Page 31: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

Mindig tartsuk be a feltételeket!Ha megsértjük az ABSOLUTE MAXIMUM RATINGS

feltételeketaz áramkör károsodhat

az áramkört azonnal selejtezni kell!

nem szabad egy próbateszttel „megmenteni”Ha megsértjük az ELECTRICAL CHARACTERISTICS

feltételeketaz áramkör helyes működése nem garantált

más részfunkciók is hibásan működhetnek!

maradéktalanul meg kell szüntetni az okokat

’18 szept. 31

Page 32: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

BEMENŐ FESZÜLTSÉG

>VI/O: áram a táp felé <GND: áram a 0V-tól terheli a jelforrást ha nem korlátos az áram, kárt

okoz soros ellenállás védhet

érték választása

külső áramkörös védelem

A PORT TÚLTERHELÉSE

Nem megfelelő logikai szint jöhet létre

Hibás működés A portok összárama a

VI/O/GND áramához járul A VI/O/GND kivezetések árama

korlátos! Károsodás történhet soros ellenállás védhet

érték választása

’18 szept. 32

Page 33: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

RESET-kor a port I/O még nem aktív

Weak-pullup mode

A külső elektronika ezt figyelembe kell vegye!

motorvezérlés

külső áramkörök fals jeleket kaphatnak

megfelelő inicializálás kellhet a többi áramkörnek

A crossbar engedélyezése szükséges a portok használathoz

’18 szept. 33

Page 34: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

’18 szept. 34

Page 35: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

II/O korlát → külső meghajtók bővíthetik

pl. 74AHC541, 74AHC125, 74AHC138

Melyik logikai család megfelelő?

LS, HC, HCT, AHC, AHCT, LVC?

5V vagy 3,3V?Még nagyobb áram szükséges?

tranzisztor

tranzisztortömb (pl. ULN2803)

’18 szept. 35

Page 36: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

’18 szept. 36

5411

2

3

4

5

6

7

8

9

10

20

19

18

17

16

15

14

13

12

11

VddOE

OE

GND

1381

2

3

4

5

6

7

8

10

16

15

14

13

12

11

GND 9

VddA0

A1

A2

Y7

E1

E2

E3

Y6

Y0

Y1

Y2

Y3

Y4

Y5

Page 37: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

’18 szept. 37

5742

3

4

5

6

7

8

16

15

14

13

12

11

D6

Q3

D0

D1

D5

D2

D3

D4 Q4

Q5

Q6

Q7

CP

9

10 GND

20

19

18

17

Vdd

Q0

Q1

Q2

1 OE

D7

C

74x574

D Q

CP

74x574

D Q

CP

Page 38: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

DS: soros adat bemenetSHC: soros órajelSTC: kimenetre tárolásQ0..Q7: kimenetekQ7S: soros kimenetMR: reset (törlés)OE: kimenet engedélyezés

’18 szept. 38

5951

2

3

4

5

6

7

8

10

16

15

14

13

12

11

GND 9

VddQ1

Q2

Q3

Q7

Q4

Q5

Q6

Q7S

Q0

DS

OE

STC

SHC

MR

Soros-párhuzamos konverter

Page 39: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

’18 szept. 39

B7 B6 B5 B4 B3 B2 B1 B0DS

SHC

STC

Q Előző érték B7..B0

74AHCT595

Page 40: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

’18 szept. 40

10

16

15

14

13

12

11 9

59

51 2 3 4 5 6 7 8

GN

D

Vd

dQ

1

Q2

Q3

Q7

Q4

Q5

Q6

Q7

S

Q0

DS

OE

STC

SHC

MR

10

16

15

14

13

12

11 9

59

51 2 3 4 5 6 7 8

GN

D

Vd

dQ

1

Q2

Q3

Q7

Q4

Q5

Q6

Q7

S

Q0

DS

OE

STC

SHC

MR

DATA

LOADCLOCK

Page 41: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

MCU

A tranzisztor bázisába áram folyik

Push-pull mód szükséges

’18 szept. 41

R

V+

BC817500mA

RBC817500mA

V+

Page 42: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

MCU

Push-pull mód szükséges

A belső felhúzó nem elég

A lehúzó átmeneti állapotra biztosít (pl. boot folyamat)

Fontos a tranzisztor kapcsolási küszöbe a biztos nyitáshoz

’18 szept. 42

V+

IRLML25024A

IRLML25024A

V+

10

k1

0k

Page 43: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

’18 szept. 43

2k7

3k7k2

1

2

3

4

5

6

7

8

9 10

18

17

16

15

14

13

12

11

GNDGND

OUT

COM

IN

COM

ULN2803

Page 44: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

’18 szept. 44

Page 45: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

A mikrovezérlőt tartalmazó eszközt gyakran a felhasználó beállíthatja, a működést ellenőrizheti

Szükség van adatok

bevitelére

megjelenítésére

Általában digitális adatokról van szó, ezek lebonthatók kétállapotú elemekre

’18 szept. 45

Page 46: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

A portokon csak digitális jel olvashatóA nyomógomb és kapcsoló rövidzár vagy

szakadásEbből kell logikai 0 és 1 értéknek megfelelő

feszültséget előállítaniEgyszerű mód:

tápfeszültség (logikai 1) kötünk egy ellenállást és vele sorba a nyomógombot, amit a GND pontra (logikai 0) kötünk

benyomott állapot: 0, kiengedett: 1

’18 szept. 46

Page 47: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

Mekkora legyen a felhúzó ellenállás (R) ?Szokásos értékek: 4k7, 10k, 3k3, 2k2, 1kA kondenzátor csökkenti a zavarérzékenységetSoros 1k: a port hibás konfigurálása elleni védelem

’18 szept. 47

R

C

VI/O

R

VI/O

1k 1k

Page 48: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

C8051Fxxx

Mekkora legyen az ellenállás? A portokon levő felhúzó ellenállás is használható

Zavarérzékenyebb

Kondenzátor segít

’18 szept. 48

C

Rp

u

VI/O

C8051Fxxx

Rp

u

VI/O

1k 1k

Page 49: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

A kapcsolás pillanatában zavarjelekSok parazita kapcsolgatásElkerülés elv

Hardveres szűrés (kondenzátorral)

Szoftveres

a prell rövid idejű, a lenyomás viszont nem

a túl gyakori váltpzáokat kell figyelmen kívül hagyni

’18 szept. 49

Page 50: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

A gomb hatására feladat végrehajtás

lenyomás pillanatában

a felengedés pillanatában

amíg a gomb nyomva van

ezek kiegészíthető holtidőkkel, a gombnyomások számától függő paraméterekkel, stb.

Milyen gondot okoz ezeknél a prell?Hogyan kerülhető el az egyes esetekben?

’18 szept. 50

Page 51: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

Sok nyomógomb beolvasása

telefonbillenytűzet

point-of-sale (POS) terminál

automated teller machine (ATM)

A szükséges jelek redukálására mátrix

A beolvasáshoz minden lehetőséget meg kell nézni

Megállhatunk, ha megtaláltunk egyet

Több is lenyomva?

’18 szept. 51

Page 52: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

’18 szept. 52

Page 53: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

MC

U

Pn.0-Pn.2 kimenetekPn.3-Pn.6 bemenetek1. oszlop tesztje:

Pn.2=0, Pn.1=1, Pn.0=1

Pn.3-Pn.6 beolvasása

2. oszlop tesztje:

Pn.2=1, Pn.1=0, Pn.0=1

Pn.3-Pn.6 beolvasása

3. oszlop tesztje:

Pn.2=1, Pn.1=1, Pn.0=0

Pn.3-Pn.6 beolvasása

’18 szept. 53

1 2 3

4 5 6

7 8 9

* 0 #

Pn.0

Pn.1

Pn.2

Pn.3

Pn.4

Pn.5

Pn.6

Page 54: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

’18 szept. 54

Page 55: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

C8051Fxxx

Negatív logika, open drain módA LED táp lehet más, mint VI/O

’18 szept. 55

R

V+

Rp

VI/O

PORT BIT

Page 56: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

C8051Fxxx

Negatív logika, push-pull mód

’18 szept. 56

VI/O

PORT OUT

R

VI/O

Page 57: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

C8051Fxxx

Pozitív logika, csak push-pull mód

’18 szept. 57R

VI/O

PORT BIT

Page 58: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

’18 szept. 58

R

Vdd

R R R R R R R

A B C D E F G DP

Pn.0 Pn.1 Pn.2 Pn.3 Pn.4 Pn.5 Pn.6 Pn.7

F B

A

E C

G

D DP

G F Vdd A B

E D Vdd C DP

Page 59: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

Negatív logika: P0=~ledbits; // bytewise

’18 szept. 59

BCD G F E D C B A ledbits

0 0 1 1 1 1 1 1 3Fh

1 0 0 0 0 1 1 0 06h

2 1 0 1 1 0 1 1 5Bh

3 1 0 0 1 1 1 1 4Fh

4 1 1 0 0 1 1 0 66h

5 1 1 0 1 1 0 1 6Dh

6 1 1 1 1 1 0 1 7Dh

7 0 0 0 0 1 1 1 07h

8 1 1 1 1 1 1 1 7Fh

9 1 1 0 1 1 1 1 6Fh

Page 60: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

Fényesség – nagyobb áram

meghajtó lehet szükséges

tranzisztorok vagy tranzisztortömb (pl. ULN2803A)

Több kijlező?

külső latch (pl. 74HC574)

időosztásos kapcsolás (a fényerő csökken)

’18 szept. 60

Page 61: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

Táp (bemenet) GND Vdd (5V vgy kisebb)

Vo (bemenet) kontraszt, Vdd-hez közeli

Vezérlőjelek (bemenet) RS: cím vagy adat RW: olvasás, írás E: engedélyezés

Adatbusz (kétirányú) DB0-DB7 DB4-DB7 négybites

módban háttérvilágító LED (BL)

Anód és katód, nem standard

50mA-300mA

Legelterjedtebb kiépítések: 2x16 karakter 2x20 karakter 4x16 karakter 4x20 karakter

Opcionális háttérvilágítás

’18 szept. 61

GN

DV

DD

Vo

RS

R/W

E DB

0D

B1

DB

2D

B3

DB

4D

B5

DB

6D

B7

BLA

/CB

LC/A

1 16

Page 62: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

Speciális adatbusz

nincs hozzá hardver által kezelt megoldás

Ilyenkor: bit banging

Szoftveresen állítjuk be a jeleket a kívánt értékűre megfelelő időzítéssel

’18 szept. 62

Page 63: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

E lefutó éle ír beÉrvényes a lefutó élnél

E felfutó éle indít olvasástÉrvényes a lefutó élnél

’18 szept. 63

RS

R/W

E

DATAIN

Tas>40ns

Tpw>230ns

Tdsw>40ns

Tah>10ns

Th>10ns

TcycE >500ns

WRITE TIMING

RS

R/W

E

DATAOUT

Tas>40ns

Tpw>230ns

Tddr>160ns

Tah>10ns

Th>5ns

TcycE >500ns

READ TIMING

VALIDVALID

Page 64: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

UTASÍTÁSREGISZTER ELÉRÉSE

RS=0 Inicializálás Üzemmód beállítása Kijelző törlése Kurzorpozíció beállítása Villogó kurzor Automatikus kurzorléptetés …

ADATREGISZTER ELÉRÉSE

RS=1 karakterek írása a kijelzőre aktuális kurzorpozícióra Karakter kódjának írásával Egysoros kijelzők kurzorcímei

0x00+i Kétsoros kijelzők kurzorcímei

1. sor: 0x00+i 2. sor: 0x40+i

Négysoros kijelzők kurzorcímei 1. sor: i 2. sor: 0x40+i 3. sor: sorhossz+i 4. sor: 0x40+ sorhossz+i

’18 szept. 64

Page 65: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

Utasítás adatbitek megjegyzés

B7 B6 B5 B4 B3 B2 B1 B0

Cleardisplay

0 0 0 0 0 0 0 1 A teljes kijelző törlése

Returnhome

0 0 0 0 0 0 1 - A kurzor és beviteli mód alaphelyzetbe hozása

Entry modeset

0 0 0 0 0 1 ID S Beviteli mód:ID=1:kurzor jobbraS=1:teljes kijelző eltolás

Displayon/off

0 0 0 0 1 D C B Kijelző: D=1 bekapcsolás,C=1 kurzor be, B=1 kurzor villog

Cursor ordisplay shift

0 0 0 1 SC RL - - SC=1:kijelző, 0:kurzorRL=1:jobbra, 0: balra mozgatás

Functionset

0 0 1 DL N F - - DL=1:8-bites, 0:4-bites módN=1:2 sor, 0:1 sorF=1:5x10, 0:5x8 képpont egy betű

’18 szept. 65

Page 66: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

Utasítás adatbitek megjegyzés

B7 B6 B5 B4 B3 B2 B1 B0

Set CGRAMaddress

0 1 A5 A4 A3 A2 A1 A0 karaktertáblába írás címesaját karakterek definiálására

Set DDRAMaddress

1 A6 A5 A4 A3 A2 A1 A0 a kijelzőre írás címe, azaz a kurzor pozicionálása

RS=0 és R/W=0 kell az utasítások küldéséhezAz utasítások valamennyi ideig futnak (~40us)Ez alatt nem szabad a kijelzőbe írni!Megoldás:

megfelelő szoftveres késleltetés az utasítás kiadása után

az állapotbit beolvasása (B7), R/W=1 állításával

’18 szept. 66

Page 67: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

#define LCD_RS P0.5

#define LCD_RW P0.6

#define LCD_E P0.7

#define LCD_PORT P1

unsigned char line_address[4];

void LCD_Init(unsigned char rows, unsigned char cols)

{

unsigned char i;

line_address[0]=0;

line_address[1]=0x40;

line_address[2]=cols;

line_address[3]=0x40+cols;

’18 szept. 67

Page 68: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

LCD_RW=0;

LCD_E=0;

LCD_RS=0;

Delay_ms(50); // Special initialization sequence

LCD_DATA=0x30; // 8-bit mode

LCD_PulseE();

Delay_ms(5);

LCD_PulseE(); // 8-bit mode

Delay_ms(1);

LCD_PulseE(); // 8-bit mode

LCD_Write(0x38); // 8-bit mode, 2 lines

LCD_Write(0x08); // display off

LCD_Write(0x01); // display clear

LCD_Write(0x06); // entry mode: increment cursor

LCD_Write(0x0C); // display on, no cursor, no blink

}

’18 szept. 68

Page 69: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

void LCD_PulseE(void)

{

unsigned char i;

for(i=0;i<100;i++);

LCD_E=1;

for(i=0;i<100;i++);

LCD_E=0;

}

void LCD_Write(unsigned char a)

{

LCD_DATA=a;

LCD_PulseE();

Delay_ms(2); // or check busy flag

}

’18 szept. 69

Page 70: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

void LCD_Clear(void)

{

LCD_RS=0;

LCD_Write(1);

LCD_RS=1;

}

void LCD_MoveTo(unsigned char line, unsigned char pos)

{

LCD_RS=0;

LCD_Write(0x80 | (line_address[line]+pos));

LCD_RS=1;

}

’18 szept. 70

Page 71: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

Két részletben lehet írni a regisztereket

A felső négy bitet először

Az alsó négy bitet ezután

A D7..D4 adatbiteket kell használni

’18 szept. 71

Page 72: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

stdio átirányítás? printf?

void putchar(char c)

{

LCD_Write(c);

}

LCD_MoveTo(0,10); // first line, 10th position

printf("x=%d",x); // write

A /r és /n kezelése nincs megoldvanem nagyon van rá igény, inkább LCD_MoveTo

A további LCD függvények szükségesekclear, move, blink on/off, etc.

’18 szept. 72

Page 73: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

’18 szept. 73

Page 74: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

CROSSBAR

’18 szept. 74

PERIPHERAL #1

PERIPHERAL #2

PERIPHERAL #3

P0

P1

PORTCELL

P0.0

P0.7

PORTCELL

P1.0

P1.7

Page 75: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

’18 szept. 75

Peripheral #1

Peripheral #2

Peripheral #3

Pins #1

Pins #2

Pins #3

Pin skip

Port latches #1

Port latches #2

Port latches #3

Port input #1

Port input #2

Port input #3Selected #1

Selected #2

Selected peripherals

inactive peripheral

Page 76: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

C8051F410

’18 szept. 76

UART

P0.4

P0.5

TX

RX

P0.4 LATCH

P0.4 INPUT

P0.5 LATCH

P0.5 INPUT

Page 77: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

A perifériák prioritási sorrendben kapcsolódnak a kivezetésekre (a portcella bitek sorrendjében)

A bekapcsolt perifériákfoglalnak kivezetést

átveszik a kivezetés kezelését a processzortól

a társított kivezetés olvasható a processzor számáraA maradék kivezetések normál portbitek

a processzor közvetlenül írhatja, olvashatjaLehetséges kivezetések kihagyása is (pin skip)

ekkor a crossbar a következő szabad kivezetést köti be

’18 szept. 77

Page 78: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

’18 szept. 78

Page 79: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

’18 szept. 79

Ha a crossbar nincs engedélyezve, a GPIO sincs!Alapértelmezés reset után

gyenge felhúzóellenállások bekapcsolva

logikai bemenet, de felhúzással

külső meghajtás nélkül logikai 1

Ha a program futása közben változtatni kell a kiosztást:a crossbar kikapcsolása

új kiosztás definiálása

a crossbar bekapcsolása

a külső jeleket ez befolyásolhatja!

Page 80: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

’18 szept. 80

Page 81: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

Időzítési/időmérési feladatok, például:felhasználói felület kezelése

mechatronikai rendszerek

periodikus események (megszakítások)

mintavételezéses mérés, folyamatok figyelése

adatátvitel, kommunikáció ütemezése

időtartamok mérése

timeout generálás

időzített jelváltások, jelgenerálás

valós idejű óra

’18 szept. 81

Page 82: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

A fő elem: egy bináris számláló

Digitális bementi jel

A jel fel- vagy lefutó élének hatására eggyel növekszik vagy csökken az érték

Időzítés:

Periodikus események számlálása

Számlálás

Ismeretlen időpontokban bekövetkező események számlálása

’18 szept. 82

Page 83: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

’18 szept. 83

REGISTER

COUNTERC

OM

PAR

ATO

R

OSCILLATOR

EXTERNALSIGNAL

Timermode

Countermode

EXTERNALSIGNAL

MIC

RO

CO

NTR

OLLER

CO

RE

AN

D O

THER

PER

IPH

ERA

LS

Page 84: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

Bemenete lehet ismert órajel vagy külső jelEseményeket generálhat

Túlcsordulás

A regiszterrel megegyező érték

A regiszterbe másolódhat érték vagy a regiszter tartalma másolódhat a számlálóba külső jel vagy szoftveres kérés hatására

’18 szept. 84

Page 85: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

16-bit counter

’18 szept. 85

lowbyte

highbyte

OSCILLATORFLAG

EXTERNAL SIGNAL

Timermode

Countermode

SET

CLEAR

D

C

Q1

max valuemax value-1

overflow

L0 L1 L2 L3 L4 L5 L6 L7 H0

H1

H2

H3

H4

H5

H6

H7

initial value

to peripheralsUART, PCA,…

initial value+1

overflow pulse(H7: 10)

clock signal

countervalue

Page 86: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

Bemenet: periodikus vagy külső jelTúlcsordulás

pulzust generál

beállít egy flaget

A flag törlésig 1 marad A pulzus meghajthat más perifériákat (független

a flagtől)

’18 szept. 86

Page 87: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

Klasszikus 8051 perifériaSokféle üzemmódSilicon Laboratories továbbfejlesztés

teljes sebesség is (SYSCLK)

rugalmasabb megszakításkezelés

’18 szept. 87

Page 88: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

CLK0 az órajelforrásokból áll elő TR0 engedélyezi a számlálást GATE0 engedélyezi a külső jellel való kapuzást IN0PL invertálja a külső kapuzó jelet TCLK0 = (TIMER ? CLK0 :T0) & TR0 & (!GATE0 | (INT0 ^ IN0PL)) Timer1 számára hasonló, de független beállítás

’18 szept. 88

SYSCLK/12

SYSCLK/4

SYSCLK/48

EXT OSC/8

SYSCLK

T0

/INT0

IN0PL

GATE0

XOR

ORAND

ANDTR0

CLK0

TCLK0

Page 89: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

13-bites számláló Minden TCLK0 lefutóél egyet növel a számláló értékén A számláló két 8-bites részből áll

TH0: a nagyobb helyi értékű byte

TL0: a kisebb helyi értékű byte TL0-nak csak az alsó 5 bitje aktív, a felső három határozatlan TF0 1-re vált, ha a számláló túlcsordul TF0 megszakítást válthat ki, ha engedélyezve van, ekkor

automatikusan törlődik, egyébként szoftveresen kell törölni Mode 1 azonos, de mind a 16 bit aktív

’18 szept. 89

TL0, 5 LSBs TH0TCLK0 TF0

TL0 TH0TCLK0 TF0

MODE 0

MODE 1

Page 90: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

Késleltetés generálásMegszakítás generálás

hardveres (fix időzítés)

szoftveresen felülírható

Frekvenciamérés (VFC, R vagy C)PeriódusmérésIdőtartam mérése (gate használata)

’18 szept. 90

Page 91: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

A függvényhívás és műveletek ideje is hozzáadódiksteps lépés idejéig várakozik

void Delay(unsigned short steps)

{

TMOD=(TMOD & 0xF0) | 0x01; // 16-bit timer

CKCON=CKCON | 0x04; // timer0 clk=sysclk

TH0=-steps >> 8; // 65536-steps

TL0=-steps;

TF0=0;

TR0=1;

while (!TF0);

TR0=0;

}

’18 szept. 91

Page 92: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

RESET érték: timer0 és 1 órajel=sysclk/12 steps timer lépésenként megszakítás (túlcsordulás) Megszakítási késleltetés befolyásolja, kicsit szoftverfüggő

TMOD=(TMOD & 0xF0) | 0x01; // 16-bit timer

TR0=1; // run timer

IE=0x82; // enable global & timer0 interrupts

void Timer0Handler(void) __interrupt 1

{

TR0=0; // stop timer

TH0=-steps >> 8; // 65536-steps

TL0=-steps;

TR0=1; // start timer

}

’18 szept. 92

Page 93: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

Counting

Frekvencia, szenzorok, VFC, R vagy C méréseAdott ideig számláljuk a lefutó éleketTartomány 0-fmax vagy fmin-fmaxFelbontás?Két timer

az egyik számlálja az eseményeket

a másik az időtartamot (pontosság?)

’18 szept. 93

T0

TR0

0 21 3 4 5 6TH0,TL0

Page 94: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

TCON=0; // stop timers

TMOD=0x15; // T0:16-bit counter T1:timer

TH0=0; // initialise counter

TL0=0; // initialise counter

TH1=-steps >> 8; // 65536-steps

TL1=-steps; // TR0=1 for steps*timer period

TF1=0; // clear timer 1 flag

TCON=0x50; // run both timers

while (!TF1); // assembly?

TCON=0; // stop both timers

Az eredmény TH0/TL0 regiszterekbe kerül Esetleges megszakítások ronthatják az eredményt! A timerek másra ezalatt nem használhatók Összességében: kicsit szoftverfüggő, nem teljesen hardveres megoldás

’18 szept. 94

Page 95: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

N periódust megszámlálunkMegmérjük, mennyi T ideig tart

T Kt

t = timer lépésidő

Periódus = T/N Kt/NKét timer használata

számlálás N esemény bekövetkeztéig

a szükséges időtartam megmérése, azaz K mérése

’18 szept. 95

Page 96: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

Counting’18 szept. 96

T0

TR0,TR1

65535TH0,TL0 065534L+1LL

K-1TH1,TL1 K00 1 K-2

T1 CLK

2 K-3

TF0

N periods (L=65536-N)

Kt

Page 97: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

TCON=0; // stop timers

TMOD=0x15; // T0:16-bit counter T1:timer

TH1=0; // clear T1 timer value

TL1=0; // clear T1 timer value

TH0=-N >> 8; // 65536-N

TL0=-N; // N events to overflow (TF0=1)

TF0=0; // clear timer 0 flag

TCON=0x50; // run both timers

while (!TF0); // wait for N events (assembly?)

TCON=0; // stop both timers

Az eredmény a TH1/TL1 regiszterekbe kerül (K) Esetleges megszakítások ronthatják az eredményt! A timerek másra ezalatt nem használhatók Összességében: kicsit szoftverfüggő, nem teljesen hardveres megoldás

’18 szept. 97

Page 98: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

Digitalizálás timer periódusok számlálásávalA timerek GATE funkciója használhatóMegoldás:

A számláló adott órajellel megy

A külső jel aktív idejéig engedjük a számlálást

Elég egy timer

INT0 engedélyezése a crossbaron szükséges

’18 szept. 98

Page 99: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

Counting

’18 szept. 99

/INT0

K-1TH0,TL0 K00 1 K-2

T0 CLK

Kt

TR0

waiting while high waiting for falling edge

Page 100: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

TR0=0; // stop timerTH0=TL0=0 // clear timerTMOD=0x09; // T0:16-bit gated timer modeIT0=0; // level triggered /INT0IE0=0; // clear INT0 flagwhile (!IE0); // wait for input going downIT0=1; // edge triggered /INT0IE0=0; // clear INT0 flagTR0=1; // enable timerwhile (!IE0); // wait for end of pulseTR0=0; // stop timer

Az eredmény a TH0/TL0 regiszterekbe kerül A pulzusnak TR0=1 után kell indulnia! Erre várakozás a kódban INT0-t a crossbaron engedélyezni kell, megszakításban is kezelhető Esetleges megszakítások ronthatják az eredményt! Kicsit szoftverfüggő, nem teljesen hardveres megoldás

’18 szept. 100

Page 101: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

8-bites számláló TH0 tartalmazza a kezdőértéket Ez TL0 túlcsordulásakor beíródik innen folytatódik a számlálás Példa: TL0=0; TH0=252; TF0=0;

Periódus: (256-TH0)t TF0:

szoftver vagy megszakítás törli

’18 szept. 101

01

255252253254255252253254255252253

0t

4t

4t

TL0 TF0

0

01111110011

CLR TF0

TL0

TH0

TCLK0 TF0

Page 102: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

Soros bitátviteli ráta: baud rate (UART)Periodikus megszakítások generálásaKiszolgáló a PCA-hoz (Timer0, lásd később)8-bit: korlátozott felbontás és pontosságNagyobb periódus – nagyobb pontosságMindig ellenőrizzük, mennyi lett a periódus

’18 szept. 102

Page 103: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

’18 szept. 103

5.0/256256/

5.0/2560

0256//1

/02560256

desiredclkclkactual

desiredclk

clkactualdesired

clk

ffff

ffTH

THfffPeriod

fTHtTHPeriod

Page 104: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

0

0,2

0,4

0,6

0,8

1

0 0,2 0,4 0,6 0,8 1

Act

ual

fre

qu

en

cy/f

clk

Desired frequency/fclk

’18 szept. 104

Page 105: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

’18 szept. 105

-50

-25

0

25

50

0 0,2 0,4 0,6 0,8 1

Erro

r [%

]

Desired frequency/fclk

Page 106: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

Baud rate = Timer1 overflow rate / 2F410 SYSCLK: 191406Hz9600 bit/s = 191406/(256-TH1) / 2TH1=256-SYSCLK/BAUDRATE/2246=0xF6BAUDRATE=9570 bit/s, jó ez? SYSCLK: 2%!

TMOD=(TMOD & 0x0F) | 0x20; // mode 2

CKCON=CKCON | 0x08; // timer1clk=sysclk

TH1=0xF6;

TR1=1;

’18 szept. 106

Page 107: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

Interrupt rate = Timer0 overflow rateF410 SYSCLK: 191406HzTH0=256-SYSCLK/IRQRATEElvi tartomány: 748Hz-191406Hz (TH0=0-255)A periódus > IRQ végrehajtási idő legyen

TMOD=(TMOD & 0xF0) | 0x02; // mode 2

CKCON=CKCON | 0x04; // timer0clk=sysclk

TH0=65; // 1000Hz

TR0=1;

IE=0x82; // enable interrupt

’18 szept. 107

Page 108: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

Két független 8-bites számláló (Timer 1 inaktív ekkor)TL0-t a szokásos komplex órajel hajtjaTH0-t a skálázott órajel vagy SYSCLK

’18 szept. 108

SYSCLK/12

SYSCLK/4

SYSCLK/48

EXT OSC/8

SYSCLK

T0

/INT0

IN0PL

GATE0

XOR

ORAND

ANDTR0

TH0 TF1

TL0 TF0

CLK0

TCLK0

Page 109: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

Periodikus megszakítások generálásaTL0 számlálásra, megszakítások generálásáraÓrajel a perifériák számára

’18 szept. 109

Page 110: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

Az MCS-51 mikrovezérlőben: Timer 0 és 18052: Timer 2 hozzáadásaSilicon Labs

további timerek hozzáadása

16-bit auto reload – nagyobb tartomány, pontosság

’18 szept. 110

Page 111: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

’18 szept. 111

SYSCLK/12

EXT OSC/8

SYSCLK

AND

TRn

TMRnL

TMRnRLL

TFnHTMRnH

TMRnRLH

C8051F410

TCLKn

Page 112: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

’18 szept. 112

TMR2RLTMR2RL+1

65534

0t

Nt

TMR2 TF2H ( interrupt)

0

0011

0011

65535TMR2RL

TMR2RL+1

6553465535

TMR2RLTMR2RL+1

Software clearsTF2H

TMR2=TMR2H*256+TMR2LTMR2RL=TMR2RLH*256+TMR2RLL

Nt

Hardware sets TF2Hgenerates interrupt

TMR2RL

Page 113: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

/**************************

steps = period/dt

dt=1/timer clock

steps = timer clock*period

reload value = 65536-steps

***************************/

unsigned long period; // in us

unsigned long tmrclk; // timer clock in Hz

unsigned short tmrrl; // reload value

tmrrl = -tmrclk*period/1000000L;

’18 szept. 113

Page 114: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

’18 szept. 114

SYSCLK/12

EXT OSC/8

SYSCLK

AND

TRn

TMRnH

TMRnRLH

TFnH

SYSCLKTMRnL

TMRnRLL

TFnL

Page 115: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

Flag felhasználásával (megszakítás engedélyezés):Periodikus megszakítások generálása

A túlcsordulási pulzussal (timer megszakítás nincs!):Baud rate generátor (UART)

SMBus bit rate, timeout

A/D konverzió indítása, mintavételezéses mérés

D/A konverzió indítása, időfüggő jel generálásaCode profiling

SYSCLK legyen a számláló órajele

a kódrészlet elején a számláló nullázása és indítása

a kódrészlet végén a számláló állása a futási időt adja

’18 szept. 115

Page 116: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

$include (C8051F410.INC)

LED EQU P0.2

CSEG at 0000h

jmp Main ; reset, jump to the main

ORG 002Bh ; Timer 2 IRQ vector

anl TMR2CN,#07Fh ; clear interrupt flag

cpl LED ; complement LED

reti ; return from interrupt

’18 szept. 116

Page 117: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

Main:

anl PCA0MD, #0BFh ; watchdog off

mov PCA0MD, #000h

mov XBR1, #040h ; crossbar on

mov TMR2RLL, #0B2h ; Timer 2 reload register

mov TMR2RLH, #0C1h ;

mov TMR2L, #0B2h ; Timer 2 counter initial value

mov TMR2H, #0C1h

mov TMR2CN, #004h ; Start Timer 2

mov IE, #0A0h ; enable interrupts

jmp $ ; repeat forever

END

’18 szept. 117

fclk=1/t=191406/12 Hz 15950 Hz (RESET utáni alapérték)1 sec = 15950t TMR2RL = 65536-15950 = 49586 = 0xC1B2

Page 118: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

Kevés a 16-bit? Szoftveres kiterjesztés:

Túlcsorduláskor egy változó értékét növeljük

Megszakítási rutinban

void TimerIRQ(void) __interrupt TIMER_VECTOR

{

static unsigned char counter=0;

counter = (counter+1) % countermax;

if (!counter) Process(); // overflow

}

’18 szept. 118

Page 119: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

’18 szept. 119

65534 0011

0011

6553501

6553465535

01

COUNTER (SW)TFTMR (HW)

0

1

INT+SWDELAY

Page 120: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

’18 szept. 120

Page 121: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

Adott órajellel fut egy 16-bites számlálóMellette van több 16-bites regiszterEsemények

A számláló túlcsordul

A számláló értéke azonos egy regiszterével

Külső jel változása (felfutás, lefutás vagy mindkettő)Lehetséges hatások

Megszakítás generálása

A számláló értéke átmásolódik egy regiszterbe

Kimeneti jel változtatása

’18 szept. 121

Page 122: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

’18 szept. 122

PCA0L PCA0H

SFR BUS

SNAPSHOTREGISTER

SYSCLK/12

SYSCLK/4

TIMER0

EXT CLK IN

SYSCLK

EXT OSC/8

RTC OSC/8

CF

PCA0L READ

PCA0CPL0 PCA0CPH0 CCF0

PCA0CPL1 PCA0CPH1 CCF1

PCA0CPL2 PCA0CPH2 CCF2

PCA0CPL3 PCA0CPH3 CCF3

PCA0CPL4 PCA0CPH4 CCF4

PCA0CPL5 PCA0CPH5 CCF5

CEX0

CEX1

CEX2

CEX3

CEX4

CEX5

TO P

OR

T I/

O

TO IN

TER

RU

PT

HA

ND

LER

Page 123: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

Sokféle órajelforrásAkár Timer0 8-bit auto-reload túlcsordulás

Timer 0 16-bittel való kiterjesztése

Lassabb, programozható órajel16-bites biztonságos olvasás (PCA0L először)

’18 szept. 123

PCA0L PCA0H

SFR BUS

SNAPSHOTREGISTER

SYSCLK/12

SYSCLK/4

TIMER0

EXT CLK IN

SYSCLK

EXT OSC/8

RTC OSC/8

CF

PCA0L READ

Page 124: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

Külső jel felfutó, lefutó vagy mindkét átmeneténélA PCA0 számláló a PCACPn regiszterekbe kerülA CCFn flag 1-re vált, megszakítás is létrejöhetEsemények, jelváltások időpillanatainak detektálásáraFrekvencia, periódusidő, pulzusszélesség, kitöltési

tényező mérésére alkalmas

’18 szept. 124

PCA0L PCA0H

CCFnCEXn

PCA clock

PCA0CPLn PCA0CPHn

Page 125: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

Pulzusszélesség mérése

Felfutó él engedélyezése

Megszakítás engedélyezése

A megszakításban:

capture regiszter elmentése

lefutó él engedélyezése

következő megszakításbancapture regiszter aktuális és előző értékének különbsége

Feladat: a kód megírása

’18 szept. 125

Page 126: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

’18 szept. 126

K+10 2 KK-11

(L-K)t

PCA CLK

PCA0

CEXn

L+1LL-1

CAPTURE REGISTER=K

CAPTURE REGISTER=L

INTERRUPT INTERRUPT

Page 127: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

A CCFn 1-re vált, ha a PCA0 = PCA0CPnDetektálás után CCFn törlése, új PCA0CPn érték beírásaVáltozatos szoftveres időzítésekhezFONTOS: Írási sorrend: PCA0CPLn, PCA0CPHn

’18 szept. 127

PCA0L PCA0H

CCFn

PCA clock

PCA0CPLn PCA0CPHn

16-bit COMPARATOR

0

1

RESET

OR

Write toPCA0CPHn

Write toPCA0CPLn

Page 128: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

’18 szept. 128

K+10 2 KK-11

PCA CLK

PCA0 L+1LL-1

COMPARE REGISTER=K COMPARE REGISTER=L

CCFn

software clears CCFn

Software updates compare register

Page 129: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

Programozható késleltetésAdott idő múlva bekövetkező megszakításNövekvő/csökkenő időnként bekövetkező

megszakításForráskódok?

’18 szept. 129

Page 130: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

Azonos a software timer móddal, de kimenő jelet is adÁltalános váltási idejű logikai jelek előállításáraFONTOS! Írási sorrend: PCA0CPLn, PCA0CPHn

’18 szept. 130

PCA0L PCA0H

CCFn

PCA clock

PCA0CPLn PCA0CPHn

16-bit COMPARATOR

0

1

RESET

OR

Write toPCA0CPHn

Write toPCA0CPLn

CEXn

D Q

C Q

Page 131: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

’18 szept. 131

K+10 2 KK-11

(L-K)t

PCA CLK

PCA0

CEXn

L+1LL-1

COMPARE REGISTER=K COMPARE REGISTER=L

Software updates compare register

Page 132: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

Periodikus négyszögjelNövekvő/csökkenő időnként változó jelVáltozó szélességű impulzusok (PWM)Változó időközönkénti impulzusokEgymáshoz képest precízen időzített jelváltások

több modul használatával több jel

A jelváltásokkor megszakítás

ez állíthatja be a következő jelváltási időt

részben szoftveres, befolyásolja a minimális időt!

’18 szept. 132

Page 133: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

8-bit felbontású teljesen hardveres négyszögjel-forrás50% kitöltési tényező f=fPCA/PCA0CPHn/2

’18 szept. 133

PCA0L

PCA0CPLn 8-bit adder

8-bit comparator

CEXn

D Q

C Q

PCA0CPHn

PCA clock

Enable

Page 134: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

’18 szept. 134

40 1 32255 765

PCACLK

PCA0L 8

PCA0CPLn 3 30

9 10

3 6 6 6 9 9 9 12 12

CEXn

PCA0CPHn=3

Page 135: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

8-bites PWM, programozható kitöltési tényező fPCA/256 frekvenciaFONTOS! Írási sorrend: PCA0CPLn, PCA0CPHn

’18 szept. 135

PCA0L

PCA0CPLn

8-bit comparator

CEXnS Q

R

PCA clock

Enable

PCA0CPHn

OVERFLOW

Page 136: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

’18 szept. 136

K+10 1 KK-1

Kt

255 0255254

(256-K)t

256t

PCA CLK

PCA0L

CEXn

1

Page 137: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

16-bites PWM, programozható kitöltési tényező fpca/65536 frekvenciaFONTOS! Írási sorrend: PCA0CPLn, PCA0CPHn

’18 szept. 137

PCA0L

PCA0CPLn

16-bit comparator CEXnS Q

R

PCA clock

Enable

PCA0CPHn

OVERFLOWPCA0H

Page 138: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

’18 szept. 138

K+10 1 KK-1

Kt

65

53

5

0

65

53

5

65

53

4

(65536-K)t

65536t

PCA CLK

PCA0

CEXn

1

Page 139: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

A PWM periodikus jelLassú rendszerek vezérlése

A periódusidőnél jóval hosszabb reagálási idő

A rendszer átlagolja (integrálja) a PWM jeletPéldák

D/A konverzió

LED/lámpa fényerő

Motor fordulatszám

Fűtőszál

Peltier elem

’18 szept. 139

Page 140: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

Analóg jel?A frekvencia elég nagy a rendszer sebességéhez

képest?Szűrés szükséges?Mekkora a hullámossága szűrés után?A logikai jel amplitúdója mekkora és milyen stabil?Ha mérjük a hatást, javítható a pontosság

’18 szept. 140

CEXn

C

R

Page 141: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

KözelítésA legnagyobb

ingadozás: 50% kitöltésT/2 ideig I=(VI/O/2)/RTöltés:IT/2

’18 szept. 141

RC

T

V

V

T

RC

V

C

TI

C

QV

OI

OI

4

2

22

/

/

V VI/O

CEXn

C

R

Page 142: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

Bizonyos C8051Fxxx processzorokonElfoglal egy PCA csatornát, ha aktívHa engedélyezve van, zárolva van a PCA clockEz alkalmazásokat korlátozhat

’18 szept. 142

PCA0H

PCA0CPH5

8-bit adder

8-bit comparator RESETAND

PCA0CPL5

Enable

PCA0LPCA clock

Write to PCA0CPH5 enables adder

PCA0L overflow

match

Page 143: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

’18 szept. 143

40 1 32255 765

PCA0Loverflow

PCA0H 8

PCA0CPH5 3 33

x x

6 6 8 8 8 8 8 x x

/RESET

Write toPCA0CPH5

PCA CLK/256

PCA0CPLn=4

Page 144: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

’18 szept. 144

Page 145: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

Valós idő mérésére, óraElemről önállóan megy, ha a táp ki van kapcsolvaÉbresztő funkció, felkelti a processzortAlacsony fogyasztás

’18 szept. 145

RTC8051CORE

Page 146: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

’18 szept. 146

RTC5

47

46

45

44

43

42

41

40

RTC4

39

38

37

36

35

34

33

32

RTC3

31

30

29

28

27

26

25

24

RTC2

23

22

21

20

19

18

17

16

RTC1

15

14

13

12

11

10

09

08

RTC0

07

06

05

04

03

02

01 X

CAPTURE5 CAPTURE4 CAPTURE3 CAPTURE2 CAPTURE1 CAPTURE0

ALARM5 ALARM4 ALARM3 ALARM2 ALARM1 ALARM0

47-bit COMPARATOR

32768HzOSC

ALARMIRQ

Page 147: Gingl Zoltán, 2018, Szeged MikrovezérlőkAlkalmazástechnikájagingl/hallgatoknak/mv/04_DigitalisPeriferiak.pdf · OPEN-DRAIN MÓD Logikai 1 kimenet esetén bementként is funkcionálhat

Óra, naptármásodpercek (4 byte : RTC5..RTC2, 232 periódus)

másodperc konvertálása dátummá (1970.1.1. 0:00)Alarm

megszakítás

hosszú idejű altatások (nagyon alacsony fogyasztás)Processzor órajelét adhatja

alacsony fogyasztás

pontosPCA órajelét adhatja

RTC clock/8, (4096Hz, 65536 lépés: 16s)

’18 szept. 147