|
Szerző |
Üzenet |
NickE
platina tag
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 754
|
Akkor Te a PC oldali programozást megúszod.
|
vas. jan. 27, 2008 20:49 |
|
|
potyo
gyémánt tag
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 3691 Tartózkodási hely: Ada
|
Már tegnap este megtörtént a hiba jelentése.
|
vas. jan. 27, 2008 19:02 |
|
|
NickE
platina tag
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 754
|
Írd meg a hibát Minchnek, hátha kapsz tőle egy szóbeli hátbaveregetést.
|
vas. jan. 27, 2008 19:00 |
|
|
potyo
gyémánt tag
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 3691 Tartózkodási hely: Ada
|
A lab2c egy HID eszközként ismerteti fel magát. A lab3c és lab4c pedig "vendor specific device"-ként, tehát speciális eszközként. Utóbbi kettőhöz tehát tartozik driver is, míg a HID standard drivert használ.
|
vas. jan. 27, 2008 13:40 |
|
|
NickE
platina tag
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 754
|
Mik a difik a verziók között. Már olyan rég foglalkoztam vele, hogy elfelejtettem. Azt tudom, hogy nekem a 4-est kellett használni.
|
vas. jan. 27, 2008 12:29 |
|
|
potyo
gyémánt tag
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 3691 Tartózkodási hely: Ada
|
Kezdem lassan kapisgálni, hogyan működik az usb felismerés folyamata. Ennek örömére találtam egy hibát Brad Minch féle lab2c firmware-ben
Az eredeti így néz ki: Kód: case REPORT: switch (USB_buffer_data[wValue]) A helyes kód viszont így néz ki: Kód: case REPORT: switch (USB_buffer_data[wIndex])
Tehát nem wValue, hanem wIndex kell a tömb címzésénél, mert abban a bájtban küldi ki a vezérlő, hogy melyik Report Descriptort kéri.
Most már úgy néz ki, C18-ban is sikerült összehozni a kompozit eszközt. Lehet, hogy a Microchip féle HID firmware-ben is megtalálható ez a hiba, azért nem akar sikerülni összejönni senkinek sem a kompozit eszköz.
|
szomb. jan. 26, 2008 23:30 |
|
|
watt
gyémánt tag
Csatlakozott: szer. nov. 01, 2006 14:00 Hozzászólások: 3559 Tartózkodási hely: Régi nick .watt Hozzászólások: 3402
|
Megszületett! Egy 18F2550-re írtam át a progit és átkonfigoltam a projectet Bootloader nélkülire! Én nem szeretem a bootloadert, mert fejlesztésnél nagyságrendekkel lassabb, mint a WPB_F18 Verify-os módszerem, helyet foglal, és hibákra ad lehetőséget(pl. megsérülhet az általa kezelt terület, mint ahogy azt néhány ICD2-nél tapasztalhatjuk).
Ez ugyan csak egy szimpla CDC (RS232 szimuláció USB-re), de azért használható néhány dologra. Be is indult a fantáziám egy USB égető megépítésére, amit a WPB kezel. Meglátom...
Az MC CDC Firmware-hez ez a konfiguráció jött be.
Kód: // Configuációk lehetőségek, részletezés: 18F2550 //MPLAB_C18_Config_Settings_51537c.pdf tartalmazza a beállításokat
/* Full-Speed USB Clock Source Selection: USBDIV = 1 Clock source from OSC1/OSC2 USBDIV = 2 Clock source from 96MHz PLL/2 */ #pragma config USBDIV = 2
/* CPU System Clock Postscaler: CPUDIV = OSC1_PLL2 [OSC1/OSC2 Src: /1][96MHz PLL Src: /2] CPUDIV = OSC2_PLL3 [OSC1/OSC2 Src: /2][96MHz PLL Src: /3] CPUDIV = OSC3_PLL4 [OSC1/OSC2 Src: /3][96MHz PLL Src: /4] CPUDIV = OSC4_PLL6 [OSC1/OSC2 Src: /4][96MHz PLL Src: /6] */ #pragma config CPUDIV = OSC1_PLL2
/* 96MHz PLL Prescaler: PLLDIV = 1 No divide (4MHz input) PLLDIV = 2 Divide by 2 (8MHz input) PLLDIV = 3 Divide by 3 (12MHz input) PLLDIV = 4 Divide by 4 (16MHz input) PLLDIV = 5 Divide by 5 (20MHz input) PLLDIV = 6 Divide by 6 (24MHz input) PLLDIV = 10 Divide by 10 (40MHz input) PLLDIV = 12 Divide by 12 (48MHz input) */ #pragma config PLLDIV = 5
/* Oscillator Selection bits: FOSC = XT_XT XT oscillator, XT used by USB FOSC = XTPLL_XT XT oscillator, PLL enabled, XT used by USB FOSC = ECIO_EC External clock, port function on RA6, EC used by USB FOSC = EC_EC External clock, CLKOUT on RA6, EC used by USB FOSC = ECPLLIO_EC External clock, PLL enabled, port function on RA6,EC used by USB FOSC = ECPLL_EC External clock, PLL enabled, CLKOUT on RA6, EC used by USB FOSC = INTOSCIO_EC Internal oscillator, port function on RA6, EC used by USB FOSC = INTOSC_EC Internal oscillator, CLKOUT on RA6, EC used by USB FOSC = INTOSC_XT Internal oscillator, XT used by USB FOSC = INTOSC_HS Internal oscillator, HS used by USB FOSC = HS HS oscillator, HS used by USB FOSC = HSPLL_HS HS oscillator, PLL enabled, HS used by USB */ #pragma config FOSC = HSPLL_HS /*
/* Fail Safe Clock Monitor: FCMEM = OFF Disabled FCMEM = ON Enabled */ #pragma config FCMEM = OFF
/* Internal/External Switch Over: IESO = OFF Disabled IESO = ON Enabled */ #pragma config IESO = OFF
/* Power Up Timer: PWRT = ON Enabled PWRT = OFF Disabled */ #pragma config PWRT = OFF
/* Brown Out Reset: BOR = OFF Disabled BOR = SOFT Controlled by SBOREN bit is disabled BOR = ON_ACTIVE Enabled when the device is not in SLEEP, SBOREN BOR = ON Enabled, SBOREN bit is disabled */ #pragma config BOR = ON
/* Brown Out Voltage: BORV = 46 4.6V BORV = 43 4.3V BORV = 28 2.8V BORV = 21 2.1V */ //#pragma config BORV = 21 //ezt valami miatt nem fogadja el!
/* USB Voltage Regulator Enable: VREGEN = OFF Disabled VREGEN = ON Enabled */ #pragma config VREGEN = ON
/* Watchdog Timer: WDT = OFF HW Disabled - SW Controlled WDT = ON HW Enabled - SW Disabled */ #pragma config WDT = OFF
/* Watchdog Postscaler: WDTPS = 1 1:1 WDTPS = 2 1:2 WDTPS = 4 1:4 WDTPS = 8 1:8 WDTPS = 16 1:16 WDTPS = 32 1:32 WDTPS = 64 1:64 WDTPS = 128 1:128 WDTPS = 256 1:256 WDTPS = 512 1:512 WDTPS = 1024 1:1024 WDTPS = 2048 1:2048 WDTPS = 4096 1:4096 WDTPS = 8192 1:8192 WDTPS = 16384 1:16384 WDTPS = 32768 1:32768 */ #pragma config WDTPS = 32768
/* MCLR Enable: MCLRE = OFF Disabled MCLRE = ON Enabled */ #pragma config MCLRE = OFF
/* Low Power Timer1 Oscillator Enable: LPT1OSC = OFF Timer1 oscillator configured for high power LPT1OSC = ON Timer1 oscillator configured for low power */ #pragma config LPT1OSC = OFF
/* Port B A/D Enable: PBADEN = OFF PortB<4:0> pins are configured as digital I/O on RESET PBADEN = ON PortB<4:0> pins are configured as analog input on RESET */ #pragma config PBADEN = OFF
/* CCP2 Mux bit: CCP2MX = OFF CCP2 input/output is multiplexed with RB3 CCP2MX = ON CCP2 input/output is multiplexed with RC1 */ #pragma config CCP2MX = ON
/* Stack Overflow Reset: STVREN = OFF Disabled STVREN = ON Enabled */ #pragma config STVREN = ON
/* Low Voltage ICSP: LVP = OFF Disabled LVP = ON Enabled */ #pragma config LVP = OFF
/* Dedicated In-Circuit Debug/Programming Enable: ICPRT = OFF Disabled ICPRT = ON Enabled */ //#pragma config ICPRT = OFF
/* Extended Instruction Set Enable: XINST = OFF Disabled XINST = ON Enabled */ #pragma config XINST = OFF
/* Background Debugger Enable: DEBUG = ON Enabled DEBUG = OFF Disabled */ #pragma config DEBUG = OFF
/* Boot Block Code Protection: CPB = ON Enabled CPB = OFF Disabled */ #pragma config CPB = OFF
/* Code Protection Block 0,1,2,3: CP0 = ON Enabled CP0 = OFF Disabled */ #pragma config CP0 = OFF #pragma config CP1 = OFF #pragma config CP2 = OFF #pragma config CP3 = OFF
/* Data EEPROM Code Protection: CPD = ON Enabled CPD = OFF Disabled */ #pragma config CPD = OFF
/* Boot Block Write Protection: WRTB = ON Enabled WRTB = OFF Disabled */ #pragma config WRTB = OFF
/* Write Protection Block 0,1,2,3: WRT0 = ON Enabled WRT0 = OFF Disabled */ #pragma config WRT0 = OFF #pragma config WRT1 = OFF #pragma config WRT2 = OFF #pragma config WRT3 = OFF
/* Configuration Register Write Protection: WRTC = ON Enabled WRTC = OFF Disabled */ #pragma config WRTC = OFF
/* Data EEPROM Write Protection: WRTD = ON Enabled WRTD = OFF Disabled */ #pragma config WRTD = OFF
/* Boot Block Table Read Protection: EBTRB = ON Enabled EBTRB = OFF Disabled */ #pragma config EBTRB = OFF
/* Table Read Protection Block 0,1,2,3: EBTR0 = ON Enabled EBTR0 = OFF Disabled */ #pragma config EBTR0 = OFF #pragma config EBTR1 = OFF #pragma config EBTR2 = OFF #pragma config EBTR3 = OFF /* Configurálás vége */
|
szomb. okt. 13, 2007 15:08 |
|
|
watt
gyémánt tag
Csatlakozott: szer. nov. 01, 2006 14:00 Hozzászólások: 3559 Tartózkodási hely: Régi nick .watt Hozzászólások: 3402
|
A Configes dolog megoldódni látszik!
Gory a Hobbielektronika oldalon írt cikkében említést tesz a problémáról, miszerint nem fordítja bele egyik firmware forrásból sem a config biteket az hexába.
A megoldást is leírja, az Fájl/Export menüponttal kell a fordítás után kivinni a teljes állományt. Ki lehet jelölni mit akarunk a hex-ben látni.
Ezúton is köszönöm Gory!
A hivatkozott cikk:
http://www.hobbielektronika.hu/cikkek/p ... mit=%3E%3E
|
szomb. okt. 13, 2007 13:32 |
|
|
watt
gyémánt tag
Csatlakozott: szer. nov. 01, 2006 14:00 Hozzászólások: 3559 Tartózkodási hely: Régi nick .watt Hozzászólások: 3402
|
Köszi! Egy gondom van, hogy a CDC demopanel 20MHzel megy(abból indulok ki). Valamit elnéztem?
|
szomb. okt. 13, 2007 11:10 |
|
|
potyo
gyémánt tag
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 3691 Tartózkodási hely: Ada
|
Úgy nézem, tényleg nincsenek benne config adatok. Szerintem ugyanaz jó kell, hogy legyen oda is, ami a HID-hez kell:
Kód: #pragma config PLLDIV = 1 ; Nincs osztás a PLL előtt (4MHz-es kvarc) #pragma config CPUDIV = OSC1_PLL2 ; PLL kimenete/2 a processzor órajele #pragma config USBDIV = 2 ; PLL kimenete/2 az USB modul órajele
#pragma config FOSC = XTPLL_XT ; XT oszcillátor #pragma config FCMEN = OFF #pragma config IESO = OFF
#pragma config PWRT = ON #pragma config BOR = ON #pragma config BORV = 2 #pragma config VREGEN = ON
#pragma config WDT = OFF #pragma config WDTPS = 8
#pragma config MCLRE = ON #pragma config LPT1OSC = OFF #pragma config PBADEN = OFF #pragma config CCP2MX = OFF
#pragma config STVREN = OFF #pragma config LVP = OFF #pragma config XINST = OFF #pragma config DEBUG = ON
#pragma config CP0 = OFF #pragma config CPB = OFF #pragma config WRT0 = OFF #pragma config WRTB = OFF #pragma config EBTR0 = OFF #pragma config EBTRB = OFF
|
szomb. okt. 13, 2007 10:36 |
|
|
watt
gyémánt tag
Csatlakozott: szer. nov. 01, 2006 14:00 Hozzászólások: 3559 Tartózkodási hely: Régi nick .watt Hozzászólások: 3402
|
Valaki próbálta a CDC firmwaret? Valóban nincs se a bootloaderben, se a firmware-ben configurációs fájl beállítás? Mert nekem a fordításkor nem került a hex-be. Valahol írnak erről?
|
szomb. okt. 13, 2007 10:24 |
|
|
watt
gyémánt tag
Csatlakozott: szer. nov. 01, 2006 14:00 Hozzászólások: 3559 Tartózkodási hely: Régi nick .watt Hozzászólások: 3402
|
potyo írta: Tehát az adatátvitelt mindig a vezérlő kezdeményezi. Érdekes, hogy ezt olvastam, de valahogy nem kristályosodott ki bennem. Viszont azt el kell érni valahogy hogy a lekérdezéskor lássa, hogy van új adat! Nem hiszem, hogy csak bele teszem egy lefoglalt USB memóriahelyre, aztán kész. Be kellene állítani a BUFFER DESCRIPTOR regisztereket is nem? (pl. adathossz, kezdőcím meg ilyenek...)
Ebből nekem egy a lényeg, kompatibilis a 2.0-val!
|
szomb. szept. 22, 2007 10:33 |
|
|
potyo
gyémánt tag
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 3691 Tartózkodási hely: Ada
|
watt
Az USB úgy működik, hogy a vezérlő (host) periódikusan (de azért igen gyakran) lekérdezi az eszközt (device), hogy van-e valamije, amit át kellene vinni a vezérlő irányába. Tehát az adatátvitelt mindig a vezérlő kezdeményezi, az eszköz csak kérésre tud reagálni. Ezért is van mindenfelé az usb specifikációban a "Request" szó. A vezérlő kéréseket küld, és az eszköz reagál rá.
Ezt láttátok: http://www.pcworld.hu/story.php?sid=9587
|
szomb. szept. 22, 2007 2:03 |
|
|
watt
gyémánt tag
Csatlakozott: szer. nov. 01, 2006 14:00 Hozzászólások: 3559 Tartózkodási hely: Régi nick .watt Hozzászólások: 3402
|
Azt kell mondanom, hogy sejtem, mint béka az esőt. Az a program kommentekből is kiderül talán, hogy hova érkezik, és hova íródik vissza, de hogy mitől megy ki és mi okozza, azt nem. NickE mintha azt mondta volna, hogy magától kimegy, ha bekerül valami a megfelelő memóriarekeszbe, de ez számomra nem teljesen érthető, mert nem látom be, hogy csak ennyi lenne. Kicsit ez a poject megrekedt más témák miatt, de majd újból rámozdulok, ha lesz érkezésem... Ha sikerülne elkészülhetne az első USB-s égetőm is, bár ilyen van egy pár már....
Igen a PICcoder működik elvileg.
|
pén. szept. 21, 2007 23:08 |
|
|
AZoli
arany tag
Csatlakozott: kedd nov. 30, 2004 20:13 Hozzászólások: 269
|
Nem egészen világos hogy meddig jutottál. Lehet hogy láma kérdéseim lesznek, bocs.
Azt tudod hogy a PIC mely ram területre írja a PC-től érkezett adatot, és hova kell írni a küldendőt?
A csomagban lévő "PICcoder" progi ehhez a PIC progihoz íródott, kéne működnie?
A driwer telepítése után az XP felismeri a PIC-et, USBtrace lát néhány PIC-be írt adatot.. mint nálad.
|
pén. szept. 21, 2007 18:42 |
|
|
watt
gyémánt tag
Csatlakozott: szer. nov. 01, 2006 14:00 Hozzászólások: 3559 Tartózkodási hely: Régi nick .watt Hozzászólások: 3402
|
A program működik. A témát félretettem, mert más jött közbe.
Ha elindítod a PC progit és bedugod a csatit, felismeri a PC és néhány általam beírt infó is megjelenik, ha az USB monitorral vizsgálod a HID kapcsolatot. Én sem értek még mindent, és a gyanúm az, hogy nem lesz egyszerű szülés.
|
kedd szept. 18, 2007 15:17 |
|
|
AZoli
arany tag
Csatlakozott: kedd nov. 30, 2004 20:13 Hozzászólások: 269
|
watt írta: Doksit nem írtam még hozzá, de a programot a tudásom szerint kommenteztem. Az asm forrást egy C projectből fejtettem vissza gépi kódra, és onnan fejlesztettem fel idáig, hogy már nagyjából érthető mi történik. Felteszek egy csomagot, amiben sok minden van, többek között MPLAB project, C# VS2003 project és egy USB Tracer is. Az egyik könyvtárban az eredeti program található a szükséges windows driverrel együt. www.watt_tar1.tvn.hu/USB_project/USB_csomag_watt.rarRemélem közösen rövidebb idő alatt felfedjük a titkokat!
Szia watt!
Hát szép munka lehetett 1500 sort vissza fejteni és kommentezni... Amit ide feltettél, picusbdemo.asm az működik? Nagyon jó vona egy ilyen .asm kiindulási alapnak, bár sok mindent nem értek. Foglalkoztál azóta a kérdéssel? A csomagban találok valami leírást, hogy mit csinál a progi? (Pl.: az eredeti program rövid ismertetését?)
|
kedd szept. 18, 2007 14:52 |
|
|
NickE
platina tag
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 754
|
kipróbáltam gyorsan, jó
|
pén. aug. 24, 2007 15:50 |
|
|
NickE
platina tag
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 754
|
potyo írta: NickE írta: Ezt lehet esetleg valahogy törölni is, hogy ne emlékezzen a VID/PID párosra? Most olvastam: bedugod az eszközt, és az eszközkezelőből eltávolítod. Ha kihúzod-bedugod, akkor elvileg újra felismeri.
Kösz! Ennek örülök, ki fogom próbálni.
|
pén. aug. 24, 2007 15:38 |
|
|
potyo
gyémánt tag
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 3691 Tartózkodási hely: Ada
|
NickE írta: Ezt lehet esetleg valahogy törölni is, hogy ne emlékezzen a VID/PID párosra? Most olvastam: bedugod az eszközt, és az eszközkezelőből eltávolítod. Ha kihúzod-bedugod, akkor elvileg újra felismeri.
|
pén. aug. 24, 2007 14:35 |
|
|
potyo
gyémánt tag
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 3691 Tartózkodási hely: Ada
|
Nem a driverrel van a gond, hanem azzal, hogy a windows eltárolja, hogy az adott VID/PID kombinációval mi volt csatlakoztatva, és legközelebb, ha egy eszköz ugyanavval a kombinációval kapcsolódik, akkor nem detektálja újra, hanem a már eltárolt adatok alapján megpróbálja betölteni a drivert hozzá. Namost ez pl. pendrive esetén jó, mert nem kell újra felismerni az eszközt minden csatlakoztatáskor, viszont fejlesztésnél hátrány, mert az eszköz közben megváltozhat, és nem a régi driver kell neki.
|
kedd aug. 14, 2007 17:14 |
|
|
stinkydiver
arany tag
Csatlakozott: szomb. júl. 22, 2006 18:22 Hozzászólások: 174 Tartózkodási hely: Ercsi
|
windows\inf könyvtárban a inf file törlése esetleg ?
|
kedd aug. 14, 2007 16:38 |
|
|
potyo
gyémánt tag
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 3691 Tartózkodási hely: Ada
|
Hát a registyben kerestetve a VID vagy a PID azonosítóra van egy rakás találat, de hogy miket kellene törölni, fogalmam sincs.
|
kedd aug. 14, 2007 16:30 |
|
|
NickE
platina tag
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 754
|
potyo írta: Na hogy más ne szívjon emiatt: amikor valamit változtatsz a Descriptorokon, akkor mindig növeld egyel a VID/PID azonosítót is, mert ha a régi marad, akkor a windows megpróbálja az ahhoz már egyszer társított drivereket betölteni, és nem fog működni az eszköz, amit fejlesztesz.
Ezt lehet esetleg valahogy törölni is, hogy ne emlékezzen a VID/PID párosra?
Gondolom, a registryben kell turkálni, csak nem találom...
|
hétf. aug. 13, 2007 8:43 |
|
|
potyo
gyémánt tag
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 3691 Tartózkodási hely: Ada
|
NickE írta: Potyo, Te is a firmware-t használod a PS2<->USB konverterhez, vagy írtál valami saját cuccot? Nem írtam sajátot, a "Mouse In a Circle Demo" nevezetű programot alakítgattam, de nem tudom összehozni sehogysem a két interfészt. Ez a firmware látszólag szépen rendezett, struktúrált, stb. viszont nemigazán látható át, és ahogy olvasgatom a microchip fórumot, nem csak számomra nem átlátható.
Találtam egy CCS kódot két interfésszel, lefordítva gyönyörűen megy, csakhát ugye ez CCS, és az meg egy rakás dolgot másképp csinál, mint a C18. Mondjuk átláthatóbban is van megírva, szépen fel van kommentezve. Azon agyalok, hogy átírom C18-ra. Viszont az egésszel az a gond, hogyha lefordul, de nem működik, akkor kezdhetek vakarózni, hogy miért nem megy.
|
kedd júl. 31, 2007 22:48 |
|
|
watt
gyémánt tag
Csatlakozott: szer. nov. 01, 2006 14:00 Hozzászólások: 3559 Tartózkodási hely: Régi nick .watt Hozzászólások: 3402
|
Nekem már a kedvem is elment tőle, most várom hogy visszajöjjön!
|
kedd júl. 31, 2007 19:18 |
|
|
NickE
platina tag
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 754
|
Potyo, Te is a firmware-t használod a PS2<->USB konverterhez, vagy írtál valami saját cuccot?
Szégyen, de még mindig szívok az egész USB-vel, pedig már kifolyik a szemem, annyit olvastam. Mondjuk van előrelépés, de még nem tartok ott, hogy teljesen átlássak egy alap fw-t.
|
kedd júl. 31, 2007 17:26 |
|
|
NickE
platina tag
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 754
|
Igen, szerintem is az a lényeg, hogy ugyan a rajzokra rápillantva az ember hajlamos lehet azt mondani, hogy fa struktúrát lát, de a tipikus fa struktúrák esetén a csomópontok címezhetők. Tipikus példa az IP cím, ahol ilyen 152.85.67... címeket használnak, az USB viszont nem.
|
kedd júl. 24, 2007 8:50 |
|
|
potyo
gyémánt tag
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 3691 Tartózkodási hely: Ada
|
Talán azért, mert az USB, mint a neve is mondja, gyökeresen eltérő eszközök fizikailag azonos módon történő csatlakoztatására lett kitalálva. Ráadásul kezdetben a viszonylag lassú adatátvitel miatt olyasmi fel sem merült, hogy digitális kamerából közvetlenül dvd-t írni, és hasonló okosságok. A lassú eszközök pedig tipikusan olyanok, hogy csak a pc és az eszköz közötti kommunikációnak van értelme (pl. mit akarna egy egér és egy szkenner egymásnak küldeni). Viszont a bővíthetőség és a könnyű leválasztás is szempont volt, ezért egy olyan megoldást kellett alkalmazni, ami tetszőlegesen bővíthető (egy bizonyos szintig), ugyanakkor egymástól "független" kommunikációs útvonala van minden eszköznek a host felé.
|
hétf. júl. 23, 2007 23:52 |
|
|
watt
gyémánt tag
Csatlakozott: szer. nov. 01, 2006 14:00 Hozzászólások: 3559 Tartózkodási hely: Régi nick .watt Hozzászólások: 3402
|
Talán azért csillag, mert így az egyedi kiszolgáló hub-ok nem zavarják egymást, közvetlenebbül kapcsolódik a hardver a CPU-hoz, talán...
A fa azért fordított, mert a gyökerét rajzolják. Az is a fához tartozik nem?
|
hétf. júl. 23, 2007 12:26 |
|
|
NickE
platina tag
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 754
|
Jókat kérdezek, remélem, örültök neki
Miért csillag topológiájú az USB? Miért nem fa? (hurokmentes gráf)
Továbbá miért rajzolják a matematikusok a fát "fejjel lefelé"?
Na jó, ezt elárulom:
mert annyira zárkózott életidegen lények, akik a szobájukban könyveik között roskadoznak éjjel-nappal, és még nem láttak igazi fát.
|
hétf. júl. 23, 2007 11:30 |
|
|
potyo
gyémánt tag
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 3691 Tartózkodási hely: Ada
|
Nekem szürkén sincs. Na mindegy, jön lefele a telepítő, én meg most kimegyek paradicsomot szedni.
|
szomb. júl. 21, 2007 16:17 |
|
|
NickE
platina tag
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 754
|
Ha ott van a toolsban, csak elszürkítve, akkor az a baj, hogy olyan PIC van kiválasztva, amit nem támogat. Az USB-s PIC-ek nem jók sajnos. Pl. 4620 jó.
Monjuk ezzel a témával lehet, hogy át kellene vonulni a PIC kérdések topicba, csak az autofiles miatt hoztam fel itt.
|
szomb. júl. 21, 2007 16:12 |
|
|
watt
gyémánt tag
Csatlakozott: szer. nov. 01, 2006 14:00 Hozzászólások: 3559 Tartózkodási hely: Régi nick .watt Hozzászólások: 3402
|
Nekem sincs ott. Én is megnézem a telepítést...
|
szomb. júl. 21, 2007 15:42 |
|
|
potyo
gyémánt tag
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 3691 Tartózkodási hely: Ada
|
NickE írta: MPLAB > Tools > Visual Initializer Lehet, hogy telepítésnél kivettem előle a pipát, és azért nincs. A telepítőt meg optimistán etöröltem. Most le szedem újra, és azután megnézem.
|
szomb. júl. 21, 2007 15:40 |
|
|
NickE
platina tag
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 754
|
MPLAB > Tools > Visual Initializer
USB-vel kapcsolatban elég lassan, de stabilan haladok. (túl sok az olvasnivaló) Erre a kérdésre még sajnos nem tudok válaszolni.
|
szomb. júl. 21, 2007 9:49 |
|
|
potyo
gyémánt tag
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 3691 Tartózkodási hely: Ada
|
Kezit csókolom, hol találom ezt a Visual Initializert
Amúgy a PS2-USB átalakító már megy, kipróbáltam, a BIOS is túrható vele, még hubon keresztül csatlakoztatva is. Amiért ügyetlenkedek még, hogy a hangerőszabályzó, indítás, stop, meg ilyen-olyan gombok is működjenek, és ehhez kellene egy másik interfész is bele. Meg hamár csinálom, akkor nem (lenne) nagy mutatvány az egér csatlakoztatása sem. Azért csak nem lenne, mert nem tudom rávenni, hogy egyszerre mindkét eszköz megjelenjen az eszközkezelőben. Külön-külön mindkettő megjelenik, tehát a Descriptorok jók. Csak valahol a pic nem ad vissza valami adatot, amit kellene, én meg nem tudom, hogy hol. A neten meg nem találok sehol két HID Interface-t tartalmazó kódot, így nem tudom, mit kellene módosítani a forráskódon. Végigtúrtam a kódot, de nem tudok rájönni, hogy mi kellene még bele.
|
szomb. júl. 21, 2007 3:32 |
|
|
NickE
platina tag
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 754
|
Tudtátok, hogy a firmware-ben az autofiles mappa honnan kapta a nevét?
Most tudtam meg. Az MPLAB-ban van egy Visual Initializer. Nem tudom, hogy szoktátok-e használni? Én nem, pedig érdekes dolog. Az a lényege, hogy ki kell választani először a PIC típusát, aztán megjelenik annak ábrája, mellette pedig a perifériái. Portjai, timerek, I2C, SPI, U(S)ART, watchdog, resetek, ...
Amelyik modul tulajdonságait be szeretnénk állítani, annak ikonját rá kell "vonszolni" a PIC-re, duplaklikk rajta és jönnek a beállítások. Pl. UART esetén bps, adatbitek száma, de az is bolondbiztos módon legördülő listában 8/9, nehogy el lehessen rontani, kiszámítja a brg értékét, a hiba%-ot, ...
Gyakorlatilag olyan, mint a 4GL-ek (Delphi, VB, Visual Studio, ...), ahol az üres formra rádobáljuk a komponenseket, beállítjuk azok főbb jellemzőít, viselkedésüket, propertyekt, ..., az keretrendszer meg legenerálja a kódot.
Na, hogy a kérdésre is válaszoljak, az autofiles = autogenerated files. Elvileg kellene USB-nek is lenni a komponensek között, de nincs. Gondolom, Rawin barátunk birkózik az 50 fájlból álló forrásával.
Pedig elképezelem Potyot, hogy örülne, mikor a vizuális inicializerrel rádodbna a 18F2550-re egy USB-t, meg egy USART-ot, az USB-n duplaklikk után a legördülő listából kiválasztaná, hogy HID eszköz, jönnének a descriptortáblázatok szépen sorban (Device, Config, Interface, Endpoint), mindegyiknél egyszerű eldöntendő kérdéseket tenne fel, hogy pl. adja meg az eszköz nevét, írja be a max áramfogyasztását, természetesen hibás bevitel lehetetlen, a HID listán belül kiválasztaná, hogy Billentyűzet Class, aztán hasolóan felkonfigolná a soros portot, a két modult (USB-USART) összekapcsolná, végül pedig a Wizard megkérdezi, hogy a kódot C-ben vagy ASM-ben kéri és már generálá is a PS2-USB átalakító kódját, mint a kisangyal.
Ez igazán nem nagy kérés. Drukkolok Rawinnak.
Viccet félretéve természetesen a vizuális inicializer is olyan, mint a 4GL-ek, a komponest leteszük, annak tulajdonságait beállíthatjuk vele, aminek megfelelően generálja a kódot, de a programot nem fogja megírni. Pl. egy gomb méretét, színét, szagát állíthatjuk, de hogy gombnyomásra mi történjen, azt már nekünk kell leprogramozni. Hát a Visual Initializer is ilyen.
Léteznek ilyen keretszoftverek, amelyek a Microchip firmware kódját generálják, de a keretrendszerben megadott értékeket behelyettesítik a megfelelő mezőkbe, ellenőrzik a bevitt értékeket, ..., csak mind fizetős cucc. Meg én szeretem érteni is, hogy mi történik, nem csak autogenerálni, de azért érdekes és hasznos, praktikus progik ezek...
|
pén. júl. 20, 2007 21:41 |
|
|
watt
gyémánt tag
Csatlakozott: szer. nov. 01, 2006 14:00 Hozzászólások: 3559 Tartózkodási hely: Régi nick .watt Hozzászólások: 3402
|
Vitatkozni semmiképpen nem akarok, ez biztos!
Még egyszer megnézem az ajánlott forrást, lehet, hogy így az enyém utás sokkal többet megértek belőle.
|
szer. júl. 18, 2007 12:00 |
|
|
NickE
platina tag
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 754
|
most tanulmányozom, egyszerűbbnek tűnik, mint a többi, amiket eddig láttam
De nem vitatkozni akarok, mindenki válassza a neki tetszőt.
|
szer. júl. 18, 2007 11:56 |
|
|
watt
gyémánt tag
Csatlakozott: szer. nov. 01, 2006 14:00 Hozzászólások: 3559 Tartózkodási hely: Régi nick .watt Hozzászólások: 3402
|
Ismerem ezt a munkát, de nem mondhatnám, hogy előrébb voltam vele, mint ezzel. Azt írod könnyebb megérteni. Nem akarok genyó lenni, de ezek szerint érted?
|
szer. júl. 18, 2007 9:51 |
|
|
potyo
gyémánt tag
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 3691 Tartózkodási hely: Ada
|
NickE írta: csak nehéz átlátni kezdőként. Szerintem eléggé lehetetlen. Nem azért, mert nem értem a kódot, hanem egy rakás fontos dolog nincs felkommentezve; a definiált konstansok, a struktúrák, stb. A CCS fordítóban jobban fel vannak kommentezve a cuccok, csak ugye jobban szeretjük a C18-at, mivel az a gyári fordító.
|
szer. júl. 18, 2007 9:18 |
|
|
NickE
platina tag
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 754
|
Kis kiegészítés. A Microchip fórumon sokan dicsérik Bradley Minch munkáját. Olin College nevezetű suliban tanár, ahol a diákoknak készített Lab Kiteket, amin gyakorolhatnak. Van asm és C forrás is. Egy darab forrásfájlban van a kód, nem úgy mint a Microchipes frameworkben, ami ugyan a programozás iskolapéldája, szépen elkülönített headerfájlok, forrásfájlok, maximálisan struktúrált, minden szép, minden jó, csak nehéz átlátni kezdőként.
http://forum.microchip.com/tm.aspx?m=89669&mpage=1
http://pe.ece.olin.edu/ece/projects.html
Ezt szerintem könnyebb megérteni, mint amit most debuggolsz.
|
szer. júl. 18, 2007 9:07 |
|
|
NickE
platina tag
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 754
|
Átnéztem a kódot. Nem egyszerű módon közelíted meg az USB tanulást.
|
szer. júl. 18, 2007 7:58 |
|
|
watt
gyémánt tag
Csatlakozott: szer. nov. 01, 2006 14:00 Hozzászólások: 3559 Tartózkodási hely: Régi nick .watt Hozzászólások: 3402
|
Doksit nem írtam még hozzá, de a programot a tudásom szerint kommenteztem. Az asm forrást egy C projectből fejtettem vissza gépi kódra, és onnan fejlesztettem fel idáig, hogy már nagyjából érthető mi történik.
Felteszek egy csomagot, amiben sok minden van, többek között MPLAB project, C# VS2003 project és egy USB Tracer is. Az egyik könyvtárban az eredeti program található a szükséges windows driverrel együt.
www.watt_tar1.tvn.hu/USB_project/USB_csomag_watt.rar
Remélem közösen rövidebb idő alatt felfedjük a titkokat!
|
kedd júl. 17, 2007 20:17 |
|
|
NickE
platina tag
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 754
|
Nem jelzi, hanem az IN pufferekbe (IN EP) kell tenni az adatokat és azokat a host időközönkét kiolvassa. A PIC nem tud szólni a PC-nek, hogy küldeni akar.
Mai napom USB-re szántam én is, de most addig nem állok meg, amíg nem fog menni a dolog. Érdekel a progid és ha írsz hozzá valami doksit, az is. Természetesen én is igyekszem majd az eredményeket megosztani veletek.
|
kedd júl. 17, 2007 19:04 |
|
|
watt
gyémánt tag
Csatlakozott: szer. nov. 01, 2006 14:00 Hozzászólások: 3559 Tartózkodási hely: Régi nick .watt Hozzászólások: 3402
|
Nem állítom, hogy értem mi miért van, de elég sok dolog kezd világossá válni, csak még nem állt össze, hogy el is tudjam magyarázni.
pl. már van egy működő demo progim, ami asm-ban van.
Két számot ad át a PC progi és egyet kap vissza.
Addig már eljutottam, hogy hogyan fogadja, szorozza össze a két értéket, és az is követhető, hogy leteszi egy memória címre az adatot(RAM pufferbe)
A PC->PIC irány már megvan, azaz tudom fogadni az átadott adatot, így fel is tudom dolgozni.
Az viszont nem tiszta, hogy hogyan jelzi a PC-nek, hogy adat van a pufferben. Ha erre rájönnék, akkor ki tudnék kényszeríteni egy adatátvitelt, ami a PC-progiban meg is jelenne...
Mennyire értitek a BDxSTAT regiszterek működését és a BD(Buffer Descriptor) táblát, és SIE és a CPU módot?
|
kedd júl. 17, 2007 17:43 |
|
|
potyo
gyémánt tag
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 3691 Tartózkodási hely: Ada
|
Az a baj, hogy még a Microchip féle példaprogramokban is van egy csomó dolog, ami nem világos nekem, hogy miért van. Mondjuk az sem segíti a megértést, hogy 8-10 fájlban vannak a dolgok, és össze-vissza használja a definiált konstansokat, meg hívogatja meg a függvényeket.
|
kedd júl. 17, 2007 11:22 |
|
|
watt
gyémánt tag
Csatlakozott: szer. nov. 01, 2006 14:00 Hozzászólások: 3559 Tartózkodási hely: Régi nick .watt Hozzászólások: 3402
|
Én is így voltam vele, le is akadtam és más elvitte a figyelmemet. Talán megint felfrissítem a témát, ha más így belelendültetek!
|
kedd júl. 17, 2007 4:49 |
|
|
NickE
platina tag
Csatlakozott: szer. márc. 24, 2004 13:43 Hozzászólások: 754
|
Igen, azt láttam én is, hogy a framework sem használ megszakításokat, de például az Oshon honlapján is olvastam, hogy
UsbService statement should be executed as often as possible, because several calls to UsbService routine are necessary to process each of the USB events. I have however tested the same example with WaitMs 500 statement after the UsbService and there were no problems experienced. The device was only slow with its responses to the PC.
Igaz nem írja, hogy gondot okozott volna a ritkább függvényhívás, csak belassult...
Most nem találom, hogy hol, de úgy emlékszem, hogy a Microchipes USB Framework valamelyik doksijában is írták, hogy tanácsos gyakran hívogatni az USB eseményeket kezelő függvényeket.
Az a bajom ezzel az USB-vel, hogy erre rá kéne szánni kb. egy hónapot, hogy kicsit jobban képben legyek. Descartes szavai jutnak eszembe:
„Mert annyi kétségbe és tévedésbe voltam bonyolódva, hogy úgy látszott, tanulmányimnak nincs is más hasznuk, mint az, hogy mindjobban beláttam tudatlanságomat.”
|
hétf. júl. 16, 2007 21:58 |
|
|
Ki van itt |
Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 13 vendég |
|
Nem nyithatsz témákat ebben a fórumban. Nem válaszolhatsz egy témára ebben a fórumban. Nem szerkesztheted a hozzászólásaidat ebben a fórumban. Nem törölheted a hozzászólásaidat ebben a fórumban.
|
|
|