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   762 / 839
(#) ttspeaker88 válasza Istvanpisti hozzászólására (») Feb 6, 2017 /
 
Szia!

Megmértem, most 7.56V-on van a lipo, a fesz.osztó feszültsége pedig 4.5V, nem lehet 5V felett, azért nem értem miért ad 1023-at. (más mega8-al is próbáltam már, azzal is ugyanez a helyzet)

Köszi azért!
A hozzászólás módosítva: Feb 6, 2017
(#) Istvanpisti válasza ttspeaker88 hozzászólására (») Feb 6, 2017 /
 
Szia!
Akkor arra gondolok, hogy az ADMUX beállítása nem biztos hogy jó:

  1. ADMUX |= (1<<REFS0);
  2. helyett próbáld  ezt
  3. ADMUX = (1<<REFS0);

Mert a kódból nem látszik az ADMUX kezdeti értéke.
(#) ttspeaker88 válasza Istvanpisti hozzászólására (») Feb 6, 2017 /
 
Kipróbáltam, ugyanaz a helyzet : (
Csatoltam a kódot, meg a kapcsolást. (lipo akku kapacitását akarom mérni %-ban, fesz. alapján)
(#) Istvanpisti válasza ttspeaker88 hozzászólására (») Feb 6, 2017 /
 
A rajz nincs szinkronban a kóddal, a rajzon a PC1 a bemenet.
(#) Kovidivi válasza ttspeaker88 hozzászólására (») Feb 6, 2017 /
 
Folyamatosan terheled szegényt 25K-val és az AVR-el is? Akkumulátoros üzemmódban át kell gondolni kicsit a dolgokat. Alvó mód, ébredések sűrűsége, lekapcsolható feszültség osztó, kijelzők lekapcsolása és/vagy fényerőszabályzás (este minek menjek teljes fényerővel?) stb.
(#) ttspeaker88 válasza Istvanpisti hozzászólására (») Feb 6, 2017 /
 
Azt tudom, a rajzot még nem módosítottam, de most a PC5-n van, a 28-as lábon. Mindegyik adc port-on próbáltam már.
(#) ttspeaker88 válasza Kovidivi hozzászólására (») Feb 6, 2017 /
 
igaziból csak egyszer rádugom az lipo-ra majd megmondja hogy mennyi %-on van (nincs folyamatosan rákötve)
(#) Kovidivi válasza ttspeaker88 hozzászólására (») Feb 6, 2017 /
 
Százalékot biztosan nem fog helyesen kijelezni a készüléked, maximum a cellafeszültséget, de abból nem következik egyenes arányosan a cellában levő maradék töltöttség szintje.
(#) Istvanpisti válasza ttspeaker88 hozzászólására (») Feb 6, 2017 /
 
A RESET lábon van valami?
Mit mutat a kijelző?
A hozzászólás módosítva: Feb 6, 2017
(#) ttspeaker88 válasza Kovidivi hozzászólására (») Feb 6, 2017 /
 
Tudom hogy nem lineáris a lipo karakterisztikája, ezért felvettem a karakterisztika néhány pontját, majd a mért fesz.-re interpolálok, és az már egy jó közelítés.
(#) ttspeaker88 válasza Istvanpisti hozzászólására (») Feb 6, 2017 /
 
A RESET-en nincs semmi.
97%ot, mutat a kijelző, de 46-ot kellene.
( van egy kis hibája mert a mért 0-5V-ot visszaszorzom a leosztott aránnyal, ami 1.666 körüli érték, így kapom meg a lipo feszültségét)
(#) Logeen hozzászólása Feb 6, 2017 /
 
Sziasztok! Kész lettem egy 30x10-es színes kijelzővel amit ~90fps-el tudok frissíteni. Szeretnék egy 30 sávos audio spektrum analizátort készíteni belőle. Milyen módon tudok 30db frekvenciasáv-ot szűrni és bejuttatni egy atmega mikrovezérlőbe? A leg egyszerűbb módon?
(#) ttspeaker88 válasza ttspeaker88 hozzászólására (») Feb 6, 2017 /
 
az interpoláció egyébként jól működik, fix értékekkel leteszteltem és az teljesen jó eredményeket (%-okat) ad. A gond ott van hogy az interp. rossz fesz. értéket kap, mert rossz az adc érték...

(régebben csináltam már ilyent ARM-al egy adott robothoz, akkor ipari cella kapacitását mértem, elsőre működött. De most avr van kéznél... )
(#) Istvanpisti válasza ttspeaker88 hozzászólására (») Feb 6, 2017 /
 
Én úgy értettem, hogy egy kb. 10 kohmos ellenállás, amit be kell kötni, az bent van?

Próbáld még ezt meg:
  1. cellsVoltage = ((float)cellsADCvalue * (maxVolts / maxAdcBits)) * ratio;
  2. //írd be a (float) kifejezést

AVR_reset.jpg
    
(#) ttspeaker88 válasza Istvanpisti hozzászólására (») Feb 6, 2017 /
 
Oké, kipróbálom, nincs 10K-s a reset lábon, köszi szépen! : )
(#) csatti2 válasza ttspeaker88 hozzászólására (») Feb 6, 2017 /
 
Az AREF lábon mekkora feszültséget mérsz?
(#) csatti2 válasza Logeen hozzászólására (») Feb 6, 2017 /
 
ADC szabadonfutó módban, majd FFT algoritmus.
(#) ttspeaker88 válasza csatti2 hozzászólására (») Feb 6, 2017 /
 
Az Aref-en és az Avcc-n is 4.1V-ot mérek. Kereken 5-nek kellene lennie?
(#) ttspeaker88 válasza ttspeaker88 hozzászólására (») Feb 6, 2017 /
 
Megvan, a 7805 volt a ludas, kicserélem egy másikra és működik, jól mér. Köszönöm szépen a segítséget mindenkinek!! : )
(#) csatti2 válasza ttspeaker88 hozzászólására (») Feb 6, 2017 /
 
Pontosan... Itt a problémád, kis szerencsével nem ment tönkre az analóg bemeneted a túlfesztől.

Nem értem ezt a 7805 imádatot. Sokkal pontosabb (és gyakran olcsóbb) LDO-k kaphatóak, amiken jóval kisebb feszültség esik. Mondjuk a te eseted elég extrém, 7,4V-nál ki kéne tudnia adni az 5V-ot.
(#) ttspeaker88 válasza csatti2 hozzászólására (») Feb 6, 2017 /
 
Nem értem miért volt hibás a 7805, de ez volt a baja, eddig eszembe sem jutott, hogy ezzel lehet valami gond.
Nem imádom, de ebből van egy marokkal : )
(#) csatti2 válasza ttspeaker88 hozzászólására (») Feb 6, 2017 /
 
Igen, de nem lesz jó vele a mérés. Mi történik ha az akkuid mondjuk 3,2V-on vannak? Akkor már bőven a dropout alá esik a betáp feszültség és nem lesz 5V a kimenetén. Ettől látszólag még működni fog az eszköz, de eltolódik majd a referenciafeszültséged is és máris jóval nagyobb maradék kapacitást hazudik majd.
A hozzászólás módosítva: Feb 6, 2017
(#) ttspeaker88 válasza csatti2 hozzászólására (») Feb 6, 2017 /
 
Nem külön-külön, hanem egybe mérem a két cellát direkt, így a minimum fesz. 6.4V lehet, de addig meg úgysem hagyja lemerülni a szabályzó.
A hozzászólás módosítva: Feb 6, 2017
(#) csatti2 válasza ttspeaker88 hozzászólására (») Feb 6, 2017 /
 
Tudom. Csak épp terheléstől/hőmérséklettől függően jóval nagyobb lehet a dropout fesz mint 1,4V, azaz máris nem jön ki 5V a regulátorból és azt hazudja majd az eszköz, hogy van még nafta bőven.

A helyes megoldás az volna (ha ragaszkodsz a 7805-höz), ha átállnál a belső feszreferenciára (2,56V). Eszerint átméreteznéd a feszosztódat és máris toleráns az eszköz a bemeneti fesz ingadozásra.
A hozzászólás módosítva: Feb 6, 2017
(#) ttspeaker88 válasza csatti2 hozzászólására (») Feb 6, 2017 /
 
Értem, akkor célszerűbb a 7805-t valami másra cserélni vagy átállítani a referencia feszültséget. Megpróbálkozom a belső referencia használatával. Köszönöm a segítséget!!
A hozzászólás módosítva: Feb 6, 2017
(#) csatti2 válasza ttspeaker88 hozzászólására (») Feb 6, 2017 /
 
Mint írtam, megoldható 7805-el is. Csak épp elegánsabb vmilyen LDO-val, amiből végig kijön az 5V ezért egyenletes marad a kijelzés fényereje és biztos benne maradsz az uC működési tartományában (mondjuk ezt már tesztelted ).
(#) ttspeaker88 válasza csatti2 hozzászólására (») Feb 7, 2017 /
 
Okés, köszönöm szépen a segítséget! : )
(#) david10 hozzászólása Feb 7, 2017 /
 
Sziasztok,
Melyik az a legolcsóbb Atmel uC, amelyikre direkt USB-n keresztül tudok feltölteni .hex fájlt USB-soros átalakító nélkül?
8 darab WS8212 ledet és egy égőt kellene meghajtson PWM-el.
USB-soros átalakítót nem szeretnék beletenni helyszüke miatt.
A választ előre is köszönöm.
(#) dc001 válasza david10 hozzászólására (») Feb 7, 2017 /
 
Talán a legolcsóbb amiben van hardware-s USB támogatás az atmega8u2.

Egyébként az www.atmel.com oldalon "Atmel MCU Selector" link mögött sok paraméter alapján tudsz keresni.

Ennél olcsóbb lehet a software-s usb: https://www.obdev.at/products/vusb/index.html. Ez kb 2kbyte méretben tud v1.2-es (alacsony sebességű) USB-t, csak az órajel a megkötés (pl.: 12MHz). Akár attiny chip is jó lehet (pl.: attiny4313 ~420Ft/db). Ezen a linken van több minta projekt kapcsolási rajzzal és programmal.

Ezek akkor jönnek szóba, ha USB-n akarsz kommunikálni az MCU-val. Felprogramozni direkben USB-ről nem tudod, ahhoz kell egy ISP-s programozó. Ez nem sok helyet foglal, mert csak egy csatlakozó kell neki, hogy addig kösd rá a programozót, amíg feltöltöd a programot.

A kettő között átmenet lehet a boot loader. Itt viszont a méret lehet gond. A vusb-t biztos nem lehet boot loader-ként használni (túl nagy), de lehet a hw-es USB támogatással egy kis ügyességel bele lehet szorítani.
A hozzászólás módosítva: Feb 7, 2017
(#) Pethical válasza dc001 hozzászólására (») Feb 7, 2017 /
 
Létezik egy BootloadHID is az obdev-en, az egy HID-et implementáló bootloader USB-re, ezzel direktbe lehet programozni. Az viszont igaz, hogy 2kb, szóval kell hozzá legalább egy atmega8.

A másik lehetőség pedig az AVRUSBBoot. Ennek az a hátránya, hogy saját feltöltő progija van és ennek is kell elvileg 1024 szónyi bootloader hely.

Azzal viszont egyetértek, hogy felesleges, ha csak arra kell, hogy fel legyen programozva, hiszen azt egyszer kell csak megtenni.

Szerk: Alkalmazható még a micronucleus is attinyhez pl. Ez csak 1.4~1.8kb.
A hozzászólás módosítva: Feb 7, 2017
Következő: »»   762 / 839
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