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
Álljatok meg egy szóra. Ha bemenetnek használjuk a lábat és úgy akarjuk felhúzni egy belső ellenállásra akkor a PORT regisztert állítjuk egyre és a DDR-t nullára.
Adatlapból idézek: Idézet: „If PORTxn is written logic one when the pin is configured as an input pin, the pull-up resistor is activated. To switch the pull-up resistor off, PORTxn has to be written logic zero or the pin has to be configured as an output pin. The port pins are tri-stated when reset condition becomes active, even if no clocks are running.”
Köszi szépen, áttanulmányozom őket.
Kérdés: ha aktiválom az "ADC Noise reduction" módot, akkor nem fog akadni a multiplexelt kijelzésem? Vagy olyankor az output lábak a tri-state-re váltanak vagy outputok maradnak? A jelem sima egyszerű mezei lassan változó DC-jel lesz, csak a maximális felbontását kellene kihasználni az ADC-nek.(230V-ot mérnék 3 fázison. Úgy képzeltem el, hogy egy trafóval fázisonként letranszformálom,egyenirányítom, helitimmerrel osztom és utána mérem és kijelzem) Zombee:remélem így már világosabb. Tehát vagy egy 5V os tápfeszültségem és 3 egyéb feszültségem,amit mérni szeretnék.Ezeket tetszőleges tartományban tudom állítani egy potival. A mért értékek 218 és 242V közötti értéket jelentenének. Üdv Kiborg
Azt hogy tudom kiszámolni hogy mekkora ellenállás kell a reset lábra? PL: egy atmega 168 nál.
Meg fog akadni, de nem tristate lesz, hanem a legutolso allapotban marad, de csak a konverzio idejere all le.. Ilyenkor elotte celszeru a kimeneteket passziv allapotba valtani. A masik megoldas az, hogy a multiplexelt kimeneted frissitesi frekvenciaja annyira leviszed, hogy a periodusito legalabb akkora, mint a konverzios ido. Ekkor a multiplexerhez szinkronizaltan kell inditanod a konverziot.
Akkor marad a második megoldás, hiszen a 3 csíknak, hogy elég a 20-25Hz-es frissítési gyakoriság (de ha 100Hz, akkor is elég), mert a maximális konverzióidő 25 órajelciklus (1MHz-n 25us) ami sokkal kisebb idő, mint amit észrevennénk a multiplexálás kiesésénél. Ennyi holtidő szerintem bele fog férni, főleg, hogy csak másodpercenként lesznek mérve a csatornák.
Köszi a segítséget. Üdv Kiborg ui: mit ajánlanál feszültség referenciának?
Hello!
A felhúzó ellenállás értéke nem kritikus, 1-4,7kohm-ig gyakorlatilag bármilyen megteszi. Én az utóbbit szoktam használni. A lényeg ,hogy az áram kicsi legyen, de 20mA-nél semmiképpen sem nagyobb.
Abban tud valaki segíteni hogy miért nem tudom kiolvasni a chip signature-ját? Egy egyszerű kapcsolás, atmega168 kap tápot, 20MHz-es kvarcot, 6 nyomógombot meg 2 ellenállást ami egy atennakimenet. Próbáltam ellenállást rakni a reset lábra de úgysem volt jó. A chip vadonat új! Úgy kötöttem be a programozót ahogy az adatlap írta: MOSI-MOSI, MISO-MISO SCK-SCK
RST-RST, Xtal1 órajel 4MHz-et adtam neki.
Hmm, akkor az én készülékemben lesz a hiba. Majd alkalomadtán kicsit tüzetesebben megnézem.
Köszi az infót!
MISO-MOSI és MOSI-MISO. Rosszul kötötted be. Vagy tévednék?
Állítottál előzőleg valamit a fuse biteken?
Hehe, pont ezért lett kitalálva a MOSI-MISO elnevezés, hogy ne legyen keverve, hogy mit mikor mire kell kötni.
Emlékezetes ugye a kavarás mondjuk egy RX TX-nél. SPI-nél csak összekötjük MISO-t MISO-val, MOSI-t MOSI-val. Persze akkor gond lesz, ha mindkét eszköz masternek, vagy slavenek képzeli magát, de ez már nem bekötési gond. Egy AVR amin lerántja egy programozó a reset lábat magát nem nagyon fogja masternek hinni. Én annyit kérdeznék, hogy tápfesz hány Volt, illetve milyen programozód van és azt milyen programmal használod?
Akkor tévedtem. Ezekkel nagyon megtudnak kavarni. Meg a frankó adatlapok is nagyon becsapósak.
A bekötés jó, semmit nem tudtam állítani mert nem látja a chip-et. AVR911-et használok AVR OSPII-vel. Tápot is kap. USB-ről kap 5V-ot
És már korábban működött az AVR911 az említett programmal tetszőleges AVR-rel?
Úgy lehet megjegyezni, hogy a MOSI: Master Out Slave In, a MISO: Master In Slave Out.
Tehát az elnevezés rögtön hordozza a bekötési mikéntjét is. Néha SPI kompatibilis IC-knél úgy adják meg a lábakat, hogy SPI, SPO, vagyis Serial Port In, Serial Port Out. Ha a MISO/MOSI szemlélettel kötjük össze a mikrokontrollerrel, ahol MISO/MOSI lábak vannak, akkor elég arra gondolni, hogy a mikrokontroller lesz a master és kész is: SPO->MISO SPI->MOSI
Lehet ezért nem megy . Hol vetted az atmegát?
Köszi. Most már csak a soros portnál kell figyelni, hogy fel kell cserélni . Az ilyenektől az eszem meg tud állni.
Üdv!
Belefogtam az avrdoper építésébe. Ott tartok, hogy már csak a felprogramozott AVR kell bele. Építettem egy STK200-at gyors, hogy majd azzal felprogramozom. Ezt a programozót ez és ez alapján raktam össze. Valami azonban nem oké, mert nem működik a dolog. Véleményeteket szeretném kérni, hogy hol lehet a hiba. Ezen bekötések alapján kellene-e működnie az elvárt módon vagy eleve már a bekötés sem jó? Az Atmega8 7-es lábára adtam a +5 Voltot és a 8-ason van a GND. Ha tudtok egyszerűbb/másik módot az AVR felprogramozására akkor azt is szívesen fogadom. Egyetlen célom, hogy egy alkalommal egy Atmega8-at fel tudjak programozni, nem szeretném a későbbiekben használni ezt a programozót, pusztán csak azért küzdök vele, hogy az Avrdoper-be legyen egy felprogramozott AVR-em. Köszi
Hát nem tudom hogy azt honnan szedted, annyi biztos hogy nem STK200-nak hívják!
Nézd meg a csatolt képet, a különbség ordítani fog! PonyProg-al már használható lesz. Ha esetleg a FUSE bitek problémát okoznak PonyProg alatt: SUT_CKSEL mindegyikétől vedd ki a pipát, ezzel biztos a külső kvarckristályra kapcsol át.
Hmm, köszi! Az avrdude-ot próbáltam pony-stk200 -al is paraméterezni, sajnos nem ment úgy sem. Ez amit linkeltél szintén nem tűnik bonyolultnak. Lehet átépítem. Köszi.
Köszönöm a segítségedet! összeraktam ezt amit linkeltél, működik is szépen! Még lenne annyi kérdésem, hogy ha olyan programot írnék az IC-be ami későbbiekben külső kristályt használna, akkor itt, felprogramozásnál is legyen ott a kristály már az ATmega8 9-es 10-es lábán?
Köszi
A 8bites AVR-eknél az órajel választás teljesen független a beleégetett programtól.
Az órajelet az un. fuse bitekkel lehet állítani. Tehát, ha a te programod azzal számol, hogy 12MHzen fut majd az AVR, de a fuse bitek 1 MHz-re vannak állítva, akkor értelemszerűen a program ugyan futni fog, csak azok a funkciók, amik számítanak a 12MHz-re nem fognak helyesen működni. Mindazonáltal amint a fuse bitekkel beállítod, hogy külső kristályról szedje az órajelet, és nincsen rajta külső kristály, akkor addig "se kép se hang nem lesz", amíg nem kap egy külső kristályt.
Ahogy olvastam a topicot. Ott minden értelmes tranzisztor hamis. Bár azért nem hiszem, hogy az atmegákból is hamisat rendelnék.
Egy AVR alapú hálózati teljesítmény mérőt programját írom és szükségem lenne valami jó ötletre, hogyan tudok értékelhető pontosságú cos fi -t mérni. Az eredeti elképzelésem az volt, hogy az áram és feszültség fáziseltolódásából számolom ki. Ez a módszer működik is most, de értékelhetetlen eredményt ad ha nem szinuszos az áram jel. Ez pedig manapság gyakran előfordul a kapcsolóüzemű tápok világában. A feszültséget és az áramot "true" RMS módon mérem, így azok bármilyen hullámforma esetében is pontos értéket adnak. De sajnos a cos fi kiszámítása durván torzult szinusz jel esetében nem egyszerű. Legalábbis én nem találtam rá megoldást. Talán valakinek van itt ötlete, hogyan is lehet ezt megoldani.
Torz, nem-szinuszos jeleknél a cos fi mérésnek nincs sok értelme. Egy lehetőség azért akad, talán az a jó:
a feszültségből és az áramból az 50Hz-es alapharmonukust veszed alapul a csúcsok meghatározásához. Valószínűleg FFT is kelleni fog hozzá, másképp nem megy!
Sajnos én is csak olyan infót találtam a neten, a kapcsolóüzemű tápok által eltorzított áramjelalakból a power factor számításhoz, ami úgy nyit, hogy FFT képlet meg THD számítás. Egyik sem az a művelet, amit könnyedén bele lehetne tuszkolni egy 8 bites AVR-be, úgy hogy már így is eléggé le van terhelve a RMS számítással.
|
Bejelentkezés
Hirdetés |