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   481 / 840
(#) sikolymester válasza Reggie hozzászólására (») Szept 12, 2012 /
 
Hát, ha már dobálózni lehet, hogy mivel lenne istenkirály egy logikai analizátor, akkor én az FPGA-ra teszem a voksom.

Ettől függetlenül az az érzésem, hogy az Arduinóval egy kezdő könnyen összeüt egy logikai analizátort, míg egy FPGA-val a haja is kihullana.

Nem hiszem, hogy értékes tanács volt ez tőled egy olyan fórumon, ahol jellemzően kezdők tesznek fel kérdéseket.
(#) Reggie válasza sikolymester hozzászólására (») Szept 12, 2012 /
 
Ez nem csak dobalozas, hanem komolyan irtam. Az EZ-USB FX2-t nagyon konnyu programozni, mivel 8051 alapu(igy AVR-hez azert kelloen kozel all), normal *QFP tokozasban is van. Flash nincs benne, hanem amikor radugod USB-re akkor kell letolteni a programot, igy nem is tudod kizarni magad es kb. 2000 forintba kerul. (Farnelnel 4000)
FPGA-val feleslegesen draga lenne, plane hogy USB illesztest csak ugy nem fogod megoldani.
(#) Reggie hozzászólása Szept 12, 2012 /
 
UI: Van kesz opensource kod is hozza, fx2lafw neven fut. Nagyon egyszeru kod, 250 sor C-ben es 250 sor Assembly-ben.
(#) tursaba hozzászólása Szept 13, 2012 /
 
Szerintem, ha csak a kijelző és tranzisztor rész bekötését tennéd fel a uP nélkül (mert nincs meg a könyvtáradban), akkor biztosan tudnának segíteni a fórumom.
A mondat végén tedd ki a pontot.
(#) csabeszq válasza Reggie hozzászólására (») Szept 13, 2012 / 1
 
Arról van szó, hogy jelenleg van egy arduinom, mert megvettem.
Maximum 10 kHz-es analizátor kell, annál több nem, a legolcsóbb megoldás ennél fogva a meglévő Arduinot használni.

150-200-ért egyébként szerintem simán kapni analizátort és akkor dolgoznom sem kell semmit, csak fizetni.

Na most a problémám is éppen ezzel van, mert ha fizetek, akkor a pénzem kevesebb lesz és kb. ugyanolyan nyomi maradok, mint most vagyok. Szóval olyan megoldások érdekelnek, ahol dolgozni kell, programot írni, kísérletezni, ismerkedni és emellett olcsó is legyen. Erre pedig a meglévő Arduino tökéletes.

Az, hogy most logikai analizátort csinálok-e éppen, vagy LED-et villogtatok, a feladat szempontjából mellékes. Igyekeztem olyan projektet választani, amit a későbbiekben használni is fogok és kellő kihívás is van benne.
(#) Reggie válasza csabeszq hozzászólására (») Szept 13, 2012 /
 
Ertem. Nem tudtam, hogy csak tanulni akarsz, azt hittem, hogy analizator kell neked.
(#) 06smici hozzászólása Szept 13, 2012 /
 
Sziasztok.
AVR-eknél van valami olyan memória, ami megőrzi az értékét táp lekapcsolása után is? Egy sima számlálót tervezek építeni és nem lenne szerencsés ha egy áramszünet után elfelejtené hol tartott. mega644p-t használnék hozzá nem tudom abban van-e valami ilyesmi funkció? Ja igen azt elfelejtettem írni, hogy jó lenne ha ez a memória legalább word hosszuságú lenne.

Vagy egyszerűbb lenne egy kis aksit berakni mellé és akkor áramszünet alatt csak a kijelzőt kapcsolom le. ilyesmire gondoltam. Csak ebből meg nem találtam 5V-os kivitelt. Bár valahol mintha olvastam volna hogy a mega 644p már 2,7V-tól működik. A másik probléma meg hogy ezekhez kéne valami töltő elektronika is nem?
Bocsi a sok amatőr kérdésért, nem nagyon ismerem az AVR-ek fajtáját. Na meg az aksikat se. De remélem mire elkészül ez a project már többet fogok tudni róluk
(#) zolee1209 válasza 06smici hozzászólására (») Szept 13, 2012 /
 
Van mindegyikben EEPROM. 8bit szervezésűek, de programban kezelhető több bájtként is akár...
(#) 06smici válasza zolee1209 hozzászólására (») Szept 13, 2012 /
 
Na az jó. Bascomban hogy tudok rájuk hivatkozni írni/olvasni?
(#) blackdog válasza 06smici hozzászólására (») Szept 13, 2012 /
 
ATMEGA644 2Kbyte EEPROM 4Kbyte SRAM 64Kbyte Flash
32 I/O láb.
Minek egy számlálónak ekkora MCU?

Bascom
(#) 06smici válasza blackdog hozzászólására (») Szept 13, 2012 /
 
Erre egyszerű a válasz: ez van itthon. De lehet nézek majd kisebbet, két port bőven elég nekem
(#) zombee válasza 06smici hozzászólására (») Szept 13, 2012 /
 
Van EEPROM, de "csak" 100000-szer írható, és egy bájt írása kb. 3-4ms ideig tart.
Ha a számlálód gyorsabb akkor lényegében felejtős, de pl. kilométerszámlálónak még elmegy.
Órába max. az ébresztős időpontokat tárolnám, de az óra állását semmiképp, akkor inkább akksi!
(#) 06smici válasza blackdog hozzászólására (») Szept 13, 2012 /
 
Erre egyszerű a válasz: ez van itthon. De lehet nézek majd kisebbet, két port bőven elég nekem
(#) 06smici válasza zombee hozzászólására (») Szept 13, 2012 /
 
Teljesen jó ez a belső eeprom. Max 6500ig kéne neki elszámolni és lesz rá pár év, szóval az idővel sincs gond. Lényegében ha nyomnak egy gombot akkor fog számolni egyet és ezt jelzi ki. Igazából nem nagy feladat az egész, de nekem kezdőként egy jó gyakorlás.
(#) blackdog válasza zombee hozzászólására (») Szept 13, 2012 /
 
Idézet:
„Van EEPROM, de "csak" 100000-szer írható, és egy bájt írása kb. 3-4ms ideig tart.”

Én most pont ezen kínlódom. Pár esemény szertnék az EEPROM-ba rögzíteni és néhány alapbeállítást. Ez napi kb. 30-40 irás/olvasás. Ami 6,8 év élettartamot jelent. Ezt még talán el is tudnám fogadni, de az írási sebesség az kritikus. Ezért is használok 16 MHz oszcillátort.
Bár az adatlap ezt írja a sebességről:
Idézet:
„When the EEPROM is read, the CPU is halted for four clock cycles before the next instruction is executed. When the EEPROM is written, the CPU is halted for two clock cycles before the next instruction is executed.”

Tehát elvileg kristály függő. De szívesen veszek minden jobb, gyorsabb, tartósabb esetleg nagyobb tároló kapacitással bíró megoldást.
Az igazi az SD kártya használata lenne, de ahhoz túl kezdő vagyok és még nem látom át a működést.
(#) blackdog válasza (Felhasználó 15355) hozzászólására (») Szept 13, 2012 /
 
SRAM-ból hirtelen ezt találtam: Bővebben: Link
Ez temérdek lábat felemészt az AVR-n.
Nekem csak az SCL/SDA (I2C) lábak maradtak szabadon külső memória kezelésére
A hozzászólás módosítva: Szept 13, 2012
(#) blackdog válasza (Felhasználó 15355) hozzászólására (») Szept 13, 2012 /
 
SPI-n már van egy shift register ami tranzisztor mezőt vezérel. Ezek a kimenetek ezt nem szeretném bántani.
Közben találtam 24LC1025 EEPROM ami I2C és 8db fűzhető össze. Nekem már kettő is maga a kánaán. Csak most azt számolgatom, hogyha az IC teljes tartalmát épp kiolvasom USART-on keresztül (RS232) akkor mennyire áll meg a fő program futása.
Kicsit zavar, hogy a '80 évek logikája szerint kell programozni. Hiányzik a multi-theader
(#) zombee válasza 06smici hozzászólására (») Szept 13, 2012 /
 
Akkor nincs gond, egyedül csak a késleltetéssel kell számolni. Az STK500 programozómba így megy:
  1. #include <avr/eeprom.h>
  2. #define EEPROM_MINOR            ((uint8_t*)1)
  3. uint8_t CONFIG_PARAM_SW_MINOR;
  4. //írás:
  5. eeprom_write_byte(EEPROM_MINOR, CONFIG_PARAM_SW_MINOR);
  6. //olvasás:
  7. CONFIG_PARAM_SW_MINOR=eeprom_read_byte(EEPROM_MINOR);
A hozzászólás módosítva: Szept 13, 2012
(#) sikolymester válasza blackdog hozzászólására (») Szept 13, 2012 /
 
Hadd erdeklodjek, azt mondod napi 30 byteot akarsz irni, akkor miert olyan fontos ezt baromi gyorsan tegye? Csak akad napi 100ms szabad ido, amikor eepromba irhatsz.
(#) zombee válasza blackdog hozzászólására (») Szept 13, 2012 /
 
Én azt mondom, belső EEPROM-al jobban jársz.
Ha növelni akarod az élettartamot akkor csinálhatod azt hogy szavanként(uint16_t) írsz, majd ha eléred a 65534-et akkor többé nem írsz oda, hanem a következő szóra lépsz és nullát írsz rá(vigyázz! a cím kettesével növekszik!). Ahány 65534-et számolsz, annyiszor 65534-et hozzá kell adni az értékhez.
A 65535-öt nem használhatod, ez jelzi a "szűz" területet. Ez a módszer a lehető legegyszerűbb wear leveling. Az algoritmus pazarló, de minimális a számításigénye.
A hozzászólás módosítva: Szept 13, 2012
(#) blackdog válasza sikolymester hozzászólására (») Szept 13, 2012 /
 
Elnézést! Rosszul fogalmaztam. A napi 30-40 irás/olvasás nem byte-ot jelent hanem alkalmat. Persze az esetek 99%-ban byte hiszen sok infó elfér 1byte-ban is. Szóval igazad van.
Előzetesen úgy számoltam, hogy az AVR belső EEPROM az igényeimnek megfelelően kb. 31 napi infót tud tárolni. Ezt szeretném bővíteni. Minnél több infót tárolok annál lasabb a kiolvasás ami a program futásának a rovására megy.
És ott van még az RS232 amivel nem számoltam mert bármikor csatlakozhat és adatokat kérhet. Akár a teljeset és akár max. üzemben amikor minden perc számít. De lehet csak én vagyok túl maximalista.
(#) Reggie válasza blackdog hozzászólására (») Szept 14, 2012 /
 
Hasznalj megszakitasos EEPROM kezelest es tartsal egy tukrot a memoriaban.
(#) JOCO10 hozzászólása Szept 14, 2012 /
 
Sziasztok
Egy Atinny2313 SO tokos procit a cél áramkörben szeretnék programozni Doper programozóval. A céláramkört 3.3v-tal táplálom. A proci kibirja 5v feszültséget a clok, mosi,miso, reset lábon, ha 3.3v a tápfeszültsége ? Ha nem, hogy lehet megoldani?
Előre is köszönöm a válaszokat.
A hozzászólás módosítva: Szept 14, 2012
(#) sikolymester válasza JOCO10 hozzászólására (») Szept 14, 2012 /
 
Nezdd meg az adatlapot. Nem birja ki.
De ha megnezed a IO labakat az adatlapban, akkor latod a vedodiodakat.Tehat tegyel 10k ellenallast sorba a programozo bekotesnel minden labra es nem lesz gond.
(#) boomerang hozzászólása Szept 14, 2012 /
 
Sziasztok.
Egy AVR-es mérőműszerhez szeretnék dupla akkumulátoros ellátást csinálni. 1 darab dupla schottky diódával azt olvastam, hogy meg lehet csinálni. Vélemények ?
(#) sikolymester válasza boomerang hozzászólására (») Szept 14, 2012 /
 
Jól olvastad, úgy szokás.
(#) boomerang válasza sikolymester hozzászólására (») Szept 14, 2012 /
 
Kapcsolásokat nem igazán találtam..egyszerűen csak egy dupla schottky és kész, semmi további ?
(#) zombee válasza JOCO10 hozzászólására (») Szept 14, 2012 /
 
Az AVR-ek CMOS IC-k. A dupla schottky arra szolgál hogy a portlábon ne legyen GND-nél kisebb,
és VCC-nél nagyobbfeszültség, ugyanis ezt a CMOS áramkörök nem bírják.

Illesztés AVR-Doperhez:
A Doper kimenetén is CMOS IC van, általában 5V-ra kötve, közvetlenül nem szabad 3.3V-os AVR-re kötni.
5V-3.3V illesztésre én 150-220Ohm ellenállást javaslok, de a MISO-ra mehet akár 10kOhm is.
A 10kOhm minden programozólábra őrültség! Gondolj bele, ha van ott egy nyomógomb 1kOhm felhúzó ellenállással, esetleg tranzisztor, vagy a RESET láb 10kOhm felhúzóval, vagy valami más IC bekötve:
SOHA az életbe nem programozod fel, amíg ki nem kötöd a "zavaró" elemet...

Én így számolok: a védődiódák (adatlap szerint) 10mA áramot még bőven elviselnek(25mA-re méretezik).
A diódák nyitófeszültsége minimum 0.3V. Az ellenállásokon így 5V-3.3V-0.3V=1.4V esik.
A minimális ellenállás így 1.4V/10mA = 140Ohm lesz. A MISO-ra azért tehetsz nagy ellenállást,
mert az az AVR-ből megy a programozóra, azon nem esik feszültség(áram alig folyik rajta).

Szerk: Azért nincsen lehetőség a színekre, hogy ne használjátok.
A hozzászólás módosítva: Szept 14, 2012
(#) Reggie válasza sikolymester hozzászólására (») Szept 14, 2012 /
 
Meg FET-tel is szokas, kerdes az, hogy mekkora akksikrol es aramrol van szo.
(#) sikolymester válasza boomerang hozzászólására (») Szept 14, 2012 / 1
 
Mindkét diódát sorban bekötöd mindkét táp bemenő vezetékére.
Ami gyakorlatban fog történni, az az, hogy abból az akksiból folyik az áram, aminek nagyobb a feszültsége.

Hmm, most hogy ezt így leírtam, mit is szeretnél pontosan elérni?
Azt, hogy menet közben tudjál akksit cserélni? Vagy két akksiról akarod egyszerre táplálni, amolyan párhuzamos bekötésben?

Ha az előbbi, akkor jó lesz neked a dióda. És amúgy igaz, minden ami p-n átmenetként viselkedik jó lesz neked így a FET is.
Következő: »»   481 / 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