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 

AD pretvorba pri 12F675
Pojdi na stran 1, 2  Naslednja
 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Microchip PIC
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
mucek4
Član
Član



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

PrispevekObjavljeno: Čet Jun 07, 2007 10:21 am    Naslov sporočila:  AD pretvorba pri 12F675 Odgovori s citatom

Imam sledečo težavo.

AD pretvorba na omenjenem PIC-u deluje, vendar mi, četudi je povezana z maso vrača vse od 0 pa do 30 (decimalno). Ko sem svoj protoboard opremil z veliko količino kondenzatorjev, pretvorba še vedno niha, vendar malo manj (namesto 5 bitov niha 2).

Kaj je še za narediti, da bi prišel do točnosti v datasheetu 0.5 LSB? Pretvorbo zaenkrat ne delam v sleep načinu, vendar je to tudi možnost.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
jur
Član
Član



Pridružen-a: Pet 02 Dec 2005 14:45
Prispevkov: 5142
Aktiv.: 21.71
Kraj: [color=zelena]Ljubljana[/color]

PrispevekObjavljeno: Čet Jun 07, 2007 11:49 am    Naslov sporočila:   Odgovori s citatom

Samo velika količina kondenzatorjev ni dovolj. Biti morajo prave kapacitete in pravega tipa. Poleg tega je potreben tudi pravilen layout tiskanega vezja z pravilno izpeljanimi masami. Analognimi in digitalnimi masami. Obstojajo navodila (application notes in podobno na microchipovem webu), kakšen je pravi design delujočega vezja.

Jur
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
Silvo
Moderator
Moderator



Pridružen-a: Pon 24 Feb 2003 17:09
Prispevkov: 14673
Aktiv.: 61.94
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Čet Jun 07, 2007 12:19 pm    Naslov sporočila:   Odgovori s citatom

Nekaj je narobe. Če je koda assemblerska jo pripni, da vidim kaj delaš narobe.
_________________
lp
Silvo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
mucek4
Član
Član



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

PrispevekObjavljeno: Čet Jun 07, 2007 12:27 pm    Naslov sporočila:   Odgovori s citatom

Inicializacija:

Koda:
BANK1
   movlw b'00010001'            ; set conversion time Fosc/8 and enable AN0
   movwf ANSEL

   movlw b'00001001'            ; GP0 & GP3 input
   movwf TRISIO               ;

   BANK0

   movlw b'00000111'            ; disable comparator module
   movwf CMCON                  ; to enable digital I/O

   movlw b'10000001'            ; enable AD, right justified, Vdd reference, channel AN0 and power on AD
   movwf ADCON0


in zajem

Koda:
;make AD conversion

   bsf ADCON0, GO               ; Set go bit to start AD conversion
AD_WAIT
   btfsc ADCON0, GO            ; If AD operation is not compete
   goto AD_WAIT               ; we wait

   movf ADRESH, w               ; move AD result into variables
   movwf NumH                  ;
   BANK1
   movf ADRESL, w               ;
   BANK0
   movwf NumL                  ;
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Silvo
Moderator
Moderator



Pridružen-a: Pon 24 Feb 2003 17:09
Prispevkov: 14673
Aktiv.: 61.94
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Čet Jun 07, 2007 12:51 pm    Naslov sporočila:   Odgovori s citatom

Koliko časa poteče od vklopa AD modula, oz kako pogosto se ponavlja meritev?
_________________
lp
Silvo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
mucek4
Član
Član



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

PrispevekObjavljeno: Čet Jun 07, 2007 1:21 pm    Naslov sporočila:   Odgovori s citatom

Pred AD konverzijo čaka na overflow timerja 0, ki traja cca 16ms. To pomeni oktog 61x na sekundo.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Silvo
Moderator
Moderator



Pridružen-a: Pon 24 Feb 2003 17:09
Prispevkov: 14673
Aktiv.: 61.94
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Čet Jun 07, 2007 3:34 pm    Naslov sporočila:   Odgovori s citatom

Časa je več kot dovolj. Preveri, če je s tisto rutino vse vredo. Po mojih izkušnjah se je napisano dogajalo, če si izvedel meritev prehitro potem, ko si vklopil AD.
_________________
lp
Silvo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Highlag
Član
Član



Pridružen-a: Pet 23 Jan 2004 20:42
Prispevkov: 4034
Aktiv.: 17.03
Kraj: Črnuče

PrispevekObjavljeno: Čet Jun 07, 2007 9:21 pm    Naslov sporočila:   Odgovori s citatom

Meni je tole delovalo:

Koda:

; Izhodi:
; GP0=Vhod=Detekcija bremena. Analogni vhod z A/D pretvorbo 
   
   PROCESSOR 12f675
   #include "P12F675.INC"
   ERRORLEVEL -224, -302,  -308, -205

      __CONFIG _CP_ON & _CPD_OFF & _BODEN_ON & _WDT_OFF & _PWRTE_ON & _INTRC_OSC_NOCLKOUT

   #DEFINE   U_min   b'00100111'         ; minimalna vrednost napetosti detekcije (0,8V)
                              ; je b'0010011100' =156 od tega gre v ADRESH 8 zg. bitov
                              ; b'00100111' = 0x27

   Cblock   0X20                  ; Začetek RAM-a
   Izmerjeno                     ; Vrednost A/D
  endc

    
   
   ORG      0x00                  ; reset vektor
   GOTO       Main               ; skok na Main
Main
   BCF         STATUS, RP0            ; izberemo banko 0
   CLRF      GPIO               ; GPIO=0
   MOVLW      b'00000111'            ; 00000111 ->W
   MOVWF      CMCON               ; Comparatorji so izklopljeni
   BSF         STATUS, RP0            ; izberemo banko 1
   MOVLW      b'00010001'            ; ADSC = 001 -> Fosc/8,   ANS0 =1 -> GP0= analogni vhod
   MOVWF      ANSEL               ; GP0= analogni vhod,  hitrost konverzije= Fosc/8 =2uS
   MOVLW      b'00101001'            ; 00101001 -> W
   MOVWF      TRISIO               ; RP0, 3, 5=vhod, RP1,2,4=izhod,
   BCF         STATUS, RP0            ; izberemo banko 0
   CLRF      ADCON0               ; ADFM=Left justified, VCFG=Vdd, Izbran AN0, Go=No, A/D=Off,

AD_pretvorba:
   BSF         ADCON0, ADON         ; vklop A/D modula
   NOP
   NOP
   NOP
   NOP
   NOP
   NOP
   NOP
   NOP
   NOP
   NOP
   NOP
   NOP                           ; počaka pribli·no 3uS (Priporoeena vrednost za 4MHz =2-4uS
   BSF         ADCON0, GO            ; spro·i branje analogne vrednosti
   BTFSC      ADCON0, GO            ; je GO bit =0 -> Branje analogne vrednosti koneano?
   GOTO      $-1                  ; NE -> poizkusi ponovno prej‘nji korak
   MOVF      ADRESH, W            ; DA -> ADRESH -> W (Analogna vrednost)
   BCF         ADCON0, ADON         ; izklop A/D modula
   MOVWF      Izmerjeno            ; vrednost A/D pretvorbe se shrani v register Izmerjeno


Štos je bil v tistih NOP ukazih pred BSF ADCON0, GO

_________________
If at first you don't succeed, destroy all evidence that you tried.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
mucek4
Član
Član



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

PrispevekObjavljeno: Pet Jun 08, 2007 7:05 am    Naslov sporočila:   Odgovori s citatom

Časa je dovolj, ker sedaj med merjenji preko RS232 pošljem 16 znakov z 2400 bps. Bolj me zanima je možnost, da bi meritev nihala zaradi zunanjih motenj, 7805 stabilizatorja, ... Ker se je po vezavi nekaj elektrolitov in 100nF kondenzatorjev odstopanje močno zmanjšalo.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
zcetrt
Član
Član



Pridružen-a: Tor 13 Dec 2005 11:29
Prispevkov: 275
Aktiv.: 1.16
Kraj: Ljubljana

PrispevekObjavljeno: Pet Jun 08, 2007 8:45 am    Naslov sporočila:   Odgovori s citatom

Že večkrat sem uporabljal AD konverter na protoboardu, ki je napajan z usmerniškim 12V adapterjem preko 7805 regulatorja. Okrog napajanja imam vezan le en elektrolit 47u in dva 100n poliesterska (eden pred 7805 in eden za). Večjih odstopanj med samimi meritvami še nisem opazil (običajno niha le LSB), pri vezavi na gnd ali Vdd pa se vrednost zabetonira na 0 oz. 1024.

Res je, da sem najpogosteje uporabljal 16 serijo mikrokrmilnikov, a mislim, da tu pretiranih razlik ne bi smelo biti. Če imaš na voljo še kakšno 12F, poskusi z njo. Obnašanje vsekakor ni normalno.

_________________
4.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
mucek4
Član
Član



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

PrispevekObjavljeno: Pet Jun 08, 2007 10:04 am    Naslov sporočila:   Odgovori s citatom

Druge serije nimam imam pa druge procesorje iste serije. Poizkusil sem s tremi in povsod ista stvar Sad
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
NeoTO
Član
Član



Pridružen-a: Pon 28 Mar 2005 19:19
Prispevkov: 2752
Aktiv.: 11.62
Kraj: Trzic

PrispevekObjavljeno: Pet Jun 08, 2007 10:19 am    Naslov sporočila:   Odgovori s citatom

Poskusi napajanje priključiti na baterije. Če se bo pojav končal, veš kje iskat krivca.
_________________
Lp,
Matevž
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
California
Član
Član



Pridružen-a: Pet 26 Avg 2005 19:48
Prispevkov: 236
Aktiv.: 1.00
Kraj: Hrastnik

PrispevekObjavljeno: Pet Jun 08, 2007 11:18 am    Naslov sporočila:   Odgovori s citatom

Pred leti sem imel podobne probleme. Ugotovil sem, da je vzrok za probleme v motnjah na kablu. Z osciloskopom jih je bilo možno lepo videti. Uporabil sem mrežni kabel z opletom in motnje so se poslovile.
Seveda je pa kvalitetno napajanje tudi pogoj za normalno delovanje.

Lp.
Vlado

_________________
California
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Silvo
Moderator
Moderator



Pridružen-a: Pon 24 Feb 2003 17:09
Prispevkov: 14673
Aktiv.: 61.94
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Pet Jun 08, 2007 12:38 pm    Naslov sporočila:   Odgovori s citatom

mucek4 je napisal/a:
Časa je dovolj, ker sedaj med merjenji preko RS232 pošljem 16 znakov z 2400 bps. Bolj me zanima je možnost, da bi meritev nihala zaradi zunanjih motenj, 7805 stabilizatorja, ... Ker se je po vezavi nekaj elektrolitov in 100nF kondenzatorjev odstopanje močno zmanjšalo.


Zakaj ne pripneš celotne kode? (danes sicer nimam časa, da bi jo pregledal a prepričan sem, da je nekaj narobe s programom) Kaj imaš za referenco, Vdd ali eksterno z GP1 ? Kak je conversion clock? Kak je oscilator(clock) pic-a?

_________________
lp
Silvo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
mucek4
Član
Član



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

PrispevekObjavljeno: Pet Jun 08, 2007 1:21 pm    Naslov sporočila:   Odgovori s citatom

Silvo je napisal/a:
Zakaj ne pripneš celotne kode? (danes sicer nimam časa, da bi jo pregledal a prepričan sem, da je nekaj narobe s programom) Kaj imaš za referenco, Vdd ali eksterno z GP1 ? Kak je conversion clock? Kak je oscilator(clock) pic-a?


Kode je veliko. Lahko ti jo pošljem na email. Referenca ja Vdd, conversion time je Fosc/8, clock je interni 4 MHz.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Microchip PIC Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Pojdi na stran 1, 2  Naslednja
Stran 1 od 2

 
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: 493 dni


Powered by phpBB © 2001, 2005 phpBB Group