Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
KiadtaÁgoston Illés Megváltozta több, mint 9 éve
1
Mikrovezérlők alkalmazástechnikája laboratóriumi gyakorlat Hőmérséklet mérése Makan Gergely, Mellár János, Mingesz Róbert V 5.0 2015. március 23.
2
Termisztor használata 2
3
TermisztorTermisztor 3 oldal U ref* UtUtUtUt RtRtRtRt R ref A/D
4
I2C szenzor 4
5
LM75 http://www.datasheetcatalog.org/datasheet/nationalse miconductor/DS012658.PDF http://www.datasheetcatalog.org/datasheet/nationalse miconductor/DS012658.PDF Kommunikáció: – Bit-bang – Beépített I2C periféria használata (SMbus) 5
6
SMBus Hardverfelépítés – open-drain I/O 6 FILTER SHIFT REGISTER 7 7 6 6 5 5 4 4 3 3 2 2 1 1 0 0 SDA CONTROL ACK CLOCK CONTROL CROSSBAR SCL SDA FILTER
7
SMBus Buszrendszer 7 Master 1 Vdd=5V Master 2 Vdd=3V Slave 1 Vdd=5V Slave 2 Vdd=3V SDA SCL RR RR Vdd=5V
8
8-bit data 7-bit address and direction bit 7-bit address and direction bit STOP NACK ACK START SMBus Tipikus tranzakció Bármelyik vezetéket az adó és vevő is 0-ba tudja húzni SCK: csak a masterek húzhatják 0-ba Több byte is küldhető egy tranzakcióban ACK minden byte vételekor szükséges a vevőtől NACK: nem nyugtáz a vevő, vagy utolsó byte (master) STOP: a tranzakció befejezése 8 R/W A6 A0 D7 D0 SCL SDA
9
SMBus Master (fogad) Slave (küld) 9 SLAVE MASTER S S ADDR R R A A DATA N N P P A A S S ADDR R R A A DATA N N P P A A IRQ
10
BitBang Szükséges jelalakok emulálása OC kimenet: a 0 érték „győz” Főbb elemek: – Várakozás (pl. 5 us, egyszerű ciklus) – Impulzus kiadása (közben érték beolvasása) – Bájtok forgatása (bitenként küldeni, beolvasni) Követni az idődiagramot 10
11
SMbus Adatlapok: – Mikrovezérlő – Szenzor IC Előadáson elhangzott példakód (1 byte beolvasása helyett 2 byte-ot kell beolvasni!) Port I/O konfigurálás SMbus órajel (config wizard segít) SMbus konfiguráció (Inhibit slave = true) 11
12
SMBus Mechanizmus Master SFR-bitek – STA, STO írása a jelek generáláshoz – ACK írása és olvasása is – SI flag (megszakítás is) 1-re vált, ha egy fázis kész – A busz áll, amíg SI=1, folytatódik, ha töröljük – Ezért mindig SI=0 előtt kell írni az SFR regisztereket 12
13
SMBus Példák (nem teljes!) 13 unsigned char SMBusIn(unsigned char address) { STO = 0; STA = 1; // start transfer while (!SI); // wait for start complete STA = 0; // manually clear STA SMB0DAT = (address << 1) | 1; // A6..A0 + read SI = 0; // continue while (!SI); // wait for complete if (!ACK) // not acknowledged, stop { STO = 1; // stop condition bit SI = 0; // generate stop condition return; } ACK = 0; // NACK, last byte SI = 0; // continue while (!SI); // wait for complete STO = 1; // stop condition bit SI = 0; // generate stop condition return SMB0DAT; }
14
Érték megjelenítése A magasabb helyiérték: °C-ban a hőmérséklet 14
15
Feladatok (következő 3 alkalom) 15
16
1. feladat Készítsen el egy termisztoros hőmérőt, ami °C-ban jelzi ki a hőmérsékletet! Megjegyzés: a mikrovezérlő lebegőpontos (float) számokkal is tud számolni. Double számokkal viszont nem! 16
17
2. feladat Bővítse a programot a következő funkciókkal: – Riasztás megadott hőmérséklet elérésekor – Potenciométerrel szabályozható termosztát – Maximum/minimum kijelzése – Konstans/csökkenő/növekvő hőmérséklet kijelzése (a megoldás ne legyen érzékeny a zavarokra) 17
18
3. feladat Készítsen el egy a LM75-ön alapuló hőmérőt, ami °C-ban jelzi ki a hőmérsékletet! Részletezze a megvalósítás lépéseit, a kommunikációt oszcilloszkóppal is vizsgálja! 18
19
4. feladat Bővítse a programot a következő funkciókkal: – Riasztás megadott hőmérséklet elérésekor – Potenciométerrel szabályozható termosztát – Maximum/minimum kijelzése – Konstans/csökkenő/növekvő hőmérséklet kijelzése (a megoldás ne legyen érzékeny a zavarokra) 19
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.