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   415 / 840
(#) Suncorgo hozzászólása Feb 22, 2012 /
 
Nem tudtok valami jó kis leírást VGA jel előállítására?

Szükségem lenne a következő projectemhez egy kijelzőre. Nézelődtem itt, ott de nem leltem nekem megfelelőt, vagy az ára volt 100k felett.

Össze akarok kötni egy AVR-t egy LCD monitorral. Egy 10" LCD monitor tökéletes megjelenítő lenne.

Arra gondoltam hogy kellene egy úgynevezett "video kártya" az AVR és az LCD monitor közzé.

Elképzelésem:
Egy AVR valami video dac icvel és egy memóriával.
A memóriának elégnek kell lennie 800x600= 480000 x 3 (RGB) 8 bites érték eltárolására és így kapnék 16 millió színt.

A pixelenkénti adat beírást a memóriába valamilyen nagyobb sebbességű soros kommunikációval gondoltam (SPI, I2C etc.) persze az AVR-en keresztül.

Van valakinek valami ötlete hogy hogyan lenne ez kivitelezhető?
(#) Suncorgo hozzászólása Feb 22, 2012 /
 
Létezik olyan gyors AVR ami tudna pl R/2R létrával vagy hardveres DAC-al akkora sebességet amivel meg tudna hajtani egy monitort nem csak fekete fehéren?

640x480 60hz frissítés 40ns pixelenkénti idő

Ezeknek a lépéseknek bele kellene férnie 40ns-be:

-memória címzés
-olvasás R
-DAC beállítás R
-címzés
-olvasás G
-DAC beállítás G
-címzés
-olvasás B
-DAC beállítás B
(#) TavIR-AVR válasza Suncorgo hozzászólására (») Feb 22, 2012 /
 
Nézz körbe. Jópár ilyen projekt van készen . igaz ASM alapon futnak általában és a szinkronjelek SPI-n jönnek ki. Általában sorosporton lehet a bemenő holmit megadni nekik...

Jellemzően karakteres kijelzés fut...


B verzió: régi ISA VGA-kártya és 8bites módban (XT szimuláció) kezeled le

C verzió: Teletext cél-IC. Abban minden van (kérdés VGA-t tud e vagy csak normál monitort)

D verzió: FPGA chip (AVR elfelejtve a teljesítmény miatt)
(#) Suncorgo hozzászólása Feb 22, 2012 /
 
Összeraktam közbe az MK2 klónom. Mikor rányomok az USB-re akkor hibát kapok:
A program nem indul el mert libusb0.dll hiányzik...
nyomok ok-ot
AtLibUsb.dll not found

Milyen driverbe vannak ezek a fájlok?

USBre feldugva kiírja a vin hogy AT90USB162 DFU és nem talál hozzá drivert. Ezt is külön kel telepíten? Honnan?
(#) Suncorgo válasza Suncorgo hozzászólására (») Feb 22, 2012 /
 
Közbe megoldódott. libusb32-őt fel kellett telepíteni.
(#) Tetye hozzászólása Feb 22, 2012 /
 
Valaki Bp.-Zsámbék közt leülne velem egy sör mellé hogy megmutassa hogy kell használni az avr studio-t ?
2 hete próbálkozok vele de csak egyre feszültebb vagyok az egyre nagyobb sikertelenségek miatt.
Köszi!
(#) kakas92 hozzászólása Feb 22, 2012 /
 
Hali!
amnega128-hoz szeretnék PIN szenzort kötni! lehetséges ez? és ha igen hogyan?
(#) kakas92 válasza Massawa hozzászólására (») Feb 22, 2012 /
 
és ha mozgást érzékel akkor logikai 1-el válaszol?
(#) Massawa válasza kakas92 hozzászólására (») Feb 22, 2012 /
 
Egy open collector kapcsolás nem, de biztosan az elötte levö fokozat igen. Ezt már neked kell kinyomoznod, vagy megforditani a logikát.
(#) Mezoas válasza huba hozzászólására (») Feb 22, 2012 /
 
Ez a dc-dc konverter dolog érdekelne. Mire gondolsz pontosan? Kapcsolás/link/valami?
(#) zombee válasza Mezoas hozzászólására (») Feb 22, 2012 /
 
keress rá: mc34063
(#) Mezoas válasza zombee hozzászólására (») Feb 22, 2012 /
 
Értem már, a jó hatásfok a kulcs. Én másra gondoltam, hehe.
(#) Reggie válasza kakas92 hozzászólására (») Feb 22, 2012 /
 
PIN fotodiodara gondolsz? Attol fugg, hogy mit szeretnel vele csinalni.
(#) savanyu hozzászólása Feb 22, 2012 /
 
Bocs, lehet, hogy a kérdés már elhangzott, de képtelen vagyok végig olvasni a 412 lap kérdéseit és hozzászólásait. Az is lehet, hogy a kérdés 'felháborító' /mármint annak, aki tudja a választ/: Ha van egy C-ben megírt példa program, ATTiny45-re, de nekem csak ATTiny13-am van mit kell módosítani a forrás programban ? A 13 úgy tudom, hogy a 45 'kistestvére' csak az 1K és 4K a különbség? /Két napja van AVR kontroller a közelemben./
(#) Reggie válasza Suncorgo hozzászólására (») Feb 22, 2012 /
 
Ilyen gyors AVR nem letezik. Sot AVR32 sem.
(#) savanyu válasza kakas92 hozzászólására (») Feb 22, 2012 /
 
Bocsi, de nem PING szenzorra gondoltál ? Mármint a PARALLAX 'szonárra' Valahol a 30 ezer forintos robot cikkben találkoztam vele. Ott rajz is van, meg 'C' minta program is.
(#) zombee válasza Suncorgo hozzászólására (») Feb 22, 2012 /
 
Hello!

Látom megoldódott, de azért a saját tapasztalataimat leírom.
Az "AT90USB162 DFU" maga a FLIP bootloader mint eszköz, erre gondolom már rájöttél.
A FLIP programmal települ, de a legelső csatlakoztatáskor ki kell tallózni a FLIP mappájából.

libusb32:
Meglepő, de én nem telepítettem a libusb drivert, helyette az AVR Jungo driver alól használom. Ez normál esetben az AVR Studio-val települ, és az AVR Studio gond nélkül használhatja a programozót. Ez szép és jó, de sajnos az Avrdude és a Bascom-AVR így nem ismeri fel. Azaz felismeri, de nem képes kezelni! Ezen segít, ha a LUFA projektben a "LIBUSB_DRIVER_COMPATIBLE" mezőt engedélyezem. A probléma az, hogy akkor meg az AVR Studio nem kezeli. Semmi baj, vissza a régi firmware és újból AVR Studio alól lehet használni!

A most készülő új változatomban(1.2-5.0V-os szintkonverter, egyesített kimenőcsatlakozó, potis feszállítás)
még egy jumper lesz, amivel - remélhetőleg - a driver módot lehet váltogatni JUNGO és LIBUSB között.
Ha beválik a módszer, a driver mód váltáshoz nem kell azt a hosszú lépéssort megcsinálni hogy egyszerre
mehessen AVR Studio, Bascom és Avrdude alól, csak a jumpert kell bedugni vagy vissza.
(#) Reggie válasza zombee hozzászólására (») Feb 22, 2012 /
 
Minek a potis feszultseg allitas, ha ugyis kap referencia erteket a programozo csatirol?
(#) zombee válasza Suncorgo hozzászólására (») Feb 22, 2012 /
 
A VGA-s kérdésedre is válaszolok ha nem baj, saját tapasztalatokkal, buktatókkal.

KÉPMÉRET:
Ha utánaszámolsz, már egy 640x480-as kép is rengeteg pixelt tartalmaz, amit még akkor sem lennél képes egy AVR memóriájában tartani ha fekete-fehér lenne a kép, már egy ilyen is 37.5KB-ot(kilobájt) vesz el.

SEBESSÉG:
A 640x480@60Hz felbontásnál(a legkisebb amit lehet) az úgynevezett pixelfrekvencia 25.175MHz, azaz az AVR-nek ilyen gyorsan kéne váltogatnia a pixeleket. Az AVR-ben a leggyorsabban az SPI-vel lehet ilyet. Sajnos csak az AVR órajel felével(CPUCLK/2), és azt is csak 1 csatornán(MOSI kimenet). Azt hiszem még az USART is tudhat valami hasonlót MSPIM módban, de egyrészt az is csak 1 csatornán, másrészt független az SPI-től. Tehát a mélyebb színeket is elfelejtheted! Tegyük fel hogy ezt a frekit(25.175MHz) bírja egy túlhajtott AVR(Az ATMega48 biztos tudja, kipróbáltam!). Ez esetben is max. a fele lehet a vízszintes felbontás, de a memória miatt amúgy se tudsz jobbat!

PIXEL SZINKRON:
Most nem a szinkronjelelekről beszélnék hanem a rajzolásról és egy apró kellemetlenségről.
Talán ismerős hogy egy AVR-ben a (relatív) ugró utasítás 2 órajel. Hihetetlen, de ezt egy interrupt nem tudja megszakítani. Következmény: lehetséges hogy a következő sort nem ugyanakkor kezdi rajzolni, tehát elcsúszik az egész sor!

LEHETŐSÉGEK:
A felbontás csökkentésével a sebesség és a memóriaigény enyhíthető. A színes képről már írtam hogy le lehet mondani, de nagyobb, minimum betűméretű képrészeknél megoldható hogy színt több portláb közbeiktatásával, a vezérjel pedig továbbra is a MOSI lesz. Ekkor egy kisebb színmátrixot hozhatsz létre pár tranzisztor és ellenállás segítségével.

Én kb. 3 éve assemblerben írtam meg egy kb. 950 soros progit. 800x600@60Hz-es felbontást visz ami 40MHz-es pixelórajelet jelent, az AVR 20MHz-en fut, de a vízszintes felbontást még jobban csökkentettem.
Egy órát valósítottam meg(lásd: képek). Csak azért lila, mert a VGA-kábel meg volt törve...
(#) zombee válasza Reggie hozzászólására (») Feb 22, 2012 /
 
A potis fesz állítás nem a referencia miatt kell, hanem azért, hogy ha a programozóról táplálom az áramkört akkor ne csak fix 5V vagy 3.3V feszültségen táplálhassa, hanem 1.25V-5.0V között bármekkorával.
Ha a kimenetre nem kapcsolom rá se a fesszabályzót, se az 5V-ot, akkor a referenciát(a MAX3002-nek)
a céláramkör adja. A céláramkör VCC-je állandó kapcsolatban lenne a MAX3002 referenciájával. jó ez így?
(#) Reggie válasza zombee hozzászólására (») Feb 22, 2012 /
 
Ertem. Szoval roviden kulso betaplalasra
(#) zombee válasza Reggie hozzászólására (») Feb 22, 2012 /
 
Pontosan. Egyébként pár hete még olyan verziót terveztem aminél a programozó AVR-jét táplálom egy LT1117-ADJ IC-ről, az a változat valóban a potiról(pontosabban a fesszabályzóról) vette volna a tápfeszt és a referenciát is egyben. A dolog egyik hátulütője hogy 2.6V alá sehogy se lehetne menni(lekapcsol az AVR vagy az USB kapcsol szét), a másik hogy a felhasználónak kellene folyton hozzáigazítania a feszültséget a céláramkörhöz. Láttam hogy a MAX3002 pont ezt váltja ki, így a mostanit már azzal készítem.
(#) Suncorgo hozzászólása Feb 22, 2012 /
 
Köszönöm a hozzászólásokat.

Érdekes módon nekem is fel van telepítev a studio 5 és a jungo drivert is feltette. De hiányolta a dll fájlt. Nem lehetséges hogy x64-es oprendszerem van és ezért nem működött a dolog?

A studio 5 felismerte gond nélkül. Tehát a jungo driver csak működik.

Ti nem jártatok még úgy a studio 5 tel hogy egyszerűen egy programozót se lát? Egy párszor ujra kiell indítani a progit és csak majd egyszer beugrik.
(#) Suncorgo hozzászólása Feb 22, 2012 /
 
Összekötöttem az MKII klónom egy atmega8al. Semmit sem tud olvasni írni belőle/rá.


Mikor a hex file-t feltöltöttem a FLIPpel akkor az az at90usb162 fuse bitjén nem állítja külső kvarcra?

Olyan mint ha nem kvarcról menni, szkóppal nem is látok rajta órajalet. Valószinüleg ezért nem tudom irni olvasni a mega8amat.
(#) zombee válasza Suncorgo hozzászólására (») Feb 22, 2012 /
 
Az USB-s AVR-ek gyárilag külső kvarckristályra vannak állítva. 8 és 16MHz kristállyal egyaránt működik
a DFU Bootloader, de az alkalmazásodat fix frekire kell lefordítanod. A makefile-ban megtalálod.
De ha már látja az mkII-t gép(tehát nem azt írja hogy "az USB-eszközt nem lehet felismerni"),
akkor biztosan jól állítottad be. FLIP alól a FUSE bitek érintetlenek maradnak(BOD=2.7V, Ext Crystal, HWBE=ON).
Driver: valószínűleg azért nem találja mert a driver telepítésekor libusb-re volt állítva(a firmware).
Amikor programozni akarja, a piros LED világít/felvillan?
(#) Suncorgo válasza zombee hozzászólására (») Feb 22, 2012 /
 
Igen a fuse biteket. Felforrasztottam rá az STK500 asom. A studio 4 még kezeli. Nekem itt nem volt semmilyen makfike, csak a hexet szedtem le azt toltam fel FLIP-el.

Persze villan a piros led.
(#) zombee válasza Suncorgo hozzászólására (») Feb 22, 2012 /
 
Az STK500-at ráforrasztani fölösleges, a FUSE biteket leszámítva mindent tudsz írni/olvasni FLIP segítségével.
Az AVR Studio csak Jungo driverrel felprogramozott és telepített programozót ismer fel. Bascom felismeri?
Illetve a libusb is megy AVR Studio alól, de ahhoz egy hosszú műveletsort is végig kell játszani.
(#) Suncorgo válasza zombee hozzászólására (») Feb 22, 2012 /
 
Valószínű hogy hardveres baj van. Mindjárt átforrasztom a max3002-őt.
(#) Suncorgo válasza Suncorgo hozzászólására (») Feb 22, 2012 /
 
a max3002őn egyszerűen nem jönnek át e jelek.
(#) Suncorgo válasza Suncorgo hozzászólására (») Feb 22, 2012 /
 
Hát én nem értem. A MAX3002 kap tápot, kap 5V a VL és EN lábára is, a lába nincs összefolyva, nincs kontakthiba. Minden jó és mégsem jön át rajta a jel. Nem lett túlmelegítve sem. Mi van ilyenkor?
Következő: »»   415 / 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