|
Rozšiřující deska pro Raspberry Pi
Návod
A/D převodník MCP3208
Expanzní deska obsahuje osmikanálový A/D převodník
MCP3208. Všech 8 měřících kanálů je vyvedeno na bok krabičky.
Na dvou kanálech (CH6 a CH7) je možné využít odporové děliče napětí,
a tím měřit i napětí, která jsou větší, než Uref.
Tyto děliče jsou tvořeny odpory R30, R31 (pro CH7) a R32, R33 (pro
CH6).
Dělící poměr těchto dvojic odporů závisí na maximální velikosti
měřeného napětí a na referenčním napětí A/D převodníku.
Prostor pro A/D převodník je řešený dost univerzálně,
takže existuje několik způsobů, jak ho zapojit:
1) Zapojení s 3,3V napájecím a referenčním
napětím bez stabilizace
Výhody |
Nevýhody |
Nejjednodušší zapojení s minimem součástek |
Měří vstupní napětí na většině kanálů (CH0
až CH5) pouze do 3,3V. |
Komunikační vývody je možné připojit přímo na
GPIO na RasPi bez nutnosti snižovat napěťové úrovně komunikace
na 3,3V. |
Kvůli nestabilizovanému referenčnímu napětí
(3,3V), které je brané přímo z RasPi, může docházet ke kolísání
měřených hodnot. |
Při tomto způsobu zapojení se osadí zkratovací
propojky (odpory 0R) pouze na pozice R36 a R37.
2) Zapojení s 3,3V napájecím napětím
a s nastavitelnou stabilizovanou referencí
Výhody |
Nevýhody |
Přesnější měření |
Maximální měřené napětí na většině
kanálů je ještě nižší, než v předchozím případě (2,5V až
3V) |
Referenční napětí je možné pomocí odporů
nastavit na přesnou hodnotu (od 2,5V do 3V) |
Komunikační vývody je možné, stejně jako v předchozím
případě, připojit přímo na GPIO na RasPi bez nutnosti snižovat
napěťové úrovně komunikace na 3,3V. |
Při tomto způsobu zapojení se osadí zkratovací
propojka (odpor 0R) na pozici R37,
což zajistí napájecí napětí 3,3V pro A/D převodník i stabilizátor.
Pak se osadí stabilizátor TL431 a k němu ještě R34,
R35 a R36.
Hodnota těchto odporů se vypočte podle vzorců v katalogovém listu - odkaz.
Příklad pro nastavení referenčního napětí A/D převodníku
na 2,8V:
Dělič napětí složený z odporů R1 a R2 (R34 a R35) jsem vypočítal
takto:
Vzhledem k tomu, že Iref je téměř
zanedbatelný (2uA) tak jsem se s ním vůbec nezatěžoval.
Odpor R2 jsem si zvolil: R2 = 10k.
Vref se podle katalogového listu pohybuje mezi 2,44V až
2,55V. Pro výpočet jsem použil napětí Vref=2,5V.
R1 jsem pak vypočítal podle vzorce v předchozím obrázku:
VKA = Vref *
[1 + (R1 / R2)]
2,8V = 2,5V * [1 + (R1 / 10k)]
......
R1 = 1k2
Při výpočtu R36 jsem postupoval takto:
A/D převodník si z referenčního napětí nebere téměř
žádný proud (0,15mA).
Celkový odpor děliče napětí (R1 + R2) je 11,2k. Takže přes něj teče:
2,8V / 11,2k = 0,25mA.
Podle kat listu potřebuje stabilizátor TL431, aby přes něj tekl
proud IKA alespoň 1mA.
Takže je třeba zajistit, aby proud z 3,3V zdroje přes R36 byl alespoň
1,4mA (0,15mA + 0,25mA + 1mA).
Abych tam měl nějakou rezervu, tak jsem R36 vypočítal pro proud 5mA:
R36 = (3,3V-2,8V) / 5mA
R36 = 100R
3) Zapojení s 5V napájecím napětím a
s nastavitelnou stabilizovanou referencí
Výhody |
Nevýhody |
Přesnější měření díky stabilizaci. |
Při použití napájecího napětí 5V se
komunikační vývody musí připojit k expanderu, protože při přímém
připojení na GPIO by 5V výstup DOUT GPIO vstup na
RasPi poškodil.
Napětí vstupních signálů CLK, CS a DIN (3,3V) by
bylo zase moc nízké pro ovládání A/D převodníku.
Kvůli I2C komunikaci s expanderem je měření pomalejší.
|
Referenční napětí je možné pomocí odporů R34 a
R35 nastavit až na téměř 5V. |
Maximální měřené napětí na všech kanálech může
být až 5V (podle nastavené reference) |
Místo propojky R37 se tato propojka osadí do pozice R38.
Nikdy se nesmí osadit propojky
R37 a R38 zároveň.
Mělo by to za následek zničení RasPi.
Hodnoty odporů R34, R35 a R36 se počítají stejně,
jako v předchozí variantě.
Osazovací schéma
Horní strana
Horní strana - hodnota odporů není uvedena, protože se osazují podle
potřeby.
Horní strana bez osazené reference TL431.
Spodní strana
Spodní strana s očíslovanými vývody bočního konektoru K21.
Popis signálů na bočním konektoru K21.
Příklad použití 1 (komunikace přímo
přes GPIO konektor na RasPi)
Propojky na desce |
konektor K22 - pin CS |
GPIO27 (RasPi rev.2) (PIN13 na GPIO konektoru) |
konektor K22 - pin Din |
GPIO10 (PIN19 na GPIO konektoru) |
konektor K22 - pin Dout |
GPIO9 (PIN21 na GPIO konektoru) |
konektor K22 - pin CLK |
GPIO11 (PIN23 na GPIO konektoru) |
Osazení součástek podle varianty 1
(Napájecí napětí 3,3V. Referenční napětí bez
stabilizace také 3,3V)
R37 = 0R
R38 - neosazeno !
R36 = 0R
R34 - neosazeno
R35 - neosazeno
TL431 - neosazeno
Vstupní děliče na kanálech 6 a 7 (bez zvýšení vstupního rozsahu):
R30 = 0R
R31 - neosazeno
R32 = 0R
R33 - neosazeno
|
Funkce ukázkového programu |
Převádí aktuální napětí na každém z 8
kanálů z rozsahu 0V až 3,3V na digitální číslo v rozsahu 0 až
4095.
|
Příklad použití 2 (komunikace přes I2C
expander)
Propojky na desce |
konektor K22 - pin CS |
GPA1 (expander s I2C adresou
0x21) |
konektor K22 - pin Din |
GPA2 (expander s I2C adresou
0x21) |
konektor K22 - pin Dout |
GPA0 (expander s I2C adresou
0x21) |
konektor K22 - pin CLK |
GPA3 (expander s I2C adresou
0x21) |
Osazení součástek podle varianty
3
(Napájecí napětí 5V. Referenční napětí nastaveno na
4,5V.)
V této konfiguraci se
nesmí komunikační vývody z konektoru K22
připojit přímo na GPIO konektor na RasPi!
R37 - neosazeno !
R38 = 0R
R36 = 10 0R
R34 = 8k2
R35 = 10k
TL431 - osazeno
Vstupní děliče na kanálech 6 a 7 (bez zvýšení vstupního rozsahu):
R30 = 0R
R31 - neosazeno
R32 = 0R
R33 - neosazeno
|
Funkce ukázkového programu |
Převádí aktuální napětí na každém z 8
kanálů z rozsahu 0V až 4,5V na digitální číslo v rozsahu 0 až
4095.
|
|
|
|