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
Az aramerosseg honnan jott? Vagy ennyit kene leadni a DA konverternek?
Szerzel egy tranzisztort vagy fetet. Azt meghajtod a pwm-mel. Erre rákötsz egy alul áteresztő szűrőt. A kimenő feszültséget visszaolvasod az ADC-vel és az egészet megfejeled egy zárt hurkú szabályozással szoftverből. A zárt hurkú szabályozásra egy PI szabályzó tökéletesen megfelelő lesz neked.
A maximális áramerősséget a tranzisztor vagy fet képessége határozza majd meg.
Sziasztok!
Sajnos még elég felületesen ismerem az AVR-t. Van egy kapcsolásom ami 8db bemenetet figyel és 8 kimenetet kapcsol. Az, hogy melyik kimenetet mikor és milyen feltételek szerint kapcsolja azt logikai kapuk dötik el DIP kalcsolók állásának függvényében. A gondom ott van, hogy nyákot nem tudok a kívánt méretben készíteni hozzá. Sok a logikai kapu és felétel a bemeneten. Egy kimenetet 6 igaz/hamis feltétel ellenőrzése után kapcsolok be/ki. A kíván méretben ezt képtelen vagyok CMOS IC-kből legyártani. Már 2 oldalas nyákot tervezek SMD alkatrészekkel,de a 13 IC 10 tranzisztor 2x8 DIP kapcsoló, 24db tüske és ellenállás meg kondi nem fér el. A legtöbb helyet az IC-k és huzalozásaik foglalják. Melyik az az AVR amelyik képes ezt a 8-be 8-ki feladatot ellátni? Tranyókat kiváltom ULN mezőkkel, de a temérdek logikai feltételt jó lenne, ha egy IC elvégezné a 13 helyett. Szerk.: Kell egy időzítő kimenet is ami 3 másik kimenet kapcsolást késleltei.
Barmelyik, amelyiknek van 16 db I/O laba. Szerintem neked a tiny csaladbol is eleg valasztani: ATtiny167, ATtiny2313, ATtiny2313A, ATtiny26, ATtiny261, ATtiny26A, ATtiny40, ATtiny4313, ATtiny4313U, ATtiny461, ATtiny461A, ATtiny48, ATtiny861, ATtiny861A, ATtiny87, ATtiny88.
Azt valaszd amelyik kaphato es a legolcsobb.
A frekimérős témához hozzászólva úgy döntöttem, hogy meg fogom építeni a saját frekimérőmet is, AVR-el.
Az építés hátteréről és a mérési elvről (ha összejön) szívesen cikkeznék is ha van rá igény. A frekvenciamérővel szemben kb. ilyen igényeket támasztok, jelenlegi tudásommal megvalósítható: - mérési tartomány: 0.01Hz-1.1GHz - automatikus méréshatárváltás(Hz,kHz,MHz) - 1kHz alatt 0.01Hz-es felbontás - 1-10kHz között 0.1Hz-es felbontás - 10kHz fölött 1Hz-es felbontás - 10MHz fölött 1-100Hz-es mérési hiba - mérési idő: 320ms - nagyon kis frekvenciáknál mérésidő elnyújtás(~2-3 sec) - ha az elnyújtott idő sem lenne elég, a nagyon kis frekvencia(~0.01Hz) akkor is kijelezhető legyen. - periódusidő (opcionális) kijelzése automatikus méréshatárváltással(ns,ms,s) A mérési elveket(4 féle üzemmódot) már leírtam egy rövid bevezetővel, ezt csatolom mert nem túl rövid! A bemeneti fokozat kialakításánál lehet hogy egy kis segítség is kelleni fog. Az osztót MC12022-vel képzelem el, ez 128-al oszt, 1.1GHz-et tud, és ráadásul nagyon olcsó(~50Ft).
Jól hangzik!
Open source projekt lesz majd?
Azt még nem tudom. Jelenleg úgy tervezem hogy a mérési alapelveket a kódrészletekkel együtt
biztosan kiadom, a teljes, működő kódot viszont megtartanám - érthető okok miatt... A panelterv, kapcsolási rajz és hex fájlok azonban hozzáférhetőek lesznek bárki számára.
MC12022LVA / MC12022LVB, vagy MB501L.
A bemeneti illesztést valahogy meg kéne még oldani hogy kapcsolgatás nélkül 2V-400V között is menjen.
Na akkor megsem vagyok bena, hogy a szamlalok kozott nem talaltam
Kiváncsi leszek arra az osztora, ami 1 GHz-t és 400 V-t tud.
Annak ugyan nem örülök, hogy a teljes kód nem lesz hozzáférhető, de ha kód részletek megjegyzésekkel és kapcsolással cikk formájában hozzáférhetőek lesznek, már azzal sokat segítesz majd mindenkinek, akit érdekel a téma! Már az előző bejegyzéshez csatolt leírás is igen hasznos és korrekt volt! Nagyon várom a fejleményeket!
LMH7322. A bemenetre egy ellenallas osztot kell kotni, ugy, hogy 1.5V-os bejovo jelet le kell osztani kb. 20mV-ra(ez a komparalas also kusszobe). 5V-os tap eseten 3.3V-os maximalis bemeno amplitudot visel el a komparator ic, igy akar 247.5 V-ig is hasznalhato lesz a kapcsolas. ECL differencialis kimenete van (Upp=670mV), az osztodnak pedig differencialis bemenete, egyedul a szintillesztest kell megoldani, de szerintem, ha kapacitasokkal csatolod jo lesz.
Nem tudom mit jelent az érthető ok. Fel tudnál világosítani?
Ugyanis a GPL vagy Creative Commons licenszek teljes mértékben megvédenek téged mint szerzőt! Az utánépítést lehetővé fogod tenni. Akkor egyszerűen nem értem. Egy szabadszoftver hívő!
Szerintem a v*terát/ebay-t nem sűrűn látogatod...
Kérlek olvasd el EZEN AZ OLDALON a legutolsó bekezdést, teljes mértékben osztom a véleményt.
Akkor vedenek meg, ha van idod es penzed pereskedni es meg ugy sem er sokat. A jogi vedelem egy nagy kamu, az MS szoftvereit is lopjak derekasan, hiaba van jogi vedelem. Raadasul egy uC-ben futo programrol vagy egy binaris allomany alapjan meg nehezebb bizonyitani, hogy a te forrasodat is felhasznaltak benne.
Akkor sem értem. A GPL vagy CC licenszek pont a nyíltságról szólnak. Széles körben kell terjeszteni és akkor nem vehetik el a dicsőséget!
Továbbra sem értem. A forráskód kiadása a legjobb választás. Az utánépítésre lehetőséget adtok akkor miért kell a forrást bezárni? Biztos én vagyok az értetlen.
De én nem is értek a programozáshoz különösebben. Tudom ez az én bajom! Idézet: „Ugyanis a GPL vagy Creative Commons licenszek teljes mértékben megvédenek téged mint szerzőt!” Ez igy ebben a formaban nem igaz! minden licence csupan arra jo, hogy jogi alapod legyen perelni es legyen lehetoseged megvedeni az intellektualis tulajdonjogaidat. De megvedeni onmagaban nem ved meg, neked kell perelni es bizonyitani, hogy a masik a Te mnkadat hasznalja fel illegalisan. Kerdes, hogy mennyi penzed van ugyvedekre es pereskedesre... GPL -bol is amugy tobb valtozat van, es meg a 2-es valtozatban is van arra lehetoseg, hogy termekbe beepitsek a kodot. Ezert jott letre a 3-as valtozat, de az meg a sajat jogaidat is elveszi, szoval sokan nem szeretik.
Sziasztok!
Tegnapi kérdésem kicsit szétszórt volt. Most megpróbálom összeszedni: Terveztem egy hűtés/fűtés vezérlőt ami kicsit "bonyolultra" sikerült. A gondom ott kezdődik, hogy 8x20 cm nyákra kellene ráférnem, de hiába a két oldal az SMD alkatrészek nem jön össze. Jelenleg 11x24 cm Mivel 3 napja ezzel szenvedek elkezdtem gondolkodni az AVR-be. De itt meg a gondom, hogy ezt egy uC-vel lehet-e kezelni és, ha igen melyikkel? Kis prgoram instrukció sem ártana. A kapcsolás működése tömören: Adott 8db benet és 8+3 kimenet valamint pár jumper és kapcsoló. Egy bemenetet nézve: 24VAC-t kapcsolnak a termosztátok ezt opto-val leválasztom. Ha bekapcsol egy termosztát akkor két dolog történhet: 1. Egyből tovább megy a jel 2. 4077 IC a hűt/fűt kapcsoló állása alapján invertál Itt jumper-el döntöm el, hogy a kapcsolának kell a jelet forgatnia vagy a termosztát tudja, hogy hűteni vagy fűteni kell Következő lépés, hogy megnézem az adott kimenet csak fűtésen működhet vagy működhet fűtésen és hűtésen. Ezután a bemenethez tartozó kimeneti relé meghú és, ha ő az első akkor elindul egy időzítő ami 0-10 perc között potival állítható. Ha letelt az idő akkor ott van 3db relé. Első mindenképpen bekapcsol. Második csak akkor, ha a rendszer hűtésen van és engedélyező jumper zárt. Harmadik csak akkor, ha a rendszer fűtésen van és engedélyez jumper zárt. És mindezt 8x. Persze a +3db kimeneti relét csak 1x kell figyelni/időziteni. Arról nem is beszélve, hogy a termosztát bemeneteken van egy kézi kapcsoló is amivel egyből indítható egy fűtési/hűtési kör a termosztáttól függetlenül. Nos ennyi logikát és feltétel szerenék lekezelni. Gondolom, ha a DIP kapcsolókat és jumpereket is szeretném kihagyni akkor már memória is kellene és kijelző, hogy lehessen módosítani és látni a beállításokat. Nagyon örülnék az építő/segítő hozzászólásoknak! Köszönöm!
1. Továbbra sem értem a zártságot!
2. Tisztában vagyok a GPL és CC licenszekkel. 3. Ha odaadom a használható binárist akkor miért ne adnám oda a forráskódot is!? Utánépítésre adok lehetőséget vagy sem? Ha igen akkor miért a zárt kód? De nem akarok itt én ezen vitatkozni. Nekem igen sarkallatosak a nézeteim szoftver kérdésben.
Ha majd te szenvedsz napokat/heteket/hónapokat egy program miatt, akkor azt te sem szívesen tennéd közzé, hogy más copy/paste-val lenyúlja.
Után-építhetőségre mint mondta lehetőséget ad, hiszen a hex fájlt közzé teszi.
Ez nem a dicsosegrol szol, hanem munkarol es penzrol.
Olvass vissza, adtam valaszt a kerdesedre.
Igen olvastam. Bármely 16 I/O IC.
Akkor sem értem, hogy hogyan bírná ezt kezelni. 8 be és 8+3 ki. Ez már 19 és még ott van a 8 bemenethet 16 állapot kapcsoló. Oké ezt elhagyom és a 16 állapotot szoftveresem állítom be. Ehhez már kell LCD kijelző is és memória. Hogy lássam és beállítsam az állapotokat és persze tároljam. Lehet én gondolom rosszul, de akkor mond el kérlek, hogy mi a hiba a gondolatomban. Nem áltom át, hogy 16 I/O lábbal ennyi mindent megoldjak. Pedig maga lenne a kánaán!
Ne haragudj, nem adogattam ossze a legutobbi irasod alapjan az I/O labak szamat, multkor pedig csak 8+8 kellett neked. Vannak nagyobb labszamu peldanyok is, szerintem az atmel honlapjan valasszal ki egy neked megfelelot. Idozito mindegyikben van, arra nem is kell szurnod. Mivel eddig logikai kapukkal is meg tudtad oldani a feladatot, ez ezt jelenti, hogy memoria es programtar korlat sem szamit, mivel egyszeru a feladat.
Mit is szeretnél akkor? Megtanulni programozni, vagy hogy valaki elkészítse helyetted? Egyszerű a feladat, de mire tényleg bugmentes lesz, az nem a "fél órás meló" kategória.
Idézet: „1. Továbbra sem értem a zártságot!” Emiatt ne masokat hibaztass Idézet: „2. Tisztában vagyok a GPL és CC licenszekkel.” Senki sem vonta ezt ketsegbe! Idézet: „3. Ha odaadom a használható binárist akkor miért ne adnám oda a forráskódot is!? Utánépítésre adok lehetőséget vagy sem? Ha igen akkor miért a zárt kód?” HEX-et be lehet egetni a kontrollerbe, ahhoz nem kell forraskod, tehat az utanepites lehetseges igy is... Idézet: „De nem akarok itt én ezen vitatkozni. Nekem igen sarkallatosak a nézeteim szoftver kérdésben.” Azt erzekelem, de ha annyira nagy hive vagy a szabad szoftvereknek akkor engedd meg, hogy a szoftver keszitoje szabadon eldonthesse kozkincse ohajtja-e tenni a sjat munkajat!
Első körben - szerintem - el kellene döntetni, hogy a beállításokat milyen módon akarod rögzíteni a beállításokat, pl.:
1, Ledekkel + nyomógombok 2, LCD kijelző + nyomógombok 3, külön eszközzel 4, számítógépről A ledes megoldáshoz a 8 (+3) kimeneteken jelenik meg valamilyen logika szerint a beállítás. Ekkor "programozó" módban a valahogy le kell választani a vezérelt eszközöket: pl.: egy 2 állású kapcsoló egyik állásban GDN-re húz egy bemeneti portot másik állásban a reléknek ad GND. LCD kijelző használatoz alap esetben 4+2 port-ra lesz szükséged. A kiementi portokon lehet spórolni, ha 1 vagy 2 shift regisztert (pl.: 74 xx 595) teszel be, mert így 3 porttal (MOSI, SCK, SS) 16 kimenetet tudsz vezérelni. Ha több vezélőt kell ritkán beállítani, akkor vagy egy LCD+gombos külön eszközt és/vagy számítógép is szóba jöhet, mert az LCD-s eszköz csak a beállításhoz kell. Ekkor pl. soros porton keresztül állítod be a vezérlőt amihez elég 2 port (TXD, RXD). Soros portos beállításhoz elég lehet egy Attiny2313 + 2db shift regiszter (TXD,RXD beállításhoz, MOSI, SCK, SS a shift regiszterhez, PD2,PD3,PD4,PD5,PD6,PB0,PB1,PB2 pedig a bementekhez lesz felhasználva). Egy beállító eszközhöz is elég egy Attiny2313, mert itt kommunikációhoz használod a TXD, RXD portot, LCD-hez, pl. PB2-PB7 portokat, 4 gombhoz pedig a PB0,PB1,PD4 és PD5 portokat. Ha LCD-t rá akarod tenni a vezérlőre akkor egy Atmega8 jobb választásnak tűnik, pl.: shift regiszterek: MOSI, SCK, SS bemenetek: PC0-PC5, PD0, PD1 LCD: PD2-PD7 Gombok: PB6, PB7, PB0, PB1 (+,-,Ok,Mégsem) A beállításokat pedig el tudod tárolni az AVR eeprom-jában, ehhez nem kell külön memória.
Vannak AVR-ek amelyeknek ettől sokkal több lábuk van. Azt, hogy milyen bonyolultságú programok és logikák valósíthatók meg, annak csak a képzelet szab határt.
Legdurvább esetben fogsz egy ARM9 -est, megkened DDR2 memóriával és futtatsz rajta Androidot. |
Bejelentkezés
Hirdetés |