Fórum témák

» Több friss téma
Fórum » AVR - Miértek hogyanok
 
Témaindító: pakibec, idő: Márc 11, 2006
Témakörök:
WinAVR / GCC alapszabályok:
1. Ha ISR-ben használsz globális változót, az legyen "volatile"
2. Soha ne érjen véget a main() függvény
3. UART/USART hibák 99,9% a rossz órajel miatt van
4. Kerüld el a -O0 optimalizációs beállítást minden áron
5. Ha nem jó a _delay időzítése, akkor túllépted a 65ms-et, vagy rossz az optimalizációs beállítás
6. Ha a PORTC-n nem működik valami, kapcsold ki a JTAG-et
Bővebben: AVR-libc FAQ
Lapozás: OK   169 / 840
(#) zsuscsinyo válasza zsuscsinyo hozzászólására (») Dec 5, 2009 /
 
Sikerült megcsinálnom. Csak benéztem az egyik tápcsatit, és a + táp helyett földre volt húzva az ellenállás.
(#) bandee88 hozzászólása Dec 5, 2009 /
 
Sziasztok!

Nem rég készítettem el az AVR-ISP programozót amit a Hestore-ról rendeltem. Sikerült összeraknom fel ismeri a gép telepítettem hozzá a driver-t fel is raktam az avr-studiot csak ha programozni akarok egy MCU-t akkor nem müködik :S
Segítsetek hogy mit kell még beállítani a avr-studioban hogy müköndjön.
Segítségeteket előre is köszönöm!
(#) vzoole válasza Sir-Nyeteg hozzászólására (») Dec 5, 2009 /
 
Nem rég én is belefutottam ebbe a problémába...
Bővebben: Link

Ebben az esetben ki kellett forrasztanom a kondit az SCK lábról.

Az lehet segít valamennyit, ha a programozó csatit közvetlen rákötöd az IC-re, de az áramkörtől leválasztod egy párszáz Ohm-os ellenállással.

Vagy már tervezésnél figyelembe veszed, hogy mit köss rá.
(#) janyjozsef hozzászólása Dec 5, 2009 /
 
Üdv mindenkinek.
AD-vel kapcsolatos kérdésem lenne.

Nem programozási.

A következő a problémám.
Adott egy 51.2V-ig állítható táp.
AD ref = 2.56 (ami valójában 2.7 a Vref lábon)
Ez még nem gond.
Osztó 1/20.
(2.56 / 1024 = 0.0025 => 51.2 / 20 = 2.56 => 1 bit változás 0.05V -nak felel meg vagyis 2 bit változás = 0.1V a kijelzőn)

Felbontás 10bit
Fosc = 16MHz
AD osztó 256
Mérem AD6-ot
Jelenség: Alacsony feszültségeket 0.4-0.6V-os hibával mér.
Ha növelem a bemenő fesz, akkor javul a helyzet. Nagyobb bemenő fesznél pedig alacsonyabbat. (szintén 0.4-0.6V hibával.)

Ha úgy állítom be, hogy a max fesznél mérjen jól, akkor alacsonyabb fesznél igencsak megnő a hiba. Ha alacsony feszre, akkor magasnál. Ha középre állítom, akkor alatta és fölötte jön a hiba (eltérés).

Próbáltam Uref-et állítani (sjátot is, hátha nem stabil)
Nézem szkóppal. Semmi zaj, zavar csak DC.
Állítottam más osztást, másik bemenetet és mindent amit programból lehet .
A mérés még átlagoltam is 4 mérést végeztem 10ms-onként. Hatástalan.
A leírása alapján nem kellene csak max 1...2mv
(+- 2LSB) eltérésnek lennie a teljes tartományban.

Valakinek van ötlete?
Én már a belső DA hibájára gyanakszom.
A méréseket több jó minőségű műszerrel is elvégeztem és mindig ugyan az jött ki.
Vegyek esetleg külső A/D-t?
És ha AT32UC3B típust akarok használni? Ott ugyanez a hiba?

Ja! Az eltérés nem lineáris. Vagyis nem oszthatom, szorozhatom adhatok hozzá, vagy vonhatok le belőle konstans értéket.
(#) vzoole válasza janyjozsef hozzászólására (») Dec 5, 2009 /
 
Én is ugyanilyen hibával találkoztam nemrég.

Sajnos az okát még nem találtam meg, de engem is érdekel a dolog.
(#) Sir-Nyeteg válasza janyjozsef hozzászólására (») Dec 5, 2009 /
 
Attiny13-nál tapasztaltam, akkufesz.kijelzőt akartam építeni, pont ugyanez volt a helyzet, az elméletitől teljesen el kellett vonatkoztatni... Egyedül azt nem próbáltam, hogy másik azonos típusú procival is ugyanez az eltérés? (Valószínű...)
(#) Norberto válasza janyjozsef hozzászólására (») Dec 5, 2009 /
 
Meg kellene próbálnotok igazi, precíziós, külső referenciát használni és azzal tesztelgetni a programot.
(#) vzoole válasza Norberto hozzászólására (») Dec 5, 2009 /
 
Én pl. ezzel próbáltam: LP 2985IM5-3.3
(#) janyjozsef válasza vzoole hozzászólására (») Dec 5, 2009 /
 
Megtörtént!

Én tettem hozzá külön 2.56V-os ref-et. És ugyan az van.
(#) gtk válasza Norberto hozzászólására (») Dec 6, 2009 /
 
Nem kell kulso ref. El kell olvasni a nem linearitasbol stb.-bol eredo hibalehetosegeket az adatlapban(?). Ezert szoktak merni tobb savon egyszerre.
(#) janyjozsef válasza gtk hozzászólására (») Dec 6, 2009 /
 
Adatlap elolvasva!
A hiba az adatlap szerint nem lehetne ekkora. (kb 10 bit de néha több)
A külső ref csak próba volt!

Mit jelent a "több sávon szoktak mérni"?

Kicsit bővebben, ha kérhetem.
Morzsák nem elegendőek.
Kérlek fejtsd ki, hogy mire gondolsz.
Magyarázd el részletesen, hogy szerinted mi a hiba, miért és hogyan kellene kijavítani. Vagy máshogy csinálni.
(#) gtk válasza janyjozsef hozzászólására (») Dec 6, 2009 /
 
A tobb savon meres: csak egy adott intervallumban mersz egy savon, pl 0..10Vig, aztan a masik savon 9..15Vig, ..stb..Ezek csak peldak. Meg kell nezni milyen fesz.tartomanyokara alkalmazhato egy sav a legkissebb hibaval. Minden savon a bemeneti feszultsegnek megfelelo oszto van. Ezzel az a gond hogy bizonyos osztokat le kell majd kapcsolni a bemenetekrol. Pl. 0..10V ig savon az oszto 10V-nal 2.5V bemeneti feszultseget ad, 20Vnal 5V, 30V nal mar meghaladja a max bemeneti fesz felso hatarat, emiatt le kell kapcsolni az adc-rol.
(#) janyjozsef válasza gtk hozzászólására (») Dec 6, 2009 /
 
Ezzel nem lenne gond. Ez azért van általában így, hogy nagyobb legyen egy adott fesztartományra a felbontás.

A gondot az okozza, ha pl.:

Az A/D referencia 2.56V
és 0-tól 2.56-ig adok rá feszt, akkor a bemeneti fesszel nem arányos értéket mutat.

Ezt egy direkt a lábra adott feszültséggel (0...2.56V) ellenőriztem.

Még próbáltam 5V referencia feszt is és 0-tól 5V-ig direktben adni feszt a bemenetre.
Sajnos az eltérés a bemenő fesz és a mért (kijelzett 0...1023) érték között nem lineáris.

"Kijelzett bitek = (Ube * 1024)/ Uref"

Volt ahol több mint 10bit volt az eltérés. Vagyis pl.: 245 helyett 258-at jelzett ki vagy 313 helyett 300.
Ez több mint az adatlap szerinti +- 2LSB.

Nem tudtam meghatározni az eltérés mértékét, mert minden bemenő fesz értékénél más.
Sem szorzó/osztó érték, sem konstans hozzáadás/kivonás értéket nem tudtam meghatározni.

Már IC-t is cseréltem és hasonló eredményt kaptam.
(#) gtk válasza janyjozsef hozzászólására (») Dec 6, 2009 /
 
Zajszures gondolom rendben.
Ha ekkora tartomanyban sem pontos, akkor nem tudok mit mondani...
(#) janyjozsef hozzászólása Dec 6, 2009 /
 
Csinált már valaki olyan mérő készüléket ahol elég pontos (+- 2LSB) mérést kellet végezni?
Akár feszt, akár hőmérsékletet, áramot, stb.

Ott hogyan oldotta meg a mérést?
Vagyis milyen alkatrésszel? Mikrovezérlő A/D vagy külső A/D-t használt.
Milyen pontosságot sikerült elérnie?

Ugyanis gondolkodom a jelenség miatt külső A/D használatán, csak ez egy új panelt igényelne. Én meg lusta vagyok.
Egyébként, ha az ATMEGA belső A/D ennyire pontatlan, akkor mire lehet használni? (körübelül 10fok van vagy kb 5V stb.)
(#) janyjozsef válasza gtk hozzászólására (») Dec 6, 2009 /
 
Zavarszűrés természetesen rendben.
Külön AGND és az Aref is LC-tagos.
Szkóppal nézve DC az AD lábra menő fesz. Vagyis nem látni zajt.
(#) gtk válasza janyjozsef hozzászólására (») Dec 6, 2009 /
 
Es mekkora a mintaveteli frekvencia? Probaltad mas mas frekvencian?
(#) janyjozsef válasza gtk hozzászólására (») Dec 6, 2009 /
 
Igen!

Minden amit programból lehet állítani, az állítottam .
Mintavételi freki, ADláb IT vagy anélkül stb.
(#) fenyus hozzászólása Dec 7, 2009 /
 
Sziasztok!

Találkozott már valaki olyannal, hogy a programozót (itt van minden róla) az avr studio felismeri soros porton keresztül, viszon USB-soros átalakító kábelen sehogy se akarja, pedig áttettem COM1..9re, egyiken se, a kábel pedig elvileg működik... Mi lehet az oka?

Köszi
(#) janyjozsef válasza fenyus hozzászólására (») Dec 8, 2009 /
 
Szia!

Szerintem (tapasztalat) Az USB-s átalakítók főként az RX TX jeleket képesek többé kevésbé jól kiadni. A többi nem.
RTS, CTS, DTR, DSR. A programozónak ezek is kellenek.
A megfelelő átalakítóhoz a megfelelő driver kellene. Vagyis nem RS232 driver, hanem modem driver kellene hozzá. Mert modem esetben kellenek az említett jelek. Normál kommunikációhoz nem és így a driverek többsége ezt nem is tudja. Esetleg FT232 ic azzal még nem volt problémám és a hozzá való driver is jó.
(#) icserny válasza fenyus hozzászólására (») Dec 8, 2009 /
 
Az USB-soros átalakítóban futó firmware és az USB soros buszon zajló bonyolult kommunikáció miatt lassabban jut el a kimentre a jel és hasonló lassúsággal jut vissza a a PC-be is. Ezért felborulnak az időzítési viszonyok - akár 2-3 nagyságrenddel is nagyobb lehet a jelterjedési idő (mikroszekundum helyett miliszekundum). Erre a programletöltő szoftverek nincsenek felkészülve.

(#) tibi0531 hozzászólása Dec 8, 2009 /
 
Sziasztok!

Szeretnék építeni egy STK500V2-es programozót, mivel az eddig használt PonyProg, nem támogatja Mega6450-es chipet. Mivel számomra az USB-s csatlakoztathatóság nem fontos, megelégednék egy sima soros portos STK500-al.

Tudnátok ajánlani valami biztosan működőt? (A 8535-ös chippel szerelt programozó nem jó, mert a környéken ahol lakom nagyon nehéz beszerezni ezt az MCU-t)

Próbapanelen összeállítottam a TuxGraphics féle nyílt forráskódú programozót FT232 chip nélkül (max232-vel), de nem működik rendesen. A programozás sikeres, viszont az olvasással vannak gondok, az átvitel gyakran megszakad, és a program magas ISP frekvencia miatt reklamál (pedig a legalacsonyabb lehetséges frekvencia van beállítva). AVR Studio-val és CodeVision-nal is ugyanez a helyzet.
Két féle firmare-al is próbálkoztam (az egyik 18,432 MHz-en jár, a másik pedig 3,6864MHz-en), így szerintem nem az "overlock" okozza a hibát.

Nem tudja valaki, hogy mi lehet a gond? Már néhány órája keresek a neten válasz,de senki sem ír hasonló problémáról...Talán én rontok el valamit?
(#) fenyus válasza icserny hozzászólására (») Dec 8, 2009 /
 
Köszi, ez lehet a probléma, mert a programozó a TXen és az RXen kívül mást nem használ... Amúgy ez lutri lehet, mert több olyan embert is ismerek, akiknek gond nélkül megy USB-RS232 átalakítóval... úgy néz ki én benéztem.
(#) S79 hozzászólása Dec 9, 2009 /
 
Sziasztok!

Szeretnék AVR studio 4-ben, simulátor módban tesztelni, de új project létrehozásánál mikor kiválasztanám a Debug platformot, ott minden szürke a jobb oldali ablakban, valamint ezt a hibaüzenetet kapom:

Error 51: Could not instanciate targetmodule.

Mi lehet a gond?
(#) trudnai válasza S79 hozzászólására (») Dec 9, 2009 /
 
AVR Freaks-en Latok egy hasonlo esetet. Ott az urgenek regi beta MS Visual Studio volt felinstallalva, amit leszedett es feltett helyette egy nem-betat, es megoldodott a problemaja... Nem tudom neked hasonlo-e a jelenseg?
(#) poznamokus válasza fenyus hozzászólására (») Dec 9, 2009 /
 
Van egy JTAG-ICE topic, ott csinált valaki USB-s jtag-et, ahol az usb emulációt atmega8-al valósította meg.
(#) S79 válasza trudnai hozzászólására (») Dec 10, 2009 /
 
Reinstall segített, bár felmerűlt egy újabb gond.
próbálom megcsinálni a "8 lábbal..." cikk első feladatát, a villogót de valamiért nem akar működni a kütyü.
plusz én úgy olvastam, hogy elégnek kéne lennie programozónak mint áramforrás, ha rá van dugva, de ha nem kötök rá a próbapanelre még elemet, akkor pirosan világít a programozó ledje(AVRISP MKII).

bemásolom a kódot, hátha valamit elírtam:

Idézet:
„#include
#include

void m_delay_10ms(unsigned char val) {

unsigned char i;

for(i=0;i
_delay_ms(10);

}

}
int main(void) {
DDRB = (1< PORTB = (1<
while(1) {

if(PORTB & (1< else PORTB |= (1< if(PORTB & (1< else PORTB |= (1< m_delay_10ms(100); //100*10ms = 1s
}
return 0;
}


valamint programozásnál nem ír ki semmi hibát.
Esetleg valaki egy sima egy ledes avr-es villogóhoz tud adni linket?>>>>>>>>>>>>
(#) vbalint válasza S79 hozzászólására (») Dec 10, 2009 /
 
Szia! Topi a cikk első oldalán a saját programozóját javasolja, ami tud 5V-ot szolgáltatni a céláramkörnek. Az AVRISP mkII szerintem nem tud, bár nem olvastam végig a kézikönyvét, és nekem párhuzamos portos kütyüm van. Ha a piros LED folyamatosan világít, az azt jelenti, hogy a céláramkörön nincs feszültség.
Mi történik, ha kapcsolsz 5V-ot a procira? Tudod programozni? Világít valamelyik LED?
Találtam egy utalást is egy hibára az Atmel oldalán, ami a 2007.10.12. és 2008.01.30. közt készült programozókban van meg, és azt eredményezheti, hogy nem tud a céláramkörrel kommunikálni. Javítható szoftverfrissítéssel. Bővebben: Link
Üdv: Bálint
(#) S79 válasza vbalint hozzászólására (») Dec 11, 2009 /
 
Szia!
Megmértem, 4.85V jön ki a programozóbol, ha rákötök még pluszba 2-3V-ot akkor már műküdik és a lámpája is zöldre vált.

sikerült közben összehozni egy egy ledes villogót:

DDRB = 0xff;
while(1)
{
PORTB = 0xff;//(1< _delay_ms(5000);

PORTB = 0x00;
_delay_ms(2000);

Ezzel már működik, csak az a gáz, hogy 2 ledet nem akar egyszerre működtetni>>
(#) trudnai válasza S79 hozzászólására (») Dec 11, 2009 /
 
Idézet:
„Megmértem, 4.85V jön ki a programozóbol, ha rákötök még pluszba 2-3V-ot akkor már műküdik és a lámpája is zöldre vált.”


Hmm, tehat azt akarod mondani, hogy 4.85+3V = 7.85V megy az 5V-os aramkorodre? Az amugy azert jo, mert igy majd ingyen kommunikalhatsz a sziklas-hegysegben rekedt utoldo nehany feketelabu indiannal
Következő: »»   169 / 840
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem