PIC A/D - Multiplexa?
PIC A/D - Multiplexa?
Hej,
I mitt projekt http://elektronikforumet.com/forum/view ... hp?t=20756 så behöver jag mäta spänningen på många potentiometrar.
PICen har 10 inbyggda AD omvandlare men jag kanske behöver flera.
Då antar jag att man skall multiplexa?
Ifall jag ansluter tre 8-kannals multiplexrar så kan jag mäta spänningen på 24 potentiometrar och bara offra 9 digitala utgångar?
Jag är lite osäker ifall jag har tänkt rätt men:
7 bitars AD omvandling tar ca 7us
24 * 7us = 0.168 ms att sampla alla 24 portar?
(Det är viktigt att kontrollen inte *laggar*)
Det är en PIC18F4550
I mitt projekt http://elektronikforumet.com/forum/view ... hp?t=20756 så behöver jag mäta spänningen på många potentiometrar.
PICen har 10 inbyggda AD omvandlare men jag kanske behöver flera.
Då antar jag att man skall multiplexa?
Ifall jag ansluter tre 8-kannals multiplexrar så kan jag mäta spänningen på 24 potentiometrar och bara offra 9 digitala utgångar?
Jag är lite osäker ifall jag har tänkt rätt men:
7 bitars AD omvandling tar ca 7us
24 * 7us = 0.168 ms att sampla alla 24 portar?
(Det är viktigt att kontrollen inte *laggar*)
Det är en PIC18F4550
Senast redigerad av arte 21 september 2007, 15:35:06, redigerad totalt 1 gång.
> PICen har 10 inbyggda AD omvandlare
Vilken "PIC" ???
Dessutom har praktiskt taget alla (normala) PIC modeller *EN* ADC.
> 8-kannals multiplexrar
Analoga eller digitala ?
> och bara offra 9 digitala utgångar?
Som används till vadå ?
> 7 bitars AD omvandling tar ca 7us
Varför just 7 us ? Hur har du kommit fram till det ?
Och vad menar du med en "7 bitars AD omvandling" ??
> 24 * 7us = 0.168 ms att sampla alla 24 portar?
Inkluderar det acquisition time ?
Vilken "PIC" ???
Dessutom har praktiskt taget alla (normala) PIC modeller *EN* ADC.
> 8-kannals multiplexrar
Analoga eller digitala ?
> och bara offra 9 digitala utgångar?
Som används till vadå ?
> 7 bitars AD omvandling tar ca 7us
Varför just 7 us ? Hur har du kommit fram till det ?
Och vad menar du med en "7 bitars AD omvandling" ??
> 24 * 7us = 0.168 ms att sampla alla 24 portar?
Inkluderar det acquisition time ?
Tror också att det skulle vara bättre att använda A/D-omvandlare
på SPI-bussen i stället om du ska ha flera stycken.
Och en liten rättelse
Antar att det är PIC18F4550 du menar eftersom du skriver
om den i den adnra tråden.
PIC18F4550 har 13 st ingångar multiplexade till en 10-bits
A/D-omvandlare. Vill du ha bättre nogranhet än 10 bitar finns
PIC18F4553 som är identisk med 4550 fast den har en
12-bits A/D-omvandlare multiplexad på 13 ingångar.
på SPI-bussen i stället om du ska ha flera stycken.
Och en liten rättelse

Antar att det är PIC18F4550 du menar eftersom du skriver
om den i den adnra tråden.
PIC18F4550 har 13 st ingångar multiplexade till en 10-bits
A/D-omvandlare. Vill du ha bättre nogranhet än 10 bitar finns
PIC18F4553 som är identisk med 4550 fast den har en
12-bits A/D-omvandlare multiplexad på 13 ingångar.
speakman:, XorXAX
Seriella AD omvandlare är bra.
Men då kommer det gå upp i pris lite grand, spelar iförsiginte så stor roll.
Det kanske är *så man gör*.
Har väldigt många IO pinnar men *bara* 10 av dessa är AD.
Så jag kan offra IO pinnar rätt friskt.
sodjan:
18F4550 är det vi pratar om, glömde skriva det
Skall mäta en spänning över en potentiometer = analoga.
offra 9 digitala utgångar till multiplexern (3 per multiplexer)
Behöver inte 10bitars upplösning utan det räckermed 7.
10bitars omvandling tar 11TAD
7bitars omvandling tar 8TAD
Conversion: 7TAD
Acquistiontime: 4TAD
0.7us*11 = ungefär 7us
Men man kanske måste göra 10bitars omvandling?
Ifall en kovertering tar dubbelt så långtid så spelar det ingen roll, bara det inte tar 100ggr mera
Seriella AD omvandlare är bra.
Men då kommer det gå upp i pris lite grand, spelar iförsiginte så stor roll.
Det kanske är *så man gör*.
Har väldigt många IO pinnar men *bara* 10 av dessa är AD.
Så jag kan offra IO pinnar rätt friskt.
sodjan:
18F4550 är det vi pratar om, glömde skriva det

Skall mäta en spänning över en potentiometer = analoga.
offra 9 digitala utgångar till multiplexern (3 per multiplexer)
Behöver inte 10bitars upplösning utan det räckermed 7.
10bitars omvandling tar 11TAD
7bitars omvandling tar 8TAD
Conversion: 7TAD
Acquistiontime: 4TAD
0.7us*11 = ungefär 7us
Men man kanske måste göra 10bitars omvandling?
Ifall en kovertering tar dubbelt så långtid så spelar det ingen roll, bara det inte tar 100ggr mera

Sodjan:
> 7bitars omvandling
>Hur gör du det ? Jag är ganska övertygad om att alla
>omvandlingar ger 10 bitar.
Nä du har nog rätt där. Kollade på fig. 21-4 på sidan 267. Fick intrycket
att man kunde välja antalet TAD cycles.
Min Tosc är också 50ns då måste TAD väljas till 16*Tosc så en Tad är 0.8us.
Så omvandlingen tar lite längre än 7us.
> offra 9 digitala utgångar till multiplexern (3 per multiplexer)
>Många muxar har en "enable" eller "Chip Select".
>Då blir det 3+3 = 6 pinnar.
Det blir några extra pinnar, det tänkte jag inte på.
Vad sägs om denna. Billig och 16 Kanaler
> 7bitars omvandling
>Hur gör du det ? Jag är ganska övertygad om att alla
>omvandlingar ger 10 bitar.
Nä du har nog rätt där. Kollade på fig. 21-4 på sidan 267. Fick intrycket
att man kunde välja antalet TAD cycles.
Min Tosc är också 50ns då måste TAD väljas till 16*Tosc så en Tad är 0.8us.
Så omvandlingen tar lite längre än 7us.
> offra 9 digitala utgångar till multiplexern (3 per multiplexer)
>Många muxar har en "enable" eller "Chip Select".
>Då blir det 3+3 = 6 pinnar.
Det blir några extra pinnar, det tänkte jag inte på.
Vad sägs om denna. Billig och 16 Kanaler
Behöver man inte mer än ett visst antal bitar upplösning så kan man iaf på PIC16 avbryta omvandlingen manuellt vid önskat antal omvandlade bitar. Tiden från start till stop får man då hålla koll på själv.
"After the A/D conversion is completed or aborted, a 2 TAD wait is required before the next acquisition can be started." Sid 269 i PIC18F4550 databladet.
Tolkar jag som att det går att avbryta omvandlingen men det verkar inte stå vad som händer om man avbryter eller hur man gör det men jag tvivlar på att den skulle vara sämre än PIC16 och slänga bort datan bara.
Värt ett försök.
"After the A/D conversion is completed or aborted, a 2 TAD wait is required before the next acquisition can be started." Sid 269 i PIC18F4550 databladet.
Tolkar jag som att det går att avbryta omvandlingen men det verkar inte stå vad som händer om man avbryter eller hur man gör det men jag tvivlar på att den skulle vara sämre än PIC16 och slänga bort datan bara.
Värt ett försök.
Givetvis har jag testat men bara i PIC16.
Det var inte så mycket "Avbryta" som jag minns det men väl ändra omvandlingshastigheten mitt i.
"23.7.1 Faster Conversion - Lower Resolution Trade-off" i "PICmicro Mid-Range MCU Family Reference Manual" beskriver detta.
Hittar inget motsvarande dokument för PIC18 så jag låter det vara osagt hur man eventuellt skulle göra där.
Det var inte så mycket "Avbryta" som jag minns det men väl ändra omvandlingshastigheten mitt i.
"23.7.1 Faster Conversion - Lower Resolution Trade-off" i "PICmicro Mid-Range MCU Family Reference Manual" beskriver detta.
Hittar inget motsvarande dokument för PIC18 så jag låter det vara osagt hur man eventuellt skulle göra där.