Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
KiadtaBorbála Deák Megváltozta több, mint 6 éve
1
Mikrovezérlők alkalmazástechnikája laboratóriumi gyakorlat
I2C szenzor Makan Gergely, Markella Máté, Mellár János, Mingesz Róbert
2
Termisztor használata
3
Termisztor Uref Rref A/D Ut Rt 𝑇= 1 1 𝑇 25 + 1 𝐵 25/85 ∙ln 𝑅 t 𝑅 25
𝑅 t = 𝑅 ref ∙ 𝑈 t / 𝑈 0 1− 𝑈 t / 𝑈 0 Ut A/D Rt 𝑇 25 =(273,15+25) K 𝐵 25/85 =3977 K 𝑅 ref = 𝑅 25 =10 kΩ
4
LM75 nductor/DS PDF Kommunikáció: Bit-bang Beépített I2C periféria használata (SMbus)
5
SMBusHardverfelépítés – open-drain I/O
SCL CLOCK CONTROL CROSSBAR FILTER SHIFT REGISTER SDA 7 6 5 4 3 2 1 FILTER Cél: inter integrated circuit két vezeték kétirányú szinkronizálás, adat és órajel címzés open drain, pull-up adatráta (100k, 400k) több master és slave, max eszközök száma hossz LM73 példa ADC-k, stb SDA CONTROL ACK
6
SMBusBuszrendszer Master 1 Master 2 Slave 1 Slave 2 SCL SDA Vdd=5V
7
SMBusTipikus tranzakció
START 7-bit address and direction bit ACK 8-bit data NACK STOP SCL SDA A6 A0 R/W D7 D0
8
SMBusTipikus 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
9
SMBusMaster (fogad) Slave (küld)
IRQ IRQ IRQ IRQ S ADDR R A DATA A DATA N P SLAVE S ADDR R A DATA A DATA N P IRQ IRQ 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
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)
12
SMBusMechanizmus 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
13
SMBusPéldák (nem teljes!)
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 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
15
Feladatok
16
1. 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!
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)
18
Következő óra: Vizsgafeladat
Fejlesztőkörnyezet használata Timer Megszakítások I/O használata BCD kijelző használata ADC használata PCA használata Adatok átskálázása Oszcilloszkóppal végzett hibakeresés Használható eszközök: Excel, Silabs IDE, Config Wizard, toll
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.