www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

LPC2103 ADC težava

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> ARM arhitektura
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
bkastel1
Član
Član



Pridružen-a: Pet 21 Apr 2006 13:01
Prispevkov: 15
Aktiv.: 0.06
Kraj: Trebnje

PrispevekObjavljeno: Čet Jun 28, 2007 12:20 pm    Naslov sporočila:  LPC2103 ADC težava Odgovori s citatom

Pozdravljeni vsi skupaj,

obračam se na vas v upanju, da mi bo kdo lahko pomagal rešiti težavo z AD-jem NA LPC2103 (Silica plata). Za testiranje sem zvezal 2 trimerja 5k na 3V3 s srednjim pinom na AD vhod (AD0.1 ter AD0.2). Napetost nato merim z AD-ji. Stvar je v tem, da se mi je dogajalo, da mi nikakor ni hotel končati pretvorbe. Zato sem primerček prenesel na LPC2138 in v simulatorju zalaufal kodo in tam je izmeril vrednost. Res, da je bila to simulacija ampak vseeno. A ima kdo kakšne izkušnje s temi AD-ji : ali so kakšna pravila pri inicializaciji ali nastavitvah? Preprosto mi ni več jasno kaj delam narobe. Pa povrhu vsega nisem začetnik v programiranju in sem že marsikaj poizkusil (burst način mi daje raztresene vrednosti kljub temu, da je referenca za AD in merjenja vrednost zelo stabilna). Hvala vsem, ki si bodo vzeli čas za mojo težavo.

Lp, Borut

Odsek kode:

INT32S ADMeasure (INT8U channel)
{

PINSEL1 |= (3 << 14)|(3 << 16);
ADCR = 0x00200400 | channel;

for (i = 0; i <= 3; i++) { /* naredim 4 meritve za povprecenje */

Ticks.AD_Meas_TO = 50; /* Timeout za meritev je 50ms */

ADCR |= (1 << 24); /* zacnem s konverzijo - bit 24 je START bit */

do {
val = ADGDR;
if (Flags.AD_Meas_TO == 1) break; /* timeout pogoj */
} while (val & DONE_bit == 0);

if (Flags.AD_Meas_TO == 1) { /* preverim, ali je prislo do timeout-a */
Flags.AD_Error += 1; /* stejem skupno stevilo napak pri merjenju */
Flags.AD_Meas_TO = 0;

if (Flags.AD_Error == 7) { /* sedem neuspelih meritev javim napako na LCD */
LedOn(6); /* prizgem rdeco lediko kot znak napake */
LCD_WriteTxt(0x4B, "E3\0"); /* koda za napako AD-ja je 3 */
return -1; /* prekinem merjenje ker je napaka pri meritvah */
}

if (i == 0) continue;

--i; /* neuspešno meritev ne upoštevam zato je --i */
continue; /* ponovim meritev */
}

Ticks.AD_Meas_TO = 0;
TempVal += ((val >> 6) & 0x3FF); /* seštevam rezultate zaradi povprecenja */
}

Ticks.AD_Meas_TO = 0;

val = (TempVal >> 2); /* delimo z 4 */
Flags.AD_Error = 0;

ADCR &= ~(1 << 24); /* stop za AD */
return TempVal;
}
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
mucek4
Član
Član



Pridružen-a: Sob 18 Jun 2005 20:52
Prispevkov: 2952
Aktiv.: 12.44
Kraj: Tržič - Mesto med gorami

PrispevekObjavljeno: Čet Jun 28, 2007 1:41 pm    Naslov sporočila:  Re: LPC2103 ADC težava Odgovori s citatom

bkastel1 je napisal/a:
...burst način mi daje raztresene vrednosti kljub temu, da je referenca za AD in merjenja vrednost zelo stabilna...


Imel sem podobno težavo s PICi. Rešim sem jo tako, da sem čisto zraven procesorja dal 100nF in 10uF kondenzatorja med napajanje in maso in med AD vhod in maso. Nadaljne motnje je odpravila menjava 5V regulatorja.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
bkastel1
Član
Član



Pridružen-a: Pet 21 Apr 2006 13:01
Prispevkov: 15
Aktiv.: 0.06
Kraj: Trebnje

PrispevekObjavljeno: Čet Jun 28, 2007 2:11 pm    Naslov sporočila:  LPC2103 ADC težava Odgovori s citatom

Hvala za tole. Bom upošteval. Vseeno mi pa še ni jasno, zakaj v programskem načinu kontrole AD-ja meritve ne grejo skozi.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> ARM arhitektura Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
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: 3 dni


Powered by phpBB © 2001, 2005 phpBB Group