Megválaszolatlan hozzászólások | Aktív témák Pontos idő: szer. jún. 05, 2024 19:01



Hozzászólás a témához  [ 69 hozzászólás ]  Oldal 1, 2  Következő
usb 2.0 
Szerző Üzenet
platina tag

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 754
Hozzászólás 
Akkor Te a PC oldali programozást megúszod.


vas. jan. 27, 2008 20:49
Profil Privát üzenet küldése
gyémánt tag
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 3691
Tartózkodási hely: Ada
Hozzászólás 
Már tegnap este megtörtént a hiba jelentése.


vas. jan. 27, 2008 19:02
Profil Privát üzenet küldése Honlap
platina tag

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 754
Hozzászólás 
Írd meg a hibát Minchnek, hátha kapsz tőle egy szóbeli hátbaveregetést. :D


vas. jan. 27, 2008 19:00
Profil Privát üzenet küldése
gyémánt tag
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 3691
Tartózkodási hely: Ada
Hozzászólás 
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
Profil Privát üzenet küldése Honlap
platina tag

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 754
Hozzászólás 
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
Profil Privát üzenet küldése
gyémánt tag
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 3691
Tartózkodási hely: Ada
Hozzászólás 
Kezdem lassan kapisgálni, hogyan működik az usb felismerés folyamata. :D Ennek örömére találtam egy hibát Brad Minch féle lab2c firmware-ben 8)

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
Profil Privát üzenet küldése Honlap
gyémánt tag
Avatar

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
Hozzászólás 
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
Profil Privát üzenet küldése Honlap
gyémánt tag
Avatar

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
Hozzászólás 
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
Profil Privát üzenet küldése Honlap
gyémánt tag
Avatar

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
Hozzászólás 
Köszi! Egy gondom van, hogy a CDC demopanel 20MHzel megy(abból indulok ki). Valamit elnéztem?


szomb. okt. 13, 2007 11:10
Profil Privát üzenet küldése Honlap
gyémánt tag
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 3691
Tartózkodási hely: Ada
Hozzászólás 
Ú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
Profil Privát üzenet küldése Honlap
gyémánt tag
Avatar

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
Hozzászólás 
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
Profil Privát üzenet küldése Honlap
gyémánt tag
Avatar

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
Hozzászólás 
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...)

potyo írta:

Ebből nekem egy a lényeg, kompatibilis a 2.0-val! :)


szomb. szept. 22, 2007 10:33
Profil Privát üzenet küldése Honlap
gyémánt tag
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 3691
Tartózkodási hely: Ada
Hozzászólás 
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
Profil Privát üzenet küldése Honlap
gyémánt tag
Avatar

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
Hozzászólás 
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
Profil Privát üzenet küldése Honlap
arany tag

Csatlakozott: kedd nov. 30, 2004 20:13
Hozzászólások: 269
Hozzászólás 
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
Profil Privát üzenet küldése
gyémánt tag
Avatar

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
Hozzászólás 
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
Profil Privát üzenet küldése Honlap
arany tag

Csatlakozott: kedd nov. 30, 2004 20:13
Hozzászólások: 269
Hozzászólás 
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.rar

Remé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
Profil Privát üzenet küldése
platina tag

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 754
Hozzászólás 
kipróbáltam gyorsan, jó :D


pén. aug. 24, 2007 15:50
Profil Privát üzenet küldése
platina tag

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 754
Hozzászólás 
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
Profil Privát üzenet küldése
gyémánt tag
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 3691
Tartózkodási hely: Ada
Hozzászólás 
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
Profil Privát üzenet küldése Honlap
gyémánt tag
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 3691
Tartózkodási hely: Ada
Hozzászólás 
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
Profil Privát üzenet küldése Honlap
arany tag
Avatar

Csatlakozott: szomb. júl. 22, 2006 18:22
Hozzászólások: 174
Tartózkodási hely: Ercsi
Hozzászólás 
windows\inf könyvtárban a inf file törlése esetleg ?


kedd aug. 14, 2007 16:38
Profil Privát üzenet küldése Honlap
gyémánt tag
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 3691
Tartózkodási hely: Ada
Hozzászólás 
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
Profil Privát üzenet küldése Honlap
platina tag

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 754
Hozzászólás 
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
Profil Privát üzenet küldése
gyémánt tag
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 3691
Tartózkodási hely: Ada
Hozzászólás 
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
Profil Privát üzenet küldése Honlap
gyémánt tag
Avatar

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
Hozzászólás 
Nekem már a kedvem is elment tőle, most várom hogy visszajöjjön! :)


kedd júl. 31, 2007 19:18
Profil Privát üzenet küldése Honlap
platina tag

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 754
Hozzászólás 
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
Profil Privát üzenet küldése
platina tag

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 754
Hozzászólás 
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
Profil Privát üzenet küldése
gyémánt tag
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 3691
Tartózkodási hely: Ada
Hozzászólás 
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
Profil Privát üzenet küldése Honlap
gyémánt tag
Avatar

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
Hozzászólás 
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? :D


hétf. júl. 23, 2007 12:26
Profil Privát üzenet küldése Honlap
platina tag

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 754
Hozzászólás 
Jókat kérdezek, remélem, örültök neki :D

Miért csillag topológiájú az USB? Miért nem fa? (hurokmentes gráf)

Kép

Kép

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. :D


hétf. júl. 23, 2007 11:30
Profil Privát üzenet küldése
gyémánt tag
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 3691
Tartózkodási hely: Ada
Hozzászólás 
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
Profil Privát üzenet küldése Honlap
platina tag

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 754
Hozzászólás 
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
Profil Privát üzenet küldése
gyémánt tag
Avatar

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
Hozzászólás 
Nekem sincs ott. Én is megnézem a telepítést...


szomb. júl. 21, 2007 15:42
Profil Privát üzenet küldése Honlap
gyémánt tag
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 3691
Tartózkodási hely: Ada
Hozzászólás 
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
Profil Privát üzenet küldése Honlap
platina tag

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 754
Hozzászólás 
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
Profil Privát üzenet küldése
gyémánt tag
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 3691
Tartózkodási hely: Ada
Hozzászólás 
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. :evil: 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. :roll:


szomb. júl. 21, 2007 3:32
Profil Privát üzenet küldése Honlap
platina tag

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 754
Hozzászólás 
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. :D

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
Profil Privát üzenet küldése
gyémánt tag
Avatar

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
Hozzászólás 
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
Profil Privát üzenet küldése Honlap
platina tag

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 754
Hozzászólás 
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
Profil Privát üzenet küldése
gyémánt tag
Avatar

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
Hozzászólás 
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
Profil Privát üzenet küldése Honlap
gyémánt tag
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 3691
Tartózkodási hely: Ada
Hozzászólás 
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
Profil Privát üzenet küldése Honlap
platina tag

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 754
Hozzászólás 
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
Profil Privát üzenet küldése
platina tag

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 754
Hozzászólás 
Átnéztem a kódot. Nem egyszerű módon közelíted meg az USB tanulást.


szer. júl. 18, 2007 7:58
Profil Privát üzenet küldése
gyémánt tag
Avatar

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
Hozzászólás 
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
Profil Privát üzenet küldése Honlap
platina tag

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 754
Hozzászólás 
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
Profil Privát üzenet küldése
gyémánt tag
Avatar

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
Hozzászólás 
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
Profil Privát üzenet küldése Honlap
gyémánt tag
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 3691
Tartózkodási hely: Ada
Hozzászólás 
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
Profil Privát üzenet küldése Honlap
gyémánt tag
Avatar

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
Hozzászólás 
É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
Profil Privát üzenet küldése Honlap
platina tag

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 754
Hozzászólás 
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
Profil Privát üzenet küldése
Hozzászólások megjelenítése:  Rendezés  
Hozzászólás a témához   [ 69 hozzászólás ]  Oldal 1, 2  Következő

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.

Keresés:
Ugrás:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Magyar fordítás © Magyar phpBB Közösség