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   398 / 840
(#) zombee válasza ATtiny hozzászólására (») Jan 7, 2012 /
 
Szerintem a TRMS(U)*TRMS(I)*cos(fi) helyett a valós teljesítményt(TRMS(P)) és fogyasztást úgy kéne kiszámolni hogy az AVR-el minél sűrűbben(1 ksps már jó lehet) mintát veszel a feszültség és áramerősség pillanatnyi értékéből majd összeszorzod, az eredményeket pedig összeadod. Biztos hogy lesz valamilyen mérési zaj, de fogadok hogy nem NASA-műszert építesz.
(#) szdani válasza sgt hozzászólására (») Jan 7, 2012 /
 
Még megpróbálok venni egy másikat. Ez most a 32lábú smd de szerintem megpróbálok egy simát. Az ATmega128-at meg az ATtiny45-öt tök jól feltudtam programozni. Innen a hobbielektronikáról építettem a programozómat "Első AVR programozóm". Az avr dopert azért nem csináltam meg mert van benne egy IC amit nem tudtam beszerezni. De ez is jl működik, a panel másik oldalára raktam egy áramkört ami 4MHz-et ad ha kizárnám magamat. Újpesten is van egy elektronikai bolt a 3mas metro végálomásától 1 percre azt hiszem az a neve hogy Kontel. Valaki vásárolt már náluk?
(#) ATtiny válasza zombee hozzászólására (») Jan 7, 2012 /
 
Alapvetően három fajta teljesítményt lehet (érdemes) kiszámítani egy korrektül működő teljesítmény mérő esetében. Ezek:

Látszólagos teljesítmény U*I (VA)
Hatásos (valós) teljesítmény U*I*cos(fi) (W)
Meddő teljesítmény U*I*sin(fi) (VAr)

Természetesen mindenhol TRMS feszültség és áram értékek értendők, mivel feltételezhetjük, hogy nem ideális a szinusz görbe. A látszólagos teljesítmény meghatározásával semmi gond nincs, mivel rendelkezésre áll az RMS feszültség és áram értéke. A hatásos és meddő teljesítményhez viszont kellene a cos(fi) és sin(fi). Ha összeszorzom az AVR-el mintavételezett feszültség és áram értékek pillanatnyi értékét, akkor ezeknek az átlagából megkapom a hatásos (valós) teljesítményt? Ez nem lenne rossz, ha működik és kellően pontos. Amúgy a mintavételezés 4,8Khz -el történik és 4095 db mintát gyűjtök össze, mielőtt kiértékelem.
(#) zombee válasza szdani hozzászólására (») Jan 7, 2012 /
 
Én a Konthát tudom ajánlani, sokszor vásároltam náluk. Legfeljebb egy kis várakozás(hát igen ha valami jó akkor jönnek) amiért szót emelhetnék, illetve nem árt ha jó előre, pontosan tudod hogy mit akarsz venni mert elég nagy az árukészlet és az eladó mégsem nem kérdezhet rá minden tételnél hogy most ezt vagy ezt kéred.
Volt már olyan hogy a tokozás eltérő volt, de amikor visszavittem szó nélkül kicserélték!
(#) zombee válasza ATtiny hozzászólására (») Jan 7, 2012 / 1
 
Szerintem elegendően pontos a teljesítménymérés ha a pillanatnyi feszültség*áram értékekkel dolgozol,
mivel a cosfi kiszámítása(FFT és társai) legalább akkora hibát visznek be a rendszeredbe.
Egyedül az átváltásoknál kell nagyon vigyázni, illetve nem árt,
ha minél nagyobb felbontású változóban(uint32_t uint64_t) tárolsz mindent!

A legnagyobb zajt úgyis az viszi be a rendszerbe hogy diszkrét időben mintavételezel diszkrét értékeket,
de pl. egy mechanikus mérő esetében minden folytonos időben történik
folytonos értékekkel így szinte lehetetlen becsapni!

Ennél pontosabb már csak akkor lehetsz ha analóg áramkörökből építesz meg szinte mindent,
kezdve az analóg szorzókkal, csúcsegyenirányítókkal, nullpont-átmenet detektorral,
integrátorokkal, DAC-átalakítókkal, stb.

Szerintem ezek nincsenek benne a 2-4 ezer forintos aldis-teszkós-spáros mérőkben,
az E.ON mégis ezeket ajánlja(illetve adja kölcsön) a háztartási készülékek fogyasztásának mérésére!
(#) ATtiny válasza zombee hozzászólására (») Jan 7, 2012 /
 
Köszi a segítséget, akkor beépítem a kódomba a pillanatnyi feszültség és áram szorzatán alapuló teljesítmény mérést is. Ez fájdalommentesen beilleszthető, mivel az RMS számítás is hasonló, csak ott a pillanatnyi értékek négyzetét kell eltárolnom. Majd beszámolok róla, hogy mennyire lett pontos a szerkezet.
(#) zombee válasza ATtiny hozzászólására (») Jan 7, 2012 /
 
Ja igen még egy apróság: a mintavételezett jel négyzetre emelése a zajt is négyzetre emeli.
(#) sikolymester válasza ATtiny hozzászólására (») Jan 7, 2012 /
 
Érdemes mindig körülnézni az application note-ok környékén. Sokszor lehet hasznos dolgokra találni.
AVR465: Single-Phase Power/Energy Meter with Tamper Detection

Bár csak átfutottam, de úgy tűnik kalkulál a cos(fí) -vel, tehát szerintem érdemes lehet átolvasnod.
(#) zsozsoX hozzászólása Jan 7, 2012 /
 
Sziasztok
Ha egy váltakozó feszültség szintet akarok figyelni egy avr bemenetén, hogy van-e feszültség vagy nincs. Arra jó ez a megoldás?

sch.jpg
    
(#) sgt válasza zsozsoX hozzászólására (») Jan 7, 2012 /
 
Hogyne , csak az előtét ellenállás lehetne nagyobb. Mondjuk 4,7k, mert semmire nem kötöd, csak a feszültségszint a lényeg. 100 ohm-mal elég nagy áramok fognak folyni.

Az ingadozás jelen lesz a avr-nél is? Ha igen akkor célszerűbb belső feszültségreferenciát használni, és ennek fényében kisebb feszültségű zener-t bekötni.
(#) sikolymester válasza zsozsoX hozzászólására (») Jan 7, 2012 /
 
Arra ügyelj, hogy egy 4,7 es zéner nem feltétlenül max 4,7V-ot enged át az AVR lábra. Erősen nemlineáris állatok ezek.

A biztonság kedvéért a 100 ohmot cseréld le nagyobbra, ahogy a kolléga is írta pár kOhmra.

Persze nem muszáj zénert használni, elég lenne egy 1k 1k fesz osztó pl. Ha pedig félsz, hogy a max fesz 10V-nál több is lehet, akkor köss sorba egy min. 10k-s ellenállást a bemenettel.
(#) zsozsoX válasza sgt hozzászólására (») Jan 7, 2012 /
 
Az avr stabil 5v-ról megy. Az 1k-1k fesz. osztóban gondolkodtam én is de azzal az nem baj, hogy 7v-nál csak 3,5v van azt meg már nem biztos magasnak értelmezi a kontroller - ha jól tudom.
(#) sgt válasza zsozsoX hozzászólására (») Jan 7, 2012 /
 
Ja, hogy te nem AD-zni akarsz? Mi akadályoz meg abban, hogy AD-z? Ezt a zenerről közvetlenül egy logikai szintet fogadó áramkörre kötés elég érdekes elgondolás.
(#) ATtiny válasza sikolymester hozzászólására (») Jan 7, 2012 /
 
Átolvastam a ap note -ot és megnéztem a kódot is. Pontosan olyan módszerrel méri az ő kódjuk is a hatásos és látszólagos teljesítményt, mint amit mi itt zombee -val megbeszéltünk. Ők sem vacakolnak a cos fi számítgatásával, hanem a pillanatnyi feszültség és pillanatnyi áram minták szorzatán illetve ezek RMS értékén alapul az egész. Mondjuk az ő kódjuk elég korrekt, abból a szempontból, hogy a bemeneteken jelenlévő zavaró DC-t leszűrik szoftveresen illetve, amire én nem is gondoltam, hogy az áram és feszültség minták fázis eltérését is korrigálják. Azaz az AVR fizikailag csak egymás után képes 2db bemeneti csatorna AD-zását elvégezni és nyilván a 2 művelet között idő telik el. Ezt ők a mintákon korrigálják, mintha egyszerre történt volna a feszültség és áram mérése.
(#) sikolymester válasza zsozsoX hozzászólására (») Jan 7, 2012 /
 
Ez mondjuk igaz, ha jól rémlik 0,8xVCC a magas bemenetre a küszöb.

Egyébként a legegyszerűbb az , hogyha egyszerűen rákötöd egy nagy ellenállással az AVR-re a bemenetet. Ez legyen szerintem min 50k.

Az AVR lábain van egy védődióda a tápra, illetve egy a földre kötve. Ha tehát a bemenetre sorba kötsz egy nagy áramkorlát ellenállást, ami emlékem szerint jóval 1mA alá viszi az áramot, akkor direktbe rá lehet kötni nagy feszültségeket.

Egy app note taglalja, hogy direktbe akár rákötheted a 230V RMS fázist is 1MOhmos ellenállással. AVR182: Zero Cross Detector

Azért előtte nézd meg az adatlapodat, hogy tényleg van benne védődióda. Ha mondjuk nincsen, akkor magad is tehetsz rá.

Annyiban jobb megoldás ez a zéneresnél, hogy energiát spórolsz, mivel a zéneren, vagy akár az ellenállásosztón folyamatosan szökik az áram. Ez ráadásul a legkevesebb alkatrészt igényli.
(#) zsozsoX válasza sikolymester hozzászólására (») Jan 7, 2012 /
 
Egy Atmega8-ról lenne szó. Egy három állású kapcsolóval azt akarom, hogy egyik állás kikapcsolva, egy állás egyféle dolgot csinál, harmadik állás másféle dolgot csinál. Mellékelek egy rajzot talán érthető.

sch.jpg
    
(#) ATtiny válasza zsozsoX hozzászólására (») Jan 7, 2012 /
 
Esetleg figyelhetnéd a 9V-os vagy 5V-os feszültséget egy AD lábbal is. Egy sima ellenállás osztó kell. Ennek a megoldásnak van egy olyan extra lehetősége, hogy meg is mérheted a konkrét bemeneti feszültséget is. Elemes táplálásnál hasznos lehet.
(#) sikolymester válasza zsozsoX hozzászólására (») Jan 8, 2012 /
 
Őő, kövezzetek meg de számomra az két állású kapcsolónak tűnik.

Felső pozícióban 9V megy a zéner felé, ami ~5V-ot eredményez az AVR PB5 lábára.
Alsó pozíciójában viszont ha jól látom kvázi csak lebeg a PB5 bemenet, mindenesetre versenyeznek a diódák, hogy melyiknek győz a szivárgási árama, ami szerintem bizonytalan feszültség állapotot eredményez majd a PB5 bemeneten.

Szóval ez szerintem nem nyerő így. Vagy legalábbis nem értem.

Egyébként írd le konkrétan mit szeretnél, hátha tudunk tanácsot adni hozzá egy harmadik módszerrel, ami ugyanarra az eredményre vezet.
(#) sgt válasza sikolymester hozzászólására (») Jan 8, 2012 /
 
Viszont egy akkora ellenállással, ami nem terheli le a zenert, leköti a földre, akkor abban az állásban is stabil állapot lesz, azaz "0".

zsozsoX: 100 ohm-t semmiféleképpen se felejtsd el kicserélni nagyobbra.
(#) dB_Thunder válasza zsozsoX hozzászólására (») Jan 8, 2012 /
 
zsozsoX !

Nincs véletlenül egy szabad analóg bemeneted? Azon könnyedén meg lehet csinálni a 3 (vagy akár több) állapotot egyszerűen !
(#) sikolymester válasza sgt hozzászólására (») Jan 8, 2012 /
 
Jó, ez persze természetes, csak gondoltam amíg nem derül ki, hogy mi lenne a harmadik pozíciója a kapcsolónak, addig ez eleve mindegy.

Szóval várjuk, hogy mit is szeretne, mert van egy olyan érzésem, hogy arra kíváncsi, hogy honnan kap tápot éppen, de majd kiderül.
(#) dB_Thunder hozzászólása Jan 8, 2012 /
 
Hali mindenki!

Webszervert szeretnék építeni EZT néztem ki. Véleményetek, esetleg tapasztalatok érdekelne!
Teljes kérdésem itt már megtalálható.
(#) Tetye válasza dB_Thunder hozzászólására (») Jan 9, 2012 /
 
Hali!
Én próbálkoztam ilyesmivel ezzel is ha jól emlékszem de nekem valahogy bug-os volt a kommunikáció. ha jól emlékszem a fejléc csomag hosszal voltak a bajok. De már nem most volt, viszont lehet előszedem csak én c-ül nem tudok csak próbálgattam ráfaragni, bascomban egerésztem vele sokat.
(#) mario1111 hozzászólása Jan 9, 2012 /
 
Üdv mindenkinek!

Nem teljesen AVR-es a kérdés, de végeredményben AVR-t használok szóval bátorkodom itt megkérdezni.
Egy CAN-es megjelenítőt készítek BL12864GERNHn-es OLED-es kijelzővel. Minden megy már rendesen, csak a kontraszttal van gond. Alapból szép a képe, de ha növelem a kontrasztot, akkor ahogy nő a kijelző fénye, úgy elkezd szivárogni a fény az elvileg sötét pixeleken. Próbáltam már minden beállítást állítani, hogy, lassabban hajtatom meg... de már vibrál és még szar(nem gyorsan küldöm a képeket, hanem--Display Clock Divide Ratio/Oscillator Frequency--t állítottam)...
Végeredményben, amikor napfényben nagy kontraszttal megy akkor nem látszik, h szivárog, csak kicsit sötétebb helyen már látszik.
Ja és ami furcsa,h a fényét a kontraszt-al tudom csak csökkenteni, mert a fényerőt állító bájt változtatására nem reagál.
A meghajtó IC SSD1303.

Üdv: Márió
(#) sikolymester válasza dB_Thunder hozzászólására (») Jan 9, 2012 /
 
Mire szeretnéd használni a webszervert?
(#) Reggie válasza kiborg hozzászólására (») Jan 9, 2012 /
 
Ez jo kerdes. Amikor nekem nagy pontossagra volt szuksegem, akkor belefert, hogy veszek olyan AD atalakitot amiben van precizios referencia, igy kulon az AVR-hez pedig nem szoktam, mivel alt. csak tapfeszt merek, aminek nem kell nagyon pontosnak lennie. Arban nagyon meg tudnak szaladni(tobb ezer Ft), igy javaslom, hogy valamelyik kereskedonel nezd meg mennyiert mi van. De peldanak, ha 4.096V-os referenciat nezel ki, es feltesszuk, hogy minden buveszkedessel egyutt van 14 effektiv bited, akkor a referencianak nem kell 125 uV-nal pontosabbnak lennie. (1/2 LSB)
(#) dB_Thunder válasza sikolymester hozzászólására (») Jan 9, 2012 /
 
Amire most kellene az egy távoli rack szekrényben lévő dolgok felügyelete, vezérlése (áramok, tápfeszültségek, hőmérsékletek figyelése, átkapcsolások megvalósítása)
De ha kiokosodok a témában, akkor szeretnék egy időjárás figyelő rendszert illeszteni hozzá(ha lehet).
Szélerősség és irány mérése egy ilyennel: La Crosse TX20 hogy végre ne egy dobozban pihenjen, hőmérséklet, páratartalom, esőérzékelés, meg amit még kitalálok.
(#) gabep hozzászólása Jan 9, 2012 /
 
Látom, itt is éppen avr doper építés is téma. Én is ott tartok, hogy egy ATmega8-at szeretnék életre kelteni hozzá.
Páthuzamos porton én már sikerrel programoztam, de az avr doper nem indul.

Részletesen a "Topi-féle AVR programozó Linux alatt"-ban írtam le a problémámat.
(#) norbigal hozzászólása Jan 9, 2012 /
 
8051 kompatibilis ATMEL mikrokontrollert szeretnék programozni az AVRISP MKII klónommal. Találtam egy olyan 8051-es ATMEL chipet ami ISP felületen keresztül programozható. (AT89S52)

A kérdésem az lenne, hogy ezek szerint valóban be tudom programozni ezt a szerkentyűt az MKII klónommal? MISO, MOSI, SCK, RST, meg ami kell meg van neki.

Továbbá a programot AVR Studio-val is tudom írni? Mert nézegettem, hogy a Keil gyárt header file--okat a 8051-es kontrollerekhez, csakhogy ha letöltöm a neten található REGX51.h file-t és lementem header file-ként, majd include-olom valamely más fájlból, akkor csomó hibát ír ki. Azt sem értem a header file-ban, hogy pl. van egy ilyen sor (sok más mellett persze) :
sfr P0 = 0x80;

az sfr az valami olyanra utal, amit csak a Keil a saját uVision szoftverén keresztül ért meg? Mármint ez a sor tulajdonképpen csak azt jelenti, hogy #define P0 0x80

Mert header file-t még nem elemeztem, de akkor elvileg a katalógusból kiindulva #define utasításokkal meg lehet írni egy teljen header file-t a név/cím meghatározással? És ha pl. a fent említett programrészlet után P0=10; értéket adok, akkor a kontroller tudni fogja, hogy a P0 portra ki kell írni a 10 értéket?

Lehet hogy nagyon primitív vagy zagyva dolgokat kérdeztem, de még az életben nem láttam olyan file-t amiben meghatározzák a portok neveit a címeken keresztül. És ha valóban így működik a dolog, akkor tudnék magamnak írni egy saját header file-t az AT89S52-höz.
(#) zombee válasza norbigal hozzászólására (») Jan 9, 2012 /
 
Szerintem AVR Studio-val nem lehet írni, mert a definíciós fájlt(*.inc) nem találni benne. Szerintem az utasítások sem kompatíbilisek az AVR-el, de ezt majd megmondja valamelyik okosabb fórumtársunk. Én a Keil-t ajánlom. Igaz hogy korlátos, de hamar meg lehet azt is tanulni, nekem gyorsabban ment,
mint az AVR Studio még anno. Illetve van még a "Bascom-8051", talán ez is tudja, ismeri.

Programozás: az AVRISP-mkII biztosan támogatja(MOSI/MISO/SCK/RST), de a klónokkal csak vigyázva próbálkozz! Ugyanis ha megnézed az adatlapot, a RST láb magas-aktív, nem úgy mint a többi AVR-nél!
A LUFA meghajtóprogram szerencsére tartalmazza a polaritásválasztást, egyes bufferelt klónoknál gond lehet, de az ellenállás-leválasztásos típusoknál elvileg ebből nem lehet probléma.
Ha klónod van, kérdezd meg az mkII példányod gyártóját!
Következő: »»   398 / 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