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

Ukázkový program

adc-v1.py

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

Ukázkový program

adc-v2.py

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.

 

 

 

 


úvodní strana webu AstroMiK.org

poslední úprava stránky 21.6.2014