 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
trot Član


Pridružen-a: Čet 18 Jan 2007 20:25 Prispevkov: 1282 Aktiv.: 5.70 Kraj: glej fogl
|
Objavljeno: Sre Nov 05, 2008 9:37 pm Naslov sporočila: lpc2148 - adc |
|
|
Lomim se z adc pretvorbo na lpc2148. Stestiral sem adc primerček, ki sem ga našel poleg instalacije winarm (WinARM\examples\lpc213x_lpc214x_examples\ADC), in zadeva ne deluje. Vse kar dobi/izmerim je 0, če je pin v zraku ali na zemlji, ali 1023, če je pin na na napajanju ali delilniku napetosti, ne glede na to kakšen delilnik izberem, vedno dobim maksimalen izhod. Enako je če zamenjam kanal. Ima kdo mogoče kak delujoč primer (hex) ki na rs232 vrže meritev, ki bi ga lahko stestiral da vidim, če je hardver ok?
_________________ lp, Klemen |
|
Nazaj na vrh |
|
 |
SimonS Član



Pridružen-a: Čet 01 Jul 2004 11:18 Prispevkov: 4770 Aktiv.: 20.08 Kraj: Kobarid
|
Objavljeno: Sre Nov 05, 2008 10:25 pm Naslov sporočila: |
|
|
Jaz imam za keila, če ti kaj pomaga
Koda: |
unsigned int meri (void)
{
unsigned val=0;
AD0CR |= 0x01000000; /* Start A/D Conversion */
do
{
val = AD0DR; // Read A/D Data Register
} while ((val & 0x80000000) == 0); //Wait for the conversion to complete
val = (val >> 6) & 0x03FF;
AD0CR &= ~0x01000000; /* Stop A/D Conversion */
return val;
}
|
Seveda ga je treba prej inicializirati
Koda: |
AD0CR = 0x00200400; // ADC1: 10-bit AIN3 @ 3MHz P0.27
|
ter seveda nastaviti GPIO !
Drugače pa preveri HW, če imaš vse napetosti in mase od ADC...
_________________ Lep dan
Simon |
|
Nazaj na vrh |
|
 |
trot Član


Pridružen-a: Čet 18 Jan 2007 20:25 Prispevkov: 1282 Aktiv.: 5.70 Kraj: glej fogl
|
Objavljeno: Sre Nov 05, 2008 11:03 pm Naslov sporočila: |
|
|
SimonS je napisal/a: |
Drugače pa preveri HW, če imaš vse napetosti in mase od ADC... |
Misliš s tem če imam priključena pina Vssa in Vdda priključena na zemljo in napajanje?
_________________ lp, Klemen |
|
Nazaj na vrh |
|
 |
SimonS Član



Pridružen-a: Čet 01 Jul 2004 11:18 Prispevkov: 4770 Aktiv.: 20.08 Kraj: Kobarid
|
Objavljeno: Čet Nov 06, 2008 4:56 pm Naslov sporočila: |
|
|
Da
_________________ Lep dan
Simon |
|
Nazaj na vrh |
|
 |
trot Član


Pridružen-a: Čet 18 Jan 2007 20:25 Prispevkov: 1282 Aktiv.: 5.70 Kraj: glej fogl
|
Objavljeno: Čet Nov 06, 2008 6:40 pm Naslov sporočila: |
|
|
Napajanje in zemljo imam priključeno.
Zdej sem preizkusil tole kodo (tvoja malo spremenjena, ker lpc2148 nima P0.27)
Koda: |
unsigned int meri (void)
{
unsigned val=0;
AD0CR |= 0x01000000; /* Start A/D Conversion */
do
{
val = AD0GDR; // Read A/D Data Register (spremenil na AD0GDR)
} while ((val & 0x80000000) == 0); //Wait for the conversion to complete
val = (val >> 6) & 0x03FF;
AD0CR &= ~0x01000000; /* Stop A/D Conversion */
return val;
}
PINSEL0=PINSEL0|(1<<24); // P0.28 -> AD0.1
AD0CR=(1<<1)| // select channel 1 on ADC0 (P0.28)
((60000000/1000000-1)<<8)| // CLKDIV = Fpclk / 1000000 - 1
(1<<21); // The A/D converter is operational
while (1)
{
curtime = timer_counter;
while(timer_counter-curtime<100) {}
rprintf("10-bit:% 4lu \n", meri());
}
|
Zadeva ne deluje. Vedno dobim 1023.
_________________ lp, Klemen |
|
Nazaj na vrh |
|
 |
commander29 Član

Pridružen-a: Pon 20 Nov 2006 15:24 Prispevkov: 47 Aktiv.: 0.21
|
Objavljeno: Čet Nov 06, 2008 8:49 pm Naslov sporočila: |
|
|
trot je napisal/a: |
Napajanje in zemljo imam priključeno.
Zdej sem preizkusil tole kodo (tvoja malo spremenjena, ker lpc2148 nima P0.27)
Koda: |
unsigned int meri (void)
{
unsigned val=0;
AD0CR |= 0x01000000; /* Start A/D Conversion */
do
{
val = AD0GDR; // Read A/D Data Register (spremenil na AD0GDR)
} while ((val & 0x80000000) == 0); //Wait for the conversion to complete
val = (val >> 6) & 0x03FF;
AD0CR &= ~0x01000000; /* Stop A/D Conversion */
return val;
}
PINSEL0=PINSEL0|(1<<24); // P0.28 -> AD0.1
AD0CR=(1<<1)| // select channel 1 on ADC0 (P0.28)
((60000000/1000000-1)<<8)| // CLKDIV = Fpclk / 1000000 - 1
(1<<21); // The A/D converter is operational
while (1)
{
curtime = timer_counter;
while(timer_counter-curtime<100) {}
rprintf("10-bit:% 4lu \n", meri());
}
|
Zadeva ne deluje. Vedno dobim 1023. |
Koda: |
PINSEL0=PINSEL0|(1<<24); // P0.28 -> AD0.1 |
Tole pa verjetno ne bo ravno pravilno. AD0.1, se nahaja na P0.28 zato je nastavitev funkcije tega pina PINSEL1 (25:24).
Koda: |
PINSEL1 &= ~0x03000000;
PINSEL1 |= 0x01000000; |
|
|
Nazaj na vrh |
|
 |
trot Član


Pridružen-a: Čet 18 Jan 2007 20:25 Prispevkov: 1282 Aktiv.: 5.70 Kraj: glej fogl
|
Objavljeno: Čet Nov 06, 2008 9:25 pm Naslov sporočila: |
|
|
Imaš prav, sem zamenjal vrstico z
Koda: |
PINSEL1=PINSEL1|(1<<24); PINSEL1=PINSEL1&~(1<<25); // P0.28 -> AD0.1 |
vendar pa je rezultat še vedno isti ne glede na to katero napetost dam na pin. Vedno 1023.
Zgleda da je nekaj narobe s hardverom. Imam narejeno ploščico, kot je ta lpc2138 v sedmem prispevku. Enako sem naredil tudi lpc 2148. V obeh primerih pa mi adc pretvornik ne dela. Nimam pojma kaj bi bilo narobe.
A ima kdo hex fajl (mi ga prosim naredi), ki meritev na tem pinu (p0.28-) izpiše na rs232, in preverjeno deluje, tako da bi lahko eliminiral možnost softverske napake. Druge ideje nimam.
_________________ lp, Klemen |
|
Nazaj na vrh |
|
 |
alessio Član

Pridružen-a: Pon 04 Dec 2006 8:39 Prispevkov: 363 Aktiv.: 1.60 Kraj: Ljubljana
|
Objavljeno: Pet Nov 07, 2008 8:52 am Naslov sporočila: |
|
|
Če prej ne rešiš, ti pošljem željen .hex filet in source med vikendom.
|
|
Nazaj na vrh |
|
 |
trot Član


Pridružen-a: Čet 18 Jan 2007 20:25 Prispevkov: 1282 Aktiv.: 5.70 Kraj: glej fogl
|
Objavljeno: Pet Nov 07, 2008 11:38 am Naslov sporočila: |
|
|
Hvala, mi lahko prosim narediš tako da izpisuje meritev na uart0 pri hitrosti 9600.
Na vezju imam en kondenzator od kvarca priključen na Vssa. Je možno da bi to kaj motilo?
_________________ lp, Klemen |
|
Nazaj na vrh |
|
 |
alessio Član

Pridružen-a: Pon 04 Dec 2006 8:39 Prispevkov: 363 Aktiv.: 1.60 Kraj: Ljubljana
|
Objavljeno: Sob Nov 08, 2008 9:06 pm Naslov sporočila: |
|
|
Vzel sem tvoj začetni primer in spremenil na baud rate 9600.
V priponki imaš .hex filet in source. Uporabljen je 12 MHz kristal.
Program preverjeno deluje.
~ Aleš
Opis: |
|
 Download |
Ime datoteke: |
lpc2148_ADC.rar |
Velikost datoteke: |
71.3 KB |
Downloadano: |
12 krat |
|
|
Nazaj na vrh |
|
 |
trot Član


Pridružen-a: Čet 18 Jan 2007 20:25 Prispevkov: 1282 Aktiv.: 5.70 Kraj: glej fogl
|
Objavljeno: Ned Nov 09, 2008 1:53 pm Naslov sporočila: |
|
|
Hvala, sem sprobal zadevo, vendar je rezultat še vedno isti. Jest nimam več ideje kaj bi lahko bilo narobe. Najbrž v čipu samem ne more biti napaka?
Tile je moj pcb. Osvetlen kontakt je napajanje, vsi ostali (okrogli) pa so spodaj povezani na zemljo. Ostali kontakti v liniji pa so samo povezave do pinov. Mogoče kdo vidi če sem kaj narobe naredil na tiskanem vezju. Jaz ne najdem napake.
Opis: |
|
Velikost datoteke: |
174.36 KB |
Pogledana: |
29 krat |

|
_________________ lp, Klemen |
|
Nazaj na vrh |
|
 |
alessio Član

Pridružen-a: Pon 04 Dec 2006 8:39 Prispevkov: 363 Aktiv.: 1.60 Kraj: Ljubljana
|
Objavljeno: Ned Nov 09, 2008 2:38 pm Naslov sporočila: |
|
|
Če pripneš shematiko, bo bolj razvidno.
|
|
Nazaj na vrh |
|
 |
trot Član


Pridružen-a: Čet 18 Jan 2007 20:25 Prispevkov: 1282 Aktiv.: 5.70 Kraj: glej fogl
|
Objavljeno: Ned Nov 09, 2008 6:03 pm Naslov sporočila: |
|
|
Sheme sploh nisem risal za tole. Saj so itak priključeni samo zemlja, napajanje in kvarc. Vse ostalo je pa zvezno na pine, ki so v zraku.
_________________ lp, Klemen |
|
Nazaj na vrh |
|
 |
NeoTO Član


Pridružen-a: Pon 28 Mar 2005 19:19 Prispevkov: 2752 Aktiv.: 11.59 Kraj: Trzic
|
Objavljeno: Ned Nov 09, 2008 6:45 pm Naslov sporočila: |
|
|
Pa si prepričan, da CPU sploh dela tako kot mora? Kaj si naredil z MCLR pinom? Na P0.14 imaš pull-up?
_________________ Lp,
Matevž
Nazadnje urejal/a NeoTO Ned Nov 09, 2008 6:58 pm; skupaj popravljeno 1 krat |
|
Nazaj na vrh |
|
 |
Glitch Član

Pridružen-a: Pet 07 Apr 2006 11:40 Prispevkov: 1477 Aktiv.: 6.30
|
Objavljeno: Ned Nov 09, 2008 6:51 pm Naslov sporočila: |
|
|
Kam si vezal Vref?
_________________ Answers: $1, Short: $5, Correct: $25, dumb looks are still free. |
|
Nazaj na vrh |
|
 |
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 7 dni
Powered by phpBB © 2001, 2005 phpBB Group
|