|
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
Silvo Moderator
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14555 Aktiv.: 65.34 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Sob Mar 30, 2013 6:45 pm Naslov sporočila: XMega16D4 težave z AD-jem, težave na splošno itd.... |
|
|
No že nekaj časa raziskujem zgoraj omenjen mikrokontroler. No v multiplex-u sem pognal 4 mestni led displej. Uporabil RTC. Zraven displeja dal še tipke. Končni "testni projekt" digitalna ura. Tukaj ni bilo kakih zelo velikih problemov. Razen dokumentacije, ki niti slučajno ni primerna za programiranje v assemblerju. V kakem višjenivojskem jeziku pa bo še manj razumljiva. Problem je pred vsem v imenih registrov. Če ne bi gledal v INC datoteko ni varjante, da bi kaj spravil skupaj. No sedaj sem prišel do ADC-ja. Gledam - super referenčna napetost za AD notranja 1.00V ad 12 oz. 8 bit. Ni kaj... spišem testno aplikacijo - displej v mutiplexu še imam na testni. Na AD vhod dam en trimer. AD sicer deluje. Prikaz pa je daleč od stabilnega. Vključim 8 bitno konverzijo. Če dam vhod na maso prikaz skače še vedno med 5-10 (v 8 bitnem režimu)
Koda: |
Inicializacija AD:
ldi tmp,0b0000_0100
sts ADCA_CTRLB,tmp ;8bitna meritev desna poravnava
; ldi tmp,0b0000_0011
; sts ADCA_REFCTRL,tmp ; prevzeto po resetu AD referencna napetost(1V)
ldi tmp,0b0000_0101
sts ADCA_PRESCALER,tmp ;preddelilnik 1/128
ldi tmp, 0b0000_0001 ;vklop meritve AD na pinu, enojna pozitivna meritev
sts ADCA_CH0_CTRL,tmp
ldi tmp,0b0000_1000
sts ADCA_CH0_MUXCTRL,tmp ;izbira kanala (1)
ldi tmp,0b0000_0001
sts ADCA_CH0_INTCTRL,tmp ;vklop ADC prekinitve
ldi tmp,0b0000_0101 ;
sts ADCA_CTRLA,tmp ;vklop ADC,start
|
Nič se ne spremeni pri povečanju časa konverzijskega časa. Med meritvami je tudi dolga pavza. Nekoliko se stabilnost poveča pri referenčni napetosti VCC/1.6.
Sumil sem tudi napajanje tesnte plate iz programatorja. Napajanje s fiksnega stabilnega vira ni spremenilo situacije. Moti me tudi nihanje Bandgap notranje napetosti, ki jo prav tako lahko čitam. Pri referenčni napetosti VCC/1.6. je 8 biten rezutat v mejah 149-147.
Vprašanje. Je kdo delal z AD-jem omenjenega mikorkontrolerja? Je inicializacija vredo? Mikrokontrolerji niso kitajski. Kupljeni so pri farnellu. V nadaljavenju bom poskusil še zunanjo referenco.
_________________ lp
Silvo
Nazadnje urejal/a Silvo Sre Jun 12, 2013 4:09 pm; skupaj popravljeno 1 krat |
|
Nazaj na vrh |
|
|
Silvo Moderator
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14555 Aktiv.: 65.34 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Ned Mar 31, 2013 1:21 pm Naslov sporočila: |
|
|
No odgovarjam samemu sebi, morda bo komu prišlo prav.
Da AD "ne gre" na 0 je "normalno" vsaj koliko sem zasledil v datashetu. "0" je dejansko ΔV ~= 0.05*Vref kar je razvidno na printscreenu. Več v PDF-ju v prilogi.
Težave s stablnostjo ADC so očitno znane. Tole sem našel na spletu.
Imam občutek, da je tale xmega nekoliko zgrešen projekt? Glede na to, da ne gre ravno za nov čip, bi na spletu pričakoval kaj več( dokumentacije, projektov, kode...)
a ne najdeš praktično nič. No ima nekaj stvari, ki so zanimive. (kalibrirani interni oscilatorji max 32Mhz z praktično neomejeno možnostjo deljenja frekvence, virtualni porti...)
No teh par kom, ki sem jih kupil bom sigurno porabil. Naprej pa bom vide....
Opis: |
|
Download |
Ime datoteke: |
adc_xmega.pdf |
Velikost datoteke: |
349.62 KB |
Downloadano: |
5 krat |
_________________ lp
Silvo |
|
Nazaj na vrh |
|
|
mucek Član
Pridružen-a: Tor 01 Avg 2006 10:47 Prispevkov: 5333 Aktiv.: 24.73 Kraj: Domzale
|
Objavljeno: Ned Mar 31, 2013 1:37 pm Naslov sporočila: |
|
|
Hja, načeloma na papirju sploh niso slabe ...
Samo ko cenovno primerjaš s kakšnimi (po resourcih primerljivimi) ARMi, te pa malo glava zaboli. Delal z xmego še nisem (razen malo igračkanja z Xplain boardom), tako da težko komentiram.
Lp, g
_________________ ...lahko pa se tudi motim ... |
|
Nazaj na vrh |
|
|
Silvo Moderator
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14555 Aktiv.: 65.34 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Ned Mar 31, 2013 8:48 pm Naslov sporočila: |
|
|
No še nekaj ugotovitev testov....
Spisal sem proceduro, ki računa povpreček večjih meritev. (256) Pri referenčni napetosti Vcc/1.6 sem dosegel kar zadovoljive rezultate. Pri resoluciji 11bit sem dosegel zadovoljivo stabilnost (1 max 2 bita) Pri resoluciji 12bit pa (1-3 max) Pri interni referenci 1.00V je stabilnost precej slabša do 3 bite pri 11bitni resoluciji, ter do 4 pri 12 bitni. Vse skupaj je sicer na testni plošči napajano iz programatorja. Morebiti bi dosegel še boljše rezultate s pravilno konstruiranim tiskanim vezjem, ter dobro izvedbo napajanja. Vseeno se mi zdi, da je interna referenca 1.00V prenizka za zanesljivo 12bitno meritev. Ja pa zadovoljiva, ter stabilna v koliko zadostuje 8 bitni rezultat.
_________________ lp
Silvo |
|
Nazaj na vrh |
|
|
Silvo Moderator
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14555 Aktiv.: 65.34 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Pon Apr 01, 2013 12:38 pm Naslov sporočila: |
|
|
Še posnetek testiranja.
Testni hardware:
_________________ lp
Silvo |
|
Nazaj na vrh |
|
|
. Neznanec
Pridružen-a: Pet 01 Okt 2004 1:17 Prispevkov: 1 Aktiv.: 0.00
|
Objavljeno: Pon Apr 01, 2013 1:16 pm Naslov sporočila: |
|
|
Brisana vsebina odstranjenega uporabnika.
|
|
Nazaj na vrh |
|
|
Silvo Moderator
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14555 Aktiv.: 65.34 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Pon Apr 01, 2013 1:32 pm Naslov sporočila: |
|
|
Tole sem naredil na hitro z namenom splošnega testiranja. Vem, da je hardware daleč od idealnega. To sem napisal tudi zgoraj. Kondezatorji 100n so. Sicer keramika na vrhu. Celo dva. Napajanje sem testiral iz čistega enosmernega vira - baterije. Tudi če AD deluje res zanesljivo z 1.00V notranjo referenco. bo zelo tečko doseči ustezne pogoje zunaj mikrokontrolerja. Konec koncev znaša 1 enota AD-ja nekaj čez 2mV!
Sem pa prišel do enakega zaključka. Bolje uporabit ali višjo notranjo ali še bolje zunanjo referenčno napetost, v koliko so zahteve za 12bit-no AD konverzijo.
PS
A običajni LCD s kontrolerjem HD44780 delajo na 3.3V?
_________________ lp
Silvo |
|
Nazaj na vrh |
|
|
. Neznanec
Pridružen-a: Pet 01 Okt 2004 1:17 Prispevkov: 1 Aktiv.: 0.00
|
Objavljeno: Pon Apr 01, 2013 2:13 pm Naslov sporočila: |
|
|
Brisana vsebina odstranjenega uporabnika.
|
|
Nazaj na vrh |
|
|
Silvo Moderator
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14555 Aktiv.: 65.34 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Pon Apr 01, 2013 2:17 pm Naslov sporočila: |
|
|
Kroko je napisal/a: |
LDC lahko napajaš s 5V in krmiliš s 3.3V |
Hvala,
Bom probal, ko pride LCD na vrsto .
_________________ lp
Silvo |
|
Nazaj na vrh |
|
|
Silvo Moderator
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14555 Aktiv.: 65.34 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Čet Apr 11, 2013 7:55 pm Naslov sporočila: |
|
|
No xmega preživela tudi "šok test" Testno ploščo sem selil z enega računalnika na drugega. Pri tem pa sem na drugem računalniku programator pozabil prestavit na 3.3V. Tako je bil mikrokontroler priključen kake dve uri na 5V. Poganjal je 4mestni LED displej v multiplexu, ki je bil prav tako prilagojen za 3.3V. (68 upori v segmente) Posvetilo se mi je šele, ko sem hotel programirat pa nisem imel izbranega pravega mikrokontrolerja. No programirat nisem poskusil s 5V. Ostalo je mikrokontroler preživel. Nisem zaznal niti segrevanja.
_________________ lp
Silvo |
|
Nazaj na vrh |
|
|
Silvo Moderator
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14555 Aktiv.: 65.34 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Sre Jun 12, 2013 4:07 pm Naslov sporočila: |
|
|
Vse bolj se mi dozdeva, da je tale XMEGA malo zgrešen projekt. No želel sem narediti nekaj s RFM70. XMega bi mi ustrezala ravno zaradi 3.5V napajanja. Imam je še tudi kar nekaj kosov.
Ne vem a nima prave dokumentacije oz. ne najdem. Sploh nimam pojma kateri pini so SPI. Imam dva datasheta.
Evo vse kar piše za SPI (copy-paste)
23. SPI – Serial Peripheral Interface
23.1 Features
• Two Identical SPI peripherals
• Full-duplex, three-wire synchronous data transfer
• Master or slave operation
• Lsb first or msb first data transfer
• Eight programmable bit rates
• Interrupt flag at the end of transmission
• Write collision flag to indicate data collision
• Wake up from idle sleep mode
• Double speed master mode
23.2 Overview
The Serial Peripheral Interface (SPI) is a high-speed synchronous data transfer interface using three or four pins. It
allows fast communication between an Atmel AVR XMEGA device and peripheral devices or between several
microcontrollers. The SPI supports full-duplex communication.
A device connected to the bus must act as a master or slave. The master initiates and controls all data transactions.
PORTC and PORTD each has one SPI. Notation of these peripherals are SPIC and SPID.
Tole je iz datasheta "Atmel-8387-8-and16-bit-AVR-Microcontroller-XMEGA-A4U_Datasheet.pdf" - 345 strani
Nekaj več je v datashetu Atmel-8210-8-and-16-bit-AVR-Microcontrollers-XMEGA-D_Manual.pdf kjer so delno opisani registri. Pri programiranju sem si pomagal še z ini datoteko kajti vsaka periferija zase ima ista imena registrov v datashetu. Recimo CTRL kot kontrolni register najdeš povsod. Potem je CLK_CTRL // Control Register CLK - Clock System, SLEEP_CTRL SLEEP Control Register OSC_CTRL OSC - Oscillator Control....
Skratka dokumentacija, ki sem jo uspel najti, ter jo imam je 0 od 0
Recimo ko sem delal z AD-ji sem ad vklopil ter iskal kateri pin je ...
Ima me, da bi vse xmege, ki jih še imam zabrisal v kanto.
Pinout:
PS
A sploh kdo na forumu dela z njimi?
_________________ lp
Silvo |
|
Nazaj na vrh |
|
|
elektronik1982 Član
Pridružen-a: Pet 18 Maj 2012 5:53 Prispevkov: 101 Aktiv.: 0.70 Kraj: Maribor
|
Objavljeno: Sre Jun 12, 2013 7:33 pm Naslov sporočila: |
|
|
Uporabljamo 128 in 256D3. V datasheetu poskusi iskati pod Alternate PIN functions, tam je napisano kateri pin je kateri signal. Tudi sami smo imeli probleme z AD pretvorbo, ampak je v errati napisano, da unsigned pretvorba ne deluje normalno, zato smo priceli uporabljati signed in sedaj deluje dobro.
|
|
Nazaj na vrh |
|
|
Silvo Moderator
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14555 Aktiv.: 65.34 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Sre Jun 12, 2013 9:01 pm Naslov sporočila: |
|
|
elektronik1982 je napisal/a: |
V datasheetu poskusi iskati pod Alternate PIN functions, tam je napisano kateri pin je kateri signal. .... |
Hvala, res sem našel, in to v datashetu "Atmel-8135-8-and-16-bit-AVR-microcontroller-ATxmega16D4-32D4-64D4-128D4_datasheet" Škoda, da so dokumentacijo tako razdrobili. Gre sicer za zanimivo serijo mikrokontrolerja, a bojim se, da bo tukaj kak začetnik obupal. (vsaj pri taki dokumentaciji)
No, SPI pa je že tudi živ.
_________________ lp
Silvo |
|
Nazaj na vrh |
|
|
dragoon Član
Pridružen-a: Čet 03 Maj 2007 21:51 Prispevkov: 452 Aktiv.: 2.19 Kraj: Trojane
|
Objavljeno: Ned Dec 24, 2017 9:48 pm Naslov sporočila: |
|
|
Nekaj me muči ADC na Xmega16A4
GCC, Atmel studio 7
Koda: |
ADCA.CTRLA = 0x01 ;
ADCA.CTRLB = 0x04;
ADCA.REFCTRL = 0x10;
ADCA.EVCTRL = 0 ;
ADCA.PRESCALER = 0x04 ;
ADCA.CH0.INTCTRL = 0x00 ;
ADCA.CH0.CTRL =0x01;
uint16_t ReadADC(uint8_t Channel){
ADCA.CH0.MUXCTRL = (Channel<<3);
ADCA.CTRLA |= 0x04; // Start conversion
while (ADCA.INTFLAGS==0) // Wait for complete
return ADCA.CH0.RESL;
} |
Read_ADC(ch); mi vedno vrne 0, pa nikakor ne pogruntam kaj je narobe.
edit:
po parih urah googlanja najdem rešitev:
Koda: |
PR.PRPA = 0x05; // POWER ON ADC |
_________________ LP, Mitja |
|
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: 69 dni
Powered by phpBB © 2001, 2005 phpBB Group
|