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   331 / 840
(#) zolee1209 válasza puli122 hozzászólására (») Jún 11, 2011 /
 
A tápegység és a mérő áramkör GND-je közös?
(#) puli122 válasza zolee1209 hozzászólására (») Jún 11, 2011 /
 
Én ezt nem tudhatom, de mivel akkutöltő, gondolom nem.
(#) zolee1209 válasza puli122 hozzászólására (») Jún 11, 2011 /
 
Én sem tudom... De mivel azt sem tudjuk, mekkora feszültségű akkukat fog tölteni az áramkör, ezért egy olyan megoldást vetettem fel, ami biztosan alkalmazható a mérendő paraméterektől függetlenül.
(#) kovacsj válasza sikolymester hozzászólására (») Jún 11, 2011 /
 
Köszönöm szépen!

A táplálással kapcsolatos nehézségekkel tisztában voltam, de úgy gondolom, hogy 5V-ról indítva, különböző regulátorokkal (mint pl. a HeStroe-ban kapható LM 317T) a feszültség beállítható először 4.2V-ra, - ez lesz a GSM modulé - majd onnan 3.3V-ra. Vagy ez az elképzelés nem jó? Az viszont már nagy örömmel tölt el, hogy nem kell szintillesztést végeznem a TX-RX lábak között. Kell majd azonban a 3.3V.-os kontroller és a számítógép RS232-es portja között, mert ez is benne van a tervben. 5v-ossal már sikerült megoldanom (MAX232), de 3.3V-ossal még soha nem próbáltam. Ha azonban a kontrollert választanám 5V-osnak, akkor a TX-RX jelekkel lesznek problémáim. Hogyan lehetne ezt a legcélszerűbben?

Köszönöm előre is!
(#) kovacsj válasza sikolymester hozzászólására (») Jún 11, 2011 /
 
Látok itt egy max3232-t:
http://www.hestore.hu/files/max3232.pdf

Ezzel lehetséges lenne közvetlenül a 3.3V-os kontroller és a számítógép közötti kapcsolat megvalósítása? Csak röptében pillantottam rá, de nekem úgy tűnik.

Köszönöm előre is!
(#) zolee1209 válasza kovacsj hozzászólására (») Jún 11, 2011 /
 
Igen.
(#) kovacsj válasza zolee1209 hozzászólására (») Jún 11, 2011 /
 
Köszönöm szépen!
(#) sikolymester válasza kovacsj hozzászólására (») Jún 11, 2011 /
 
Ha a gsm modul 4.2V-ról jár majd, a mikrokontoller viszont 3.3-ról, akkor nagyon valószínű, hogy a gsm modul Tx jele(tehát amin ő ad) ~4.2Vos lesz. Egy mezei avr uC viszont nem bír el csak tápfesz+0.5V-ot a bemenetein.

Nagy baj nincsen ugyan, mert a láb bemenetei van egy védődióda pont emiatt. Azok viszont nagy áramot nem tudnak megenni, tehát a gsm modul és az avr lábai közé tegyél be egy nagyobb ellenállást, ami korlátozza az áramot. Most így a hasamra ütve azt mondom, hogy ez legyen ~10kOhm, akkor biztos nem nyiffan ki a védő dióda a túl nagy áram miatt. Ezt természetesen ki lehet számolni pontosan is, ha végigtúrod az adatlapokat.
(#) kovacsj válasza sikolymester hozzászólására (») Jún 11, 2011 /
 
Nagyon köszönöm, hogy időt szakítasz rám!

A modult a VBAT lábra kötött 3.4-4.4V-os feszültséggel kell üzemeltetni, ha jól látom.
Szerencsém van, mert van a modulnak egy VDD_EXT bemenete ami a külső áramkörök részére határozza meg a kimenő feszültséget. Ide 2.8V-ot kell kapcsolnom, és akkor minden bizonnyal beférek a 3.3V-os kontroller TX-RX tartományába.
Jól gondolom?

Köszönöm előre is!
(#) kovacsj válasza sikolymester hozzászólására (») Jún 11, 2011 /
 
VBAT viszont van három is. 50,51,52-es lábak. Ezeket minden bizonnyal össze lehet kötni. Jól gondolom? A VDD_EXT pedig a 7-es lábon van.
A sok GND-t is összeköthetem?

Köszönöm előre is!
(#) kovacsj válasza sikolymester hozzászólására (») Jún 11, 2011 /
 
Így teljes a kép.
Hülyeséget írtam. A VDD_EXT-ről kell táblálni a level shiftert.
(#) kovacsj válasza kovacsj hozzászólására (») Jún 11, 2011 /
 
Vajon ebben az esetben a bipoláris tranzisztor milyen legyen?
Köszönöm előre is!
(#) kovacsj válasza kovacsj hozzászólására (») Jún 11, 2011 /
 
Sziasztok!

Az Atmega128L Operating Voltages 2.7-5.5V.
Az én 4V-os GSM modulomat így sem lehetne összeilleszteni?
Az Atmega128L-nek nem adhatok 4V-ot?

Köszönöm előre is!
(#) Ricsi89 válasza kovacsj hozzászólására (») Jún 11, 2011 /
 
Te írtad, hogy 2,7-5,5V-ig működik. Akkor mi akadálya lenne a 4V-os tápfesznek?
(#) kovacsj válasza Ricsi89 hozzászólására (») Jún 11, 2011 /
 
Nem olvastam végig az adatlapot. De gondolom, semmi. És akkor közvetlenül köthetem össze az RX és a TX vonalakat?

Köszönöm előre is!
(#) kovacsj válasza kovacsj hozzászólására (») Jún 11, 2011 /
 
Nem akarok itt sokat értetlenkedni, inkább kipróbálom. Meg gondosan átolvasom az adatlapokat.
(#) huba válasza sikolymester hozzászólására (») Jún 12, 2011 /
 
Akkor újra barátkozok az avr stúdió 5-el. Valahogy megoldom.
Ezt az AVR ISP MK2-ot megépítetted? hol lehet elérni nyáktervet, beégetendő hex-et? Stabilabb az avr doper-nél?
(#) sikolymester válasza huba hozzászólására (») Jún 12, 2011 /
 
Megépítettem, de mint említettem egyelőre nincsen rajta szintillesztés. Tehát ő 5V-on ketyeg, és azt képes programozni, ami szintén 5Vos.

Nyákterv nem lelhető fenn neten, ellenben a teljes forráskódja a már korábban belinkelt oldalon található (itt). Ezt letöltve mindenki magának fordíthatja a hexet. A forráskód tartalmaz doxygen dokumentációt, ami minden részletben kitér arra, hogy mely lábai lesznek a programozó pinek. Ezzel és pluszban a kiszemelt AVR adatlapjával (különböző usb-s avrekkel is működik) egyetemben mindenkinek módja van arra, hogy megépítse a saját ispmk2 klónját.

Azt, hogy mennyivel stabilabb a programozó, arról nem tudok nyilatkozni, illetve nekem nem is volt nagyon rossz tapasztalatom a doper-rel. Az viszont biztos, hogy sokkal gyorsabb.

Ha szeretnétek, akkor feltehetem a mostani próba nyáktervem, ami jelenleg működik. Illetve folyamatban van egy szintillesztett programozó verzió is. Arról viszont csak akkor teszem fel a terved, hogy megbizonyosodtam, hogy tényleg működik.
(#) suhanc hozzászólása Jún 12, 2011 /
 
Sziasztok.
Cben avr studioban szeretnék megvalósítani egy nyomógomb számlálást ha megnyomom akkor hozzá ad egyet pl a "szamlalo" értékéhez.
erre egy kód részletet tudnátok adni?
köszönöm előre is:
Suhanc
(#) koncsik03 hozzászólása Jún 12, 2011 /
 
Helló!
Még soha sem építettem sem avr sem pic-es dolgokat de szeretnék megismerkedni vele.Legelőször egy avr programozót akarok építeni és kéne egy software is hozzá.
A segítséget köszönöm.
(#) yoman917 hozzászólása Jún 12, 2011 /
 
Sziasztok
Nem használtam még ADC-t próbálok rájönni, hogy hogyan kell. Áramerősséget akarok mérni, a fent említett Ellenállásos megoldással. Az AREF 5V, és a PORTA1-be megy be a mérendő feszültség. Attiny 24-et használok. Már sikerült konfigurálnom a lábakat, bár azért leírom, hogy hogyan csináltam:
DDRA=0xC0;
ADCSRA= (1< A haverom mondta hogy oldjam meg így: Uell=5V*ADC/1024. Tudnátok benne segíteni, hogy hogyan gondolta?
Üdv,
yoman>>>>>>
(#) sikolymester válasza suhanc hozzászólására (») Jún 12, 2011 /
 
AJánlom figyelmedbe a követlező sorozatot: http://www.hobbielektronika.hu/kapcsolasok/nyolc_labbal_i_resz.html

Biztos vagyok benne, hogy megtalálod a választ a kérdésedre. Illetve szerintem kezdj el áttúrni egyéb tutorial oldalakat is, mint pl. ezt: http://extremeelectronics.co.in/avr-tutorials/
(#) sikolymester válasza yoman917 hozzászólására (») Jún 12, 2011 /
 
Az ADC 10 bites, tehát 0 tól 1023ig vehet fel értékeket, ami ugye 1024 különböző állapot.

A barátod egy egyenletet mondott. Annyiban tévedett, hogy 1024 helyett 1023-t kell írni.

Uell = 5V/1023 * ADC

Ez ugye egy lineáris egyenlet. De hogy világosabb legyen:
y = 5/1023 * x

Az ADC mint említettem 10bites, tehát 0->1023 ig.
Tehát ez az egyenlet fogja megadni azt, hogy mekkora feszültséget mértél.

Gyengébbeknek illusztrálás: Bővebben: Link

A DDRA beállításokkal nem tudom mit szeretnél elérni, de van egy olyan gyanúm, hogy a 6,7 lábat szeretted volna bemenetnek állítani. Nos van egy rossz hírem, ezzel pont kimenetnek állítottad őket.
(#) Xgyula hozzászólása Jún 12, 2011 /
 
Sziasztok
Nem tudna valaki segíteni abba hogy a Topi féle avr programozót,hogy tudom használni winavr-el illetve a winavr-ben a fuse-t hol ill.hogyan kell beállítani.Ezt a hexet http://www.scienceprog.com/wp-content/uploads/2008/03/Firmware.zip szeretném betölteni atmega 16pu-ba Valószinüleg winavrrel szerkesztették,próbálkoztam awr studioval,de azzal nem jön össze
(#) yoman917 válasza sikolymester hozzászólására (») Jún 13, 2011 /
 
A 6,7 lábakat kimenetre akartam állítani, mert két digites 7 szegmensű kijelzőt szeretnék kapcsolgatni vele. Az egyenlet világos, rosszul tettem fel a kérdést, inkább ugy kérdezem, hogy miként tudnám beirni a programba? Engedélyezem Az ADC-t, azután meghatározom a referenciát feszültséget. De gondolom utánna nyílván nem írhatom be ezt szimplán. Ehhez kérnék egy kis segítséget.
(#) koncsik03 hozzászólása Jún 13, 2011 /
 
avr-el lehet órát készíteni?
(#) trudnai válasza koncsik03 hozzászólására (») Jún 13, 2011 /
 
Lehet.
(#) boldivi hozzászólása Jún 13, 2011 /
 
Sziasztok!

Soros portra szeretnék float, double változókat kiíratni, de a szám helyett csak egy "?" jelenik meg.
A következőképp jártam el:
  1. int printCHAR(char character, FILE *stream)
  2. {
  3.    while ((UCSRA & (1 << UDRE)) == 0) {};
  4.    UDR = character;
  5.    return 0;
  6. }
  7.  
  8. FILE uart_str = FDEV_SETUP_STREAM(printCHAR, NULL, _FDEV_SETUP_RW);
  9.  
  10. ...
  11.  
  12. double number = 123.45;
  13. fprintf(&uart_str, "number: %f",number);


Az AvrStudio4 beállítása:

Project ->
Configuration Options ->
Custom Options ->
[Linker Options] add: "-Wl,-u,vfprintf"

Project ->
Configuration Options ->
Libraries ->
Available Link Objects add: "libm.a" and "libprintf_flt.a"

A terminálra a következő kerül: "number: ?"

Előre is köszi a segítséget!
(#) Massawa hozzászólása Jún 13, 2011 /
 
Ŕtraktam az áramkörömet az univerzális NYŔKról az erre a célra készitett NYŔKra, de azon nem akar menni a dolog.
Az AVR2313 kimenetére egy ULN2003-son keresztül kapcsolodnak a LED-ek, de az AVR kimenete csak 0-1.06V tartományban változik, ami nem elég az ULN meghajtására. Ha kiveszem az ULN-t akkor a kimenet 1,3 - 5 V tartományban változik (ki/bekapcsolva). Emiatt sajnos az ISP port sem ismeri fel az AVR-t. Ha kiveszem az ULN-t akkor sem .
Rövidzárlat nincs (legalábbis nem találtam), ha kiveszem az AVR-t a foglalatból akkor egy 1,5 kOhmos ellenálláson keresztül minden LED kapcsolható. Ha bedugom az ISP csatlakozot (az ULN-ek is helyükön vannak) akkor az AVR 17,18 és 19-es kimenetére csatlakoztatott LED-ek rendesen világitanak ill. villognak ha a DRAGON-on elinditom a debuggert.

Az univerzális porhoz képest az egyetlen különbség, hogy azon ULN2803A-s meghajto van (elvileg belül ugyanolyan felépitésü mint az ULN2003A csak eggyel több meghajto van benne.

A feszültségek is stimmelnek. Nem tudom méh hol keressem a balhét.

Minden ötlet jól jön. Kösz!
(#) sikolymester válasza boldivi hozzászólására (») Jún 13, 2011 /
 
Szerintem ezzel próbáld:
-Wl,-u,vfprintf -lprintf_flt -lm

Illetve így írd ezt a részt, mivel ha jól látom csak írni szeretnél:

  1. FILE uart_str = FDEV_SETUP_STREAM(printCHAR, NULL, _FDEV_SETUP_WRITE);


Én jómagam sikerrel beizzítottam ezt a FILEStream dolgot, a következő oldal alapján: Bővebben: Link
Következő: »»   331 / 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