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
Milyen tipusu kijelzo? Az elobbi hozzaszolas kozos katodu kijelzonel ervenyes. Kell elotet ellenallas az anodokra is (mind a 7 szegmensre). Ez mondjuk a kitoltestol fugg.
Szia!
A hardverhez még 1-2 gondolat: - A LED kijelzőkre menő vonalakba is kell tenni áramkorlátozó ellenállást. 330 Ohm általában jó (5V-os táp esetén). - A kontroller RESET lábát magasba kell húzni egy 10k-s ellenállással. Esetleg egy nyomógombot is érdemes lehet betenni, hogy szoftverfejlesztés közben tudd resetelni. - A kontroller VCC lába és a föld közé illik tenni egy 100nF-os kerámia kondenzátort. - ISP csatlakozó, amin keresztül fel tudod programozni (hacsak nem akarod a céláramkörön kívül felprogramozni ). - Ha közvetlenül PC soros portjához szeretnéd csatlakoztatni, akkor kell egy szintillesztőre is szükséged lesz. Például MAX232... Vagy USB-s is lehet egy FT232RL típusú IC-vel, ami gyakorlatilag egy USB-soros híd. Ebben az esetben a tápfeszültség is rögtön előállt... Hátránya, hogy csak SMD tokozásban létezik. - És persze az előttem említett NPN tranzisztorok. Üdv: Bálint
A kapcsolási rajz alapján közös katódú. A szegmensekhez tényleg elfelejtettem odaírni az ellenállást a nagy sietségemben.
Sosem tudtam, hogy miért kell a Reset lábat egy ellenálláson keresztül magas szintre húzni, éppen ezért sosem tettem meg, eddig mindig működött. Miért kell?
Sziasztok szeretném felprogramozni a Topi féle AVR-Doperben lévő Atmega8-at egy STK200-al és a Ponyproggal ,kérdésem a fuse biteknél mit kell beálítani? Előre is köszönöm
A beállítás alapján vissza tudod keresni az adatlapból a High és Low bitek beállítását.
Igazad van, annyira nem fontos, van neki egy beépített felhúzó ellenállása. Én úgy automatikusan tettem rá, mert láttam magasban kell lennie
Értem. Köszönöm!
Csak kíváncsi voltam, mert több helyen is láttam ilyet, de gyakran el is hagyták. Gondoltam hogy van belső felhúzó ellenállása, ezért mertem elhagyni. Mondjuk csak rá kellett volna mérnem multiméterrel.
Köszönöm a hozzászólásokat, módosítani fogom a hardvert ezek alapján. A szoftverhez csak annyit, hogy ez valóban egyszerűbb amit írtál, én az elméletet itt a hobbielektronikán a hétszegmenses kijelzők megajtása című cikk adta. Na jó lehet hogy nem ez a pontos címe, de valami ilyesmi. a kijelzőt egy másik kapcsolásról "portoltam" és ott ilyen tranzisztorok voltak, amin az emitter a bázis felé mutat. Típust is tudok mondani: BC559. Ez a PICes kapcsolás pedig a
Ham_Radio_India oldalról származik legalábbis 2009.08.29 ei állapot szerint még. De köszönöm mindenesetre. A RESET 10K val magasra húzást férfiasan bevallva nem tudtam A szintillesztéshez viszont lenne egy kérdésem. Biztos hogy fontos az a MAX232 ? ugyanis Persze nem PCről akarom használni, de láttam már olyan kijelzőt, lásd Micra Eco Prof vevőkijelzője, amiben szintén nincs ilyen, de megy PC ről. Jó ez sem PChez van kitalálva.
Ha PC-re akarod kötni, akkor mindenképpen, mert az RS232 szabvány +/- 3V...15V közé eső logikai szintekkel dolgozik, míg az AVR-ed 0V és 5V szintekkel. Persze nem csak MAX232-vel lehet, 1-2 tranzisztorból álló szintillesztőt is használhatsz. Pláne neked csak fogadni kell az adatot...
Ha egy másik kontrollerrel akarod összekötni, akkor lehet közvetlen is.
Köszi a segitséget de kezdö vagyok ebben ,így a segitséged nem igazán volt egyértelmű.
A dolgot még egyszer átgondolva, PNP tranzisztorral is fel lehet építeni, a különbség annyi lesz, hogy nem magas, hanem alacsony jellel lehet a kijelzőt bekapcoslni. De szerintem akkor is kellene a bázisellenállás, bár az emitteráramot (ezzel a bázisáramot is) korlátozza a kijelző, illetve a vele sorba kötött ellenállások, míg NPN esetén nem.
A resethez még annyit, hogy emlékeztem, hogy nem véletlenül van ott az az ellenállás, de nem tudtam volna megmagyarázni az okát. Rákerestem egy Atmeles doksira, az AVR042 nevűre (google első találata). E szerint a külső reset ellenállás zajos környezetben ajánlott, a zaj miatti véletlen reset elkerülésére. Nem tudom, hogy ilyenkor mi történik a kontrollerben, csak sejtésem van. Mindenesetre 4k7-ot ajánlanak, míg a belső reset ellenállás 30k és 80k közé esik. A doksiban más okosság is van, érdemes elolvasni.
Sziasztok!
AVR-el lenne problémám, és nem találtam itt rá megoldást. Illetve egyet találtam, és ha más nincs akkor az (fehér zajos random) marad, de minél kevesebb külső alkatrész használatával kellene. csak nullát és egyet kell nekem generálnia, ez talán könnyít a dolgon. Nem csak 1-1 random kéne, hanem percenként 10-100millió, és hogy ne adjon fals adatot azért szeretném ha tényleg teljesen random számokat adna. Minden ötletet szivesen fogadok.
Eppenseggel meg lehet probalni, hogy egy labat lebegni hagysz, es AD-vel beolvasod, also nehany bitet hasznalod fel. Egy probat meger, bar nem tudom mindig minden korulmenyek kozott mukodne-e...
10...100Millió?
Az 100MHz a kimeneten és még ehhez számolni (RND) is akarsz? ATMEGA esetém a 10MHz is lehetetlen. Mer 16MHz / 2 (be/ki) és a ciklusidő még nincs is benne. Min AT32AP7001 kellene. Vagy ARM magos amik legalább a 200MHz- órajelet tudják. Én inkább valami programozható logikai áramkörrel vagy simán logikai áramkörrel próbálkoznék. amik tudnak 70ns-nál kissebb kapcs időt. Esetleg egy ana
Üdv mindenkinek!
Most ismerkedek az AVR ek világával. Kaptam egy AT89C51 24JI ic t (Úgy tudom újraírható fajta). Nézegettem az adatlapját de még sok minden 'kínai'. A programozása hogy történhet? Kell neki kvarc a programozás alatt? Milyen programozót javasoltok hozzá? Az ic használt, lehet van kódvédelem benne, ha igen akkor egy törlés segít rajta? Bocsánat a sok kezdő kérdésér de ez az első avr em (eddig piceztem de erre is kíváncsi vagyok). A segítséget előre is köszönöm.
A zárlatot amiatt érzékeli, hogy a MISO-n lévő órajel + a gate-source kapacitás + a belső ellenállások, már határozott hatást gyakorol.
Pár pF-os gate-source kapacitás, meg a 1-2MHz-es MISO jel, ott már sokminden számít.
Köszönöm a választ!
Az, hogy a Gate ellenállást megnöveltem fogja befolyásolni a kapcsolási sebességet, áramot, vagy bármit? Ha igen, akkor mit?
Üdv!
Köszönöm a felvilágosítást. Érdemes ezzel az ic vel foglalkozni vagy elavult/hobbi célra (motorvezérlés, lcd meghajtás...) nem megfelelő? ha érdemes vele foglalkozni, tudsz esetleg működő hardvert/szoftvert mutatni amivel használható?
Nem érdemes vele foglalkozni. Rakás szenvedés mire egyáltalán felprogramozod, és akkor még jön, hogy csak asm...
Idézet: „Az, hogy a Gate ellenállást megnöveltem fogja befolyásolni a kapcsolási sebességet, áramot, vagy bármit?” Egyértelműen. Számolható a Gate-Source kapacitás és soros ellenállásból az időállandó. Ha nem használod PWM-re vagy ilyesmire, akkor mindegynek tűnhet, hogy most a kapcsolási időd 100ns vagy 10uS... De amikor 2A-t kapcsol, akkor azalatt az idő alatt, amíg ő épp vált, disszipálni fog borzasztóan. Ha viszont PWM-hez használod, akkor meg egyértelmű, hogy rossz az ilyen nagy RC időállandó. Ha már mást nem tudsz csinálni, akkor puffereld meg a programozód kimenetét (pl. 74HC126).
Ha most ismerkedsz az AVR-ekkel nagyon tudom javasolni EZT az oldalt. Itt nézz át mindent és párhuzamosan a programozással építsd meg próbapanelen az áramköröket és tesztelgesd. Eleinte nehéz lesz de ha megtanulsz egy két parancsot akkor már fog menni. Ha esetleg C-ben szeretnél programozni akkor az alábbi dokumentációt olvasd végig valamint az AVR dokumentációja mindig legyen kéznél. Ha a PIC-eket már ismered és esetleg C-ben programoztád őket akkor ez egy-két hét mindennapi gyakorlással is menni fog.
Sok sikert.
A komplett szerkezetnek tudnia kell:
10-100 millió random azért, hogy egyértelmű legyen a 0 és 1ek számának különbsége. miután ezeket lerandomolta, kiszámolja a különbséget, és letárolja memóriába. Ha külső áramkör csinálná a randomot, akkor abból a folyamatos jelből, lehetne mintavételezni. Esetleg olyat lehetne, hogy két mega8 csinálná, majd azok ha végeztek, egymással kommunikálnak, és összesítik az eredményeket. és akkor maradna csak 10 millió random mondjuk, vagy nem 1 perce lenne rá, hanem akkor 5 perc.
Kifagyott a gépem!
Szóval a mondat: Esetleg agy analóg fehér zaj generátor a végén egy komparátorral. Akkor véletlenszerű 1,0 jelet kapsz. És az analóg jelek igen nagy frekvenciák is lehetnek. Csak egy nagyfrekis komparátor kell.
Köszönöm a segítséget!
Sajnos már készen van a NyÁK lapom és beültettem az összes SMD alkatrészt. Majd meglátom, hogy mi lesz. Esetleg megpróbálom kicserélni kisebbre, 470 Ohm-ra, vagy ha befejeztem a szoftverfejlesztést visszateszem a 10 Ohm-ot.
Amig nincs kesz a fejlesztes mi a fenenek csinalsz neki nyakot? Le kell proba panelezni vagy akar dugdososon ossze rakni es csak ha mar minden jol megy (bele ertve a firmware-t is) elkesziteni hozza a panelt...
Már megcsináltam próbapanelon, elég nagy dzsumbuj volt már rajta és egészen szépen működött, de a sok kábel miatt volt egy kisebb zavar probléma. A hardveren már nem lesz több módosítás, amit lesz, azt megcsináltam.
Tehát már próbapanelon működött, de még finomítani kell rajta.
Akkor EZ jó lenne?
És ezt mintavételezné amilyen sűrűn csak tudja a mega8.
Újabb problémába ütköztem.
Van 3 darab hétszegmenses kijelzőm, amit multiplexelve kell vezérelnem, azonban az a, b, c, d, e, f lábak nem egy porton vannak, ha egy porton lennének, akkor meg tudnám írni a programot. Hogyan kellene megcsinálni hogy így is tudjam vezérelni?
Eddig megcsináltam, a d2led az előző programomhoz jó volt, aminél egy porton voltak a kijelző lábai. |
Bejelentkezés
Hirdetés |