Fórum témák
» Több friss téma |
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
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.
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!
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á.
Ü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.
É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.
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ű...)
Meg kellene próbálnotok igazi, precíziós, külső referenciát használni és azzal tesztelgetni a programot.
Én pl. ezzel próbáltam: LP 2985IM5-3.3
Megtörtént!
Én tettem hozzá külön 2.56V-os ref-et. És ugyan az van.
Nem kell kulso ref. El kell olvasni a nem linearitasbol stb.-bol eredo hibalehetosegeket az adatlapban(?). Ezert szoktak merni tobb savon egyszerre.
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.
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.
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.
Zajszures gondolom rendben.
Ha ekkora tartomanyban sem pontos, akkor nem tudok mit mondani...
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.)
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.
Es mekkora a mintaveteli frekvencia? Probaltad mas mas frekvencian?
Igen!
Minden amit programból lehet állítani, az állítottam . Mintavételi freki, ADláb IT vagy anélkül stb.
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
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ó.
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.
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?
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?
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?
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.
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< while(1) { if(PORTB & (1< } 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?>>>>>>>>>>>>
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
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< 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>> 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 |
Bejelentkezés
Hirdetés |