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 ![]()
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 |