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
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.
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.
UI: Van kesz opensource kod is hozza, fx2lafw neven fut. Nagyon egyszeru kod, 250 sor C-ben es 250 sor Assembly-ben.
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.
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.
Ertem. Nem tudtam, hogy csak tanulni akarsz, azt hittem, hogy analizator kell neked.
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
Van mindegyikben EEPROM. 8bit szervezésűek, de programban kezelhető több bájtként is akár...
Na az jó. Bascomban hogy tudok rájuk hivatkozni írni/olvasni?
Erre egyszerű a válasz: ez van itthon. De lehet nézek majd kisebbet, két port bőven elég nekem
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!
Erre egyszerű a válasz: ez van itthon. De lehet nézek majd kisebbet, két port bőven elég nekem
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.
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.
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
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 ![]()
Akkor nincs gond, egyedül csak a késleltetéssel kell számolni. Az STK500 programozómba így megy:
A hozzászólás módosítva: 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.
É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
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. ![]()
Hasznalj megszakitasos EEPROM kezelest es tartsal egy tukrot a memoriaban.
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
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.
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 ?
Jól olvastad, úgy szokás.
Kapcsolásokat nem igazán találtam..egyszerűen csak egy dupla schottky és kész, semmi további ?
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
Meg FET-tel is szokas, kerdes az, hogy mekkora akksikrol es aramrol van szo.
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. |
Bejelentkezés
Hirdetés |