Fórum témák
» Több friss téma |
Jó hír, hogy rezeg a kristály! Sajnos az usb még mindig nem okés.
Ezen az oldalon vagyok megakadva, ahol a Windows driver hell alcím szerepel. Elméletileg át kellene küldenie a motyónak a címét, hogy a win be tudja azonosítani, de nekem csupa nullát ad át. Ahogy bedugom, rögtön kiírja hogy talált valamit, de beazonosítani már nem tudja az említett nullák miatt. A vezetékezést átméregettem, azt rendben találtam. Elképzelhetőnek tartom, hogy hosszú a kanóc, és ez hamisítja meg? De annyira azért nem gyors a kommunikáció, hogy egy azonosítás se tudjon lemenni. Megpróbálok keresni egy másik forrást is, hátha csak kimaradt valami a leírásból. Modik: Ne vigyük át ezt az utolsó pár hozzászólást egy 'V-USB hogyan' nevű topicba? Mondjuk innen kezdve. Ugyan kapcsolódik, de lehet jobb lenne egy helyen kezelni ezt az usb-kérdést. A hozzászólás módosítva: Dec 18, 2012
Bakker!
Szerintem megvan a hiba! A mega8 adatlapja szerint ahhoz, hogy a vezérlő tudjon menni több mint 8MHz-en, ahhoz kell neki 4.5V, de az usb miatt a táp le van véve 3.3V-ra. Akkor most mehetek, venni két darab 3.6V-os zénert (persze ilyet véletlenül sem tartok)! Lehet hogy ez a gond???
Ahhoz létre kell hoznotok egy "V-USB hogyan" című topikot, hogy a moderátor oda átpakolhassa a hozzászólásokat. Szerintem ők a saját nevükben nem fognak topikot nyitni.
A hozzászólás módosítva: Dec 18, 2012
Ezt a topic-ot azért hoztam létre, hogy egy helyen tárgyalhassuk ki az AVR vezérlőkhöz kifejlesztett USB könyvtárat a V-USB-t Bővebben: Link.
Idézet: „Akkor most mehetek, venni két darab 3.6V-os zénert” 3.3V -osakat vegyél. Az AtMega8 Áfá -val kb. 1000 Ft és kell még quartz, két zener és Low Speed USB az eredmény. A PIC16F1459 Áfával kb. 625 Ft és 1db 470 nF kondenzátor és Full Speed USB 5V -os táp mellett. A hozzászólás módosítva: Dec 18, 2012
Lehet, de ne menjünk bele vallási vitákba! Mega8-am van itthon vagy hat darab, 32-es is van három. Kvarcot bányásztam még anno nyomtatóból, csak a kondik kerültek ennek a projektnek a fényében kemény 40Ft-ba (mert vettem négyet is). Mellesleg eddig csak avr-el foglalkoztam, azért a párszáz forintért nem akarnám megtanulni a pic-et is egyenlőre, egyszerűen az avr-t szerettem meg. A fullspeed-re nem hiszem hogy szükségem lesz, nem videót akarok nézni rajta, csak áttolni 64K adatot.
Ettől még aki akar az persze használjon pic-et. Az észrevételt köszönöm, de miért 3.3V? A V-USB rajza szerint 3.6V kell! A hozzászólás módosítva: Dec 18, 2012
Mi szükség a zenerre? (bár AVR szinten teljesen tájékozatlan vagyok) 5V-ról hajthatod a Mega8-at. Én csak az áramkorlátozó ellenállásokat tenném be az USB adatlábakhoz.
Azért kell bele, mert az usb egyáltalán nem toleráns a túlfeszültségre. Legalábbis ahogy olvastam. Sajnos még nem sikerült vele dűlőre jutnom. Kíváncsi vagyok, a zenerekkel megjavul-e.
Lusta vagyok az USB szabványban keresgélni, de ezt nézd meg.
Szilícium diódákból is össze pakolhatod a túlfeszültségvédőt(fordítva szerelve). 5db.x0,7V=3,5V
Olvastam már, köszi! Sajnos mint írtam, nem jó ha 3.3V-tal táplálom meg, mert akkor nem tudja a 12MHz-et.
Ha diódákból (5x2 db) pakolgatom össze, akkor már inkább megveszem azt a két diódát.
Ott van a felső rajzon az 5V-os változat. Még áramkorlátozó ellenállást sem használ.
Az USB specifikációban nem találtam semmit az adatláb feszültségtűrésére vonatkozóan.
Idézet: „Lusta vagyok az USB szabványban keresgélni, de ezt nézd meg.” De ez is PIC, amiben belül van egy 3.3V -os stabilizátor. Az USB illesztő kimenetei erről a belső stabilizátorról működnek. Ugyanilyen a 18F2550, a 16F1459 is. Idézet a 18F2550 adatlapjából: Idézet: „D313 VUSB USB Voltage 3.0 — 3.6 V Voltage on pin must be in this range for proper USB operation” Nem is kell nagyon keresgetni... USB hivatalos honlapja Full speed : 12 Mbit/sec=1,5 MB/s Low Speed: 1.5 Mbit/sec = 187kB/s... A hozzászólás módosítva: Dec 19, 2012
Idézet: „Full speed : 12 Mbit/sec=1,5 MB/s Low Speed: 1.5 Mbit/sec = 187MB/s...” Helyesen: Full speed : 12 Mbit/sec=1,5 MB/s Low Speed: 1.5 Mbit/sec = 187kB/s... A low speed usb alig gyorsabb, mint az uart -os megoldás. Ráadásul a V-USB egy programozott megoldás, amíg az USB kezelése megy, addig a kontroller nem tud mást csinálni. A PIC -es megoldás teljesen megszakításos is lehet, azaz a kontroller az USB kiszolgálása alatt is tud más feladatot csinálni. Mindezt olcsóbban...
Az Atmel-ek között is van ami tudja hardverből a full speed USB-t, pl: ATmega162U2, ATmega32U2 stb. Én sem értem miért kell küzdeni a szoftveres megoldással. Mondjuk ezek itthoni beszerezhetőségéről nincs információm. Az USB szerintem még hardveres USB-vel sem egyszerű.
A Texas Instruments MSP430G2452 (a Launchpad kártyához adott mikrovezérlől "butábbika") is beszállt a V-USB kalandba! Bővebben: Link
Idézet: Nem is a sebesség érdekes itt, hanem az egyszerű csatlakoztatás. Soros port a mai gépeken már elvétve található, ráadásuk egy szintkonverter IC is kellene hozzá. Az USB szoftveres lekezelése tehát hardveresen egyszerűbb megoldást nyújt, mint az UART. Szoftveresen bonyolultabb, tehát valamit-valamiért... „A low speed usb alig gyorsabb, mint az uart -os megoldás.”
Pontosítsunk pár dolgot Hp41C
AT90USB162 16Mhz 630Ft (fullspeedUSB és gyorsabb mint amit írtál PIC) beszerezhető ATMEGA8A csak 430Ft nem 1000Ft Mivel az egyszerűbb AVR-ek sebessége elég gyors az USB-hez, ezért meg lehet velük csinálni, ATTINY2313 20MHz 240Ft Link a részletekhez Egyszerűbbh PIC-el ezt nem tudod megcsinálni, érthető, hogy harverest kell alkalmaznod. ATMEGA8 helyett én inkább 16-ost néznék (ATMEGA168), 2x nagyobb memo és kb ugyan annyiba kerül most (én még 380-ért vettem fél éve, vettem is belőle 100-at) szépen el is fogy perifériákban (OSD, PID, LCD, Lasersensor...)
"AT90USB162 16Mhz 630Ft (fullspeedUSB és gyorsabb mint amit írtál PIC) beszerezhető
ATMEGA8A csak 430Ft nem 1000Ft" Amit belinkeltél ott nem igazán ezeket az árakat látom.
Nem ő linkeli, hanem a HE automatikusan rak be linkeket a HEStore hasonló nevű termékeire.
Szia!
Azt hiszem elbeszélünk egymás mellett. A V-USB egy programból megvalósított USB 1.1 kezelés, ami csak a Low Speed -et tudja. Mindegy, hogy milyen kontrollerrel alkalmazol, lehet egy kicsit megturbózott (24MHz -ről járatott) 16F628 (16F USB) is vagy, hogy a specifikációt ne sértsük meg egy 16F1824 (270FT) 16F1825 (310Ft), 16F1826 (330Ft)(32MHz -ig bírják). A típus most lényegtelen. Az USB kezelés elviszi a kontroller teljesítményének zömét. Az adás / vétel bit-banged módon zajlik, a megszakítás tiltott állapotában. Debuggolni nem lesz könnyű... Arra hívtam volna fel a figyelmet, hogy ez a megoldás alig gyorsabb, mint a másik topikban most eldobott uart -os (300bkit / sec -et már elértem az uarttal is.). Eredetileg a hozzászólásom az "Alacsony költségű digitális oszcilloszkóp" topikban volt... Ha már újratervezném a kapcsolatot egy műszerrel, nem állnék meg a kb. 3-5 szörös sebességnél, hanem felmennék a 15 - 25 szörösre, hardware USB illesztővel rendelkező kontrollerre, lehetne az EzUSB verziója a jó öreg I8051 -nek is. Főleg, ha ennek ára, ahogy Te is írod, nem számottevő: AT90USB162 16Mhz 630Ft, 16F1455 48MHz (400Ft), 16F1459 48MHz (380Ft). Az utóbbi beszerezhető. Az USB kezeléséhez a pic -ekhez még a quartz sem kell. Kipróbáltam... A hozzászólás módosítva: Dec 19, 2012
Ha megnézted a belinkelt topicot, akkor láthatod, az USBEXPLORERREL pont ilyen V_USB-t csináltam, tehát tudom milyen és mennyit zabál az szoftveres USB kezelés.
Overclockot meg ne tekintsük megoldásnak. Ezzel kapcsolatban is vannak tapasztalataim. PIC-jeim stabilan +10%-ot bírtak, amig az AVR-nél 210%-ot is simán elértem 54MHz (persze itt már volt gond, a beírt program tökéletesen küldte az UART adatokat (időzí, de nem lehetett újraprogramozni) A PIC 32MHz orajelét osszuk le 4el = 8mips Gagyi Attiny2313 20MHz = 20mips Ha meg sebesség kell, akkor FTDI Anno azzal csináltam logikai analizátort, 2,7...Mbaudon ment a kommunikáció, bár ott valamit kellet a windowson is kalapálni. Szóval a lényeg, minden gyártónak van versenyképes hw USB-je. Az ár azért irreleváns, mert 2 bolt között és van 60-80% árkülönbség, és ahogy kolléga is mondta okosan 100forintért nem tanulna meg egy másik rendszert. Ha pedig valaki a sw USB-vel kinlódik, azt valószínüleg itt a hobbi csapatban azért teszi, mert vagy mazohista, vagy mert élvezi, nem biztos, hogy a kész termék sorozatgyártása a cél. Én is küzdöttem SW USB-vel, pedig volt már itt az asztalomon pár sajátkészítésű fullspeed UART-USB átalakító. De cél leküzdése és a végeredmény "jó móka volt"
Na kérem!
Megvettem a két zenert, szépen határol, most már minden a rajz szerint van. És mégsem megy A VUSB example-ben található egér példaprogramot próbálom gerjeszteni, mert elvileg rögtön lenne vizuális visszajelzés ha megy. Konkrétan az egérmutatónak kellene körbe körbe kalimpálni ha jól vettem ki a leírásból. Linuxon a dmesg ezt mondja amikor rádugom a csatira:
Win alatt tegnap még csupa nullát küldött azonosítónak, ezt kipróbálom mindjárt hogy most mi a helyzet. [szerk:] Most is csupa nullát küld. Valakinek ötlete? A mazochizmusnak is vannak határai, nálam most készül kidőlni a kerítése. Sikerült már valakinek valami eredményt elérnie ezzel? Ami a chip-választást illeti, nagyon bele vagytok ebbe merülve, de azt nem veszitek figyelembe, hogy nem mindenki tud pestországból vásárolni. Hiába 300 Ft egy vezérlő, ha minimum 1000 mellé a szállítás. Helyben meg nem árul a boltos, mert nem viszik annyian, nem éri meg neki rendelni. Legalábbis ezt mondja, de a lényeg hogy nincs. Ami van, azt nagyobb tételben rendeltem, hogy a szállítás olcsóbb legyen (effektive). Szóval ha valaki tud rendelni egy usb-képes avr-t és megteszi hogy postán levélben feladja nekem (persze előre utalnám az árát), és ha valakinek van egy működő példája hozzá, akkor nagyon megköszönném Jelen pillanatban nincs ötletem, hogy merre tovább. A hozzászólás módosítva: Dec 19, 2012
USB-s AVR-em most nincs, inkább ARM-al csinálok ilyen projectet.
De ha kell felprogramozott ATTINY2313-at tudok adni, abből még van egy marok. 1 hiba: a kvarc értékét meg kell adni a programban 12Mhz 16Mhz... 2 hiba: az AVR beégetésnél külső kvarcot adj meg, sokan beleszaladtak, hogy a kész hex beégetése után nem ment... mert fuse biteket nem állították be 3 hiba: hiányzik a 68ohm 68ohm 1,5kohm USB csati után 4 hiba: 5V-on futó uC-nél nincs zéner (de nálad már van) 5 hiba: Win driver nincs fent. Neten 8 V-USB változatból csak egy megy (W7-en)
Köszönöm az érdemi hozzászólást!
Sajnos ezek már mind rendben vannak. Megadtam a kvarcot a makefile-ban FCPU paraméternek, valamint a usbconfig.h-ban is mint USB_CFG_CLOCK_KHZ (itt 12000 szerepel). Külső kvarcként van beállítva, és ellenőríztem a ledes villogó tesztprogrammal, hogy valóban 12MHz-ről jár (mert másodpercenként villog). Az ellenállások megvannak, zénert beleraktam (X85C3V6 típus). Win driver-el úgy állok, hogy letöltöttem a libusb-win32-t, ebben van egy inf-wizard.exe, ami előállítja a .inf fájlt. Csakhogy amikor ki kell választani az eszközt a listából, hogy melyikhez generáljon, akkor már látszik, hogy nem stimmel a dolog. A listában szerepel két eszköz, az egyik a programozóm, a másik pedig ismeretlen csupa nulla című eszköz. Amúgy xp a windóz. Idézet: „De ha kell felprogramozott ATTINY2313-at tudok adni, abből még van egy marok.” Köszönöm a lehetőséget, de nem lennék sokkal előrébb vele. Az analizátor jó sok lábat elhasznál, amit még a mega8 ki tud szolgálni, de kisebb lábszámmal már szorulnék. Szerencsére a processzoridő viszont nem gond, úgyhogy elvileg el kellene bírjon vele a mega8 még usb-vel is. Bár most ebben a pillanatban már annak is nagyon örülnék, ha menne az usb minden más nélkül.. A hozzászólás módosítva: Dec 19, 2012
Szia !
Tedd fel az usbconfig.h, meg a main.c fájlokat. Hátha talál benne valaki módosítani valót, ha a HW már jónak néz ki.
A vas most így néz ki. Felül a pici panel a programozóhoz van, és innen megy a vezérlőre az a szép színes korbács. A vezérlő paneljén a négyes láb (INT0) a D+, a hatodik láb (T0) pedig a D-. A narancs-sárga vezeték a PORTB0,1 a visszajelző ledre megy, most csak a PORTB0 van bekötve.
A Makefile azért lett most txt, mert másként nem engedte feltölteni. A main.c a gyári, ahhoz nem nyúltam. A jpg is át lett nevezve, mert különben átméretezi A hozzászólás módosítva: Dec 19, 2012
Nézegetve a kapcsolást azt látom, hogy nincsen a D+-ra 100k a föld felé, amit én mindig használok. Egy próbát megér.
Kérdés : a lednek a DDRB és PORTB be van állítva ? usbconfig.h Többször jártam úgy, hogy ha ezt a sort kikommentelve hagytam, akkor nem működött, ha kivettem a kommentet, akkor OK volt. /* #define USB_CFG_PULLUP_BIT 4 */ /* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined * above) where the 1.5k pullup resistor is connected. See description * above for details. */ Én a helyedben meghagynám az eredeti sort : #define USB_CFG_CLOCK_KHZ (F_CPU/1000). Ha a programban definiálod az F_CPU-t akkor jó az úgy, ha nem, akkor hibaüzenetet kapsz, akkor is, ha nem az előre megadott frekvenciát adsz meg. A main.c-ben működik a debug, ami a UART-on küld ki adatokat,ezt már nézted? Ide lehet kötni egy USB/UART átalakítót, vagy soros LCD-t, és a kiküldött adatokból lehetne következtetést levonni a működésről. Van itt a fórumon cikk (Pici fórumtárstól) USBExplorer néven, ott elérhető a libusb0.dll és az inf file is. Nem tudom segít-e felteszem ide az usbexplorer.inf-et. |
Bejelentkezés
Hirdetés |