AD7683 - 10 =?ISO-8859-2?Q?bit=F3w_zamiast_16?=
Masz problem? Zapytaj na forum elektroda.pl
From: MKi <michal_at_nospam_to-nalezy-wywalic.kolmio.pl>
Subject: AD7683 - 10 =?ISO-8859-2?Q?bit=F3w_zamiast_16?=
Date: Mon, 30 May 2005 20:30:02 +0200
Witam,
czy ktoś bawil się może układem AD7683?
Jest to szeregowy 16-bitowy przetwornik A/C,
tak prosty w obsłudze, jak tylko można wymyslić (do
tej pory tak uważałem ;)
W obwodzie testowym podłączam REF+ do
zasilania 5V, IN- do masy, IN+ na
suwak potencjometru wieloobrotowego 220k
zapiętego też między masę i zasilanie.
Objaw: podczas regulacji potencjometem dolne
4 bity są zawsze 1, kolejne 2 (od dołu) są zawsze
0, pozostałe zmieniają sie tak, jak powinny.
Wyjątkiem jest zjechanie do zera - wtedy na
wszystkich bitach jest 0.
Kolejne wartości (jadąc od zera) sa następujące:
0000 0000 0000 0000
0000 0000 0000 1111
0000 0000 0100 1111
...
1111 1111 1000 1111
1111 1111 1100 1111
Skok potencjometru jest dostatecznie mały, aby
można było zaobserwować bardziej subtelne zmiany
- przy kręceniu nowa wartość pojawia się mniej
więcej co 1/2 obrotu.
Czyli mam przetwornik 10-bitowy, a nie 16.
Raczej wykluczam błąd po stronie cyfrowej
- w końcu te górne 10 bitów mierzy prawidłowo,
a zwraca wynik w postaci liczby 16-bitowej.
Ale też głowy nie dam...
Szybkość próbkowania o dwa rzędy niżej od katalogowych
100 kHz.
Jak odzyskac straconych 6 bitów?
Pozdrowienia,
MKi
Date: Tue, 31 May 2005 23:20:46 +0200
From: =?ISO-8859-2?Q?G=F3rski_Adam?= <gorskia_at_nospam_wp.pl>
Subject: Re: AD7683 - 10 =?ISO-8859-2?Q?bit=F3w_zamiast_16?=
Użytkownik MKi napisał:
Witam,
czy ktoś bawil się może układem AD7683?
Jest to szeregowy 16-bitowy przetwornik A/C,
tak prosty w obsłudze, jak tylko można wymyslić (do
tej pory tak uważałem ;)
W obwodzie testowym podłączam REF+ do zasilania 5V, IN- do masy, IN+ na
suwak potencjometru wieloobrotowego 220k zapiętego też między masę i
zasilanie.
Objaw: podczas regulacji potencjometem dolne
4 bity są zawsze 1, kolejne 2 (od dołu) są zawsze
0, pozostałe zmieniają sie tak, jak powinny.
Wyjątkiem jest zjechanie do zera - wtedy na
wszystkich bitach jest 0.
Kolejne wartości (jadąc od zera) sa następujące:
0000 0000 0000 0000
0000 0000 0000 1111
0000 0000 0100 1111
....
1111 1111 1000 1111
1111 1111 1100 1111
Skok potencjometru jest dostatecznie mały, aby
można było zaobserwować bardziej subtelne zmiany - przy kręceniu nowa
wartość pojawia się mniej więcej co 1/2 obrotu.
Czyli mam przetwornik 10-bitowy, a nie 16.
Raczej wykluczam błąd po stronie cyfrowej
- w końcu te górne 10 bitów mierzy prawidłowo,
a zwraca wynik w postaci liczby 16-bitowej.
Ale też głowy nie dam...
Szybkość próbkowania o dwa rzędy niżej od katalogowych 100 kHz.
Jak odzyskac straconych 6 bitów?
Podaj sekwencje odczytu. Algorytm ,źródła coś w tym typie ..
Używam takiego przetwornika i nie ma problemu.
Adam
From: MKi <michal_at_nospam_to-nalezy-wywalic.kolmio.pl>
Subject: Re: AD7683 - 10 =?ISO-8859-2?Q?bit=F3w_zamiast_16?=
Date: Wed, 01 Jun 2005 18:23:52 +0200
Podaj sekwencje odczytu. Algorytm ,źródła coś w tym typie ..
Używam takiego przetwornika i nie ma problemu.
Dzięki za informację, że ten przetwornik w ogóle działa.
Przynajmniej nie muszę rozglądać się za zamiennikiem.
Służę źródłem '51. Zaprezentowany kod wklejony bezpośrednio
z ostatniej wersji programu.
PdaSCKL, PdaSC, PdaDO - porty podłączone do odpowiednich wyprowadzeń
przetwornika.
W wyniku wartość znajduje się w parze R1,R2.
Komentarz do kodu: druga pętla powstała w celach testowych,
po w PDF-ie były zaprezentowane 24 cykle. No to mu dorzucałem
po kolei, począwszy od 22 w góre, aż przystopowałem na 32.
Kolejne zmiany licznika w drugiej pętli (od 1 do 10) nic nie zmienialy.
Zwiekszanie/zmniejszanie liczby NOP-ów (zegar procesora 24MHz, czyli
instrukcje taktowane 2MHz) nie wpływały na wynik.
<kod>
SETB PdaSCLK
CLR PdaCS
NOP
NOP
CLR PdaSCLK
MOV R4,#22
MOV R2,#0
MOV R1,#0
SETB PdaDO
RP_Loop1: SETB PdaSCLK
NOP
NOP
MOV C,PdaDO
MOV A,R2
RLC A
MOV R2,A
CLR PdaSCLK
MOV A,R1
RLC A
MOV R1,A
DJNZ R4,RP_Loop1
MOV R4,#10
RP_Loop2: SETB PdaSCLK
NOP
NOP
NOP
NOP
NOP
NOP
CLR PdaSCLK
NOP
NOP
NOP
NOP
DJNZ R4,RP_Loop2
SETB PdaCS
</kod>
Pozdrowienia,
MKi
PS. Wyjeżdżam na urlop, może świeże spojrzenie
za tydzień pomoże ;)
MKi
From: J.F. <jfox_xnospamx_at_nospam_poczta.onet.pl>
Subject: Re: AD7683 - 10 bitów zamiast 16
Date: Wed, 01 Jun 2005 13:27:21 +0200
On Mon, 30 May 2005 20:30:02 +0200, MKi wrote:
czy ktoś bawil się może układem AD7683?
Jest to szeregowy 16-bitowy przetwornik A/C,
tak prosty w obsłudze, jak tylko można wymyslić (do
tej pory tak uważałem ;)
Objaw: podczas regulacji potencjometem dolne
4 bity są zawsze 1, kolejne 2 (od dołu) są zawsze
0, pozostałe zmieniają sie tak, jak powinny.
[...]
Raczej wykluczam błąd po stronie cyfrowej
- w końcu te górne 10 bitów mierzy prawidłowo,
a zwraca wynik w postaci liczby 16-bitowej.
Ale też głowy nie dam...
Szybkość próbkowania o dwa rzędy niżej od katalogowych
100 kHz.
Jak odzyskac straconych 6 bitów?
A pdf Ty czytal i zgodnie z nim postepujesz ?
Bo ja tam widze ze pierwszych 5bit jest HiZ,
potem jedno zero, potem D15..0, potem znow 0,
potem HiZ ..
J.
From: MKi <michal_at_nospam_to-nalezy-wywalic.kolmio.pl>
Subject: Re: AD7683 - 10 =?ISO-8859-2?Q?bit=F3w_zamiast_16?=
Date: Wed, 01 Jun 2005 18:23:50 +0200
A pdf Ty czytal i zgodnie z nim postepujesz ?
Bo ja tam widze ze pierwszych 5bit jest HiZ,
potem jedno zero, potem D15..0, potem znow 0,
potem HiZ ..
Czytał, czytał. 22 cykle zegarowe. Pierwsze
5 bitów ignorowane, kolejne 16 znaczące
(od najważniejszego), ostatni do zignorowania.
Skoro odczyt przy pełnej regulacji potencjometru
(od oporu do oporu) zmienia się od 0000 do FFCF
(szenastkowo) to raczej nie ma błędu z pomijaniem
jakiegoś znaczącego bitu.
Pozdrowienia,
MKi
PS. Wyjeżdżam na urlop, może świeże spojrzenie
za tydzień pomoże ;)
MKi