Op 9 maart 2009 09:51:41 schreef madwizard:
VOTI verkocht ook VID/PIDs en is daarmee gestopt na klachten van de USB club (wat waarschijnlijk betekend dat de pids die ik daar gekocht heb dus ook waardeloos zijn).

Wel irritant dat stricte VID/PID gedoe, dat maakt het niet makkelijker op. Als ze daar nou gewoon een GUID oid voor gebruikt hadden ipv twee 16-bit nummertjes. Maarja ze zullen daar hun geld wel mee verdienen.

waardeloos zullen ze wel niet zijn. waarmee ik bedoel : je kan ze best voor eigen gebruik blijven hanteren zonder dat er gevaar bestaat op driver contention. maar een product maken en verkopen met die vid/pid zou ik niet durven...

het vid/vip probleem is ingewikkeld.
De reden dat ze strict zijn is dat je je er -letterlijk- kan aan verbranden. er circuleert al een smerige driver . een of ander stom taiwanees bedrijf heeft een product op de markt wat ze gerelesed hebben met de vid/vip van cypress. met als gevolg als je een je generic procut met een cypress FX processor inplugt je haast altijd een smerige dvb driver geladen krijgt die je haast niet van je systeem afkrijgt. ( manueel registrey editen en zelf op zoek gaan naar de ini en inf files die de vid vip bevatten. meestal oem22.inf en oem34.inf ...)
dat is er dus eentje die door de mazen van het net geglipt is.

Daarom zijn er spelregels
- VID wordt toegekend aan pruct fabrikanten en IC fabrikanten

iemand die eigenaar is van een VID is VERANTWOORDELIJK en aansprakelijk wanneer het in de soep draait met prodcuten die onder zijn VID gereleased zijn..
vandaar : PID mag niet verkocht worden. elke VID heeft en blok PID.
er is 1 uitzondering : Chipfabrikanten mogen PID toekennen aan gebruikers van hun chips. Cypress doet dat , ftdi doet dat, microchip doet dat zelfs st doet dat. en er zullen er nog wel zijn. Dit is courtesy.
Maar der zit een adder : die PID mag niet verkocht worden ! en ook de eventuele libraries mogen niet verkocht worden. Het moet weggeven worden. Je moet je registreren bij de chipfabirkant. zij moeten bijhouden wie welke PID heeft en dit moet gerapporteerd worden aan USB.ORG.

en hier is de email die ik kreeg van obdev deze morgen ( ik heb ze gisteren een aantal vragen gesteld :
read eand weep ...

> Can i get this certified by USB.ORG ?

No, you can't.

> or is your product inherently
> incompliant ? I mean , can this pass the electrical tests and protocol
> tests?

It is inherently incompliant. The AVR's input and output characteristics
don't match the spec and we don't do CRC checks. There'll soon be an 18
MHz version which does CRC checks on the data, though.

> Can i sell this legally ? I keep hearing from multiple sources that it
is
> actually illegal to sell VID/VIP pairs and that people and companies
have
> been prosecuted by usb.org for doing this .

You can't make a USB compliant device anyway. But you can sell it
legally, as long as you don't claim that it is USB compliant. You may
probably claim that it has a USB B connector...

Regarding IDs: you can't license simple numbers. Usb.org licenses the
"usb compliant" label and you have to buy a number range from them in
order to comply.

We have a number range which we obtained from -deleted- who in turn paid
usb.org a certain amount so that he gets an exclusive range. He promised
us not to give our range to anybody else, and if we pass on IDs, we
promise not to give them to any body else. Thus it is guaranteed that
the IDs are unique, the only technical requirement.

We don't sell the IDs. We sell the AVR-USB license and bundle IDs with
it.

vooral 'we doen geen crc checks. das toch maar en klein detail' doet me de haren ten berge rijzen ...

de beste manier om een vid/pid te bekomen is : ga naar de fabrikant van je gebruikte processor en vraag een pid aan. die krijg je zonder problemen. Dan kan je mooi je ding maken en is er gene probleem je gaat geen driver miserie krijgen ( verkeerde driver association) omdat die PId /VID combinatie nu van jou is.
Sommige fabrikanten staan toe dat je ook daadwerkelijk een product verkoopt met die VID.PID erin. (microchip en FTDi doen dat. ST ook) let wel : die VID/PID mag ALLEEN gebruikt worden met chips van die fabrikant. dus geen VID/PID van ST op een microchip ic laten draaien !! dat is niet toegestaan

[Bericht gewijzigd door free_electron op (10%)]

@the dutchman: youre welcome.
@Free_E: er staat mij bij dat een HID keyboard wel een KMD heeft of is het gewoon dat er een winservice draait die de kernel hookt?

de windows usb handle's ben ik nog niet tegengekomen(moet ik me nog in verdiepen)

echter wel die van proton en die werkt tot nu toe voor de helft(omdat ik nog niet klaar ben met testsoftware)

[Bericht gewijzigd door timmie op (38%)]

wat is KMD ?

keyboards zijn HID maar hebben een extra layer zitten voor legacy (lees : dos box)
keyboards zijn eigenlijk een klasse apart . daar zit nog iets onder. heeft te maken met moderdorden die vanuit bios met usb keyboards kunnen werken. er is een emulation layer. ik denk dat die op hardware nieveau zit. keys komen binnen asl usb pakket maar ook als 'ps/2' keystroke

[Bericht gewijzigd door Henry S. op (38%)]

KMD=KernelModeDriver

Obdev heeft hun PIDs volgens mij gewoon van voti
http://www.voti.nl/pids/
10200 - 10299 OBJECTIVE DEVELOPMENT Software GmbH, AUSTRIA
Geen CRC checks, lekker dan ja.

HID heeft voor muizen, keyboards (en nog iets) aparte boot functionaliteit naast de HID interface. Omdat HID descriptors als te ingewikkeld worden gezien om in een BIOS te parsen is daar iets speciaals voor (voor de rest weet ik er de details ook niet van).

HID is trouwens wel vrij ruim gedefinieerd, het is niet zo dat het alleen voor de standaard muizen/toetsenborden/etc is. Maar het is ook weer niet bedoeld voor grote data transfers.

Het probleem met VID/PID snap ik wel maar daarom juist verbaasd het me zo dat ze daar zo'n relatief kleine range voor hebben genomen (2x16-bit). Als ze daar nou een groter ID voor gebruikt hadden zoals GUIDs, of zoiets als MAC adressen is de kans op collisions wel erg klein. Nu is die juist groter (zeker door vage chinese apparaten en ook hobbyisten) omdat het zo 'lastig' is een officieel VID/PID paar te krijgen.

eh ja dat stond er ook in de mail die ik gekregne heb. ik wou wouter niet in problemen brengen dus ik had er -deleted- van gemaakt ... maar als ie der zelf reclame mee maakt :)

Op 8 maart 2009 21:20:15 schreef BenZ:
[...]
-Als je goed overweg kan met BASIC voor je PC waarom zoek je dan iets anders?
-In welke taal schrijf je je PICprogrammas?

Ik kan goed overweg met BASIC voor de PIC, voor de pc zoek ik een programma.
maar aangezien meer dan de helft van jullie er niet uit kan komen wat nu het beste programma is :+, heb ik een kleine vraag.

Uit welke programma's kan ik kiezen (om mee te gaan leren) als ik uiteindelijk naar meet en regelsystemen toe wil.

En dan heb ik er natuurlijk niets aan als ik eerst iets ga leren en er vervolgens niet mee kan doen wat ik wil doen :P

Maurice.

p.s. nu niet weer gaan zeiken of LIBusb nu wel of niet goed is he :9

Nenee.. Libusb heeft er voor mij part ook gelegen :) dus dat kan je alvast schrappen van je lijst van opties.

Ik zou je aanraden om met HID te beginnen. Ik probeer het in Visual Studio 2008 .NET.. maar ik geraak er zelf niet 100% aan uit zie: http://www.circuitsonline.net/forum/view/69496
via via staat daar de code die communiceert met een PIC18F2550.

Het kan dusver een paar dingen:
- Detecteren van Plugged
- Unplugged
- VendorName en ProductName van het device verkrijgen.

Maar het lukt me niet om iets te schrijven of te lezen.
Ik heb ondertussen al zoveel dingen geprobeerd. Niks lijkt echt 100% met zekerheid te werken (maar dit kan ook aan mij liggen natuurlijk)

Verder kan je je is door het oerwoud van gegevens van Jan Axelson begeven :
http://www.lvr.com/usb.htm

Als ik deze mcHID.dll niet volledig werkend krijg word dat mijn volgende optie jammer genoeg.

Het is niet makkelijk, dat kan ik je verzekeren.
Grtjs.

Op 12 maart 2009 23:12:53 schreef mdmkoopman:
[...]

Ik kan goed overweg met BASIC voor de PIC, voor de pc zoek ik een programma.

Uit welke programma's kan ik kiezen (om mee te gaan leren) als ik uiteindelijk naar meet en regelsystemen toe wil.

Met welke taal op de PC kan je overweg? Is dat VisualBasic, dan is mijn voorbeeld mogelijk bruikbaar.
Als je een BASICvariant gebruikt voor je firmware is het de vraag of die USB-funkties bevat. Zo niet, dan is mijn voorbeeld in ASM mogelijk bruikbaar.

[Bericht gewijzigd door BenZ op (29%)]

Je kunt in plaats van HID mogelijk beter beginnen met CDC. Zeker als je simpelweg data wilt oversturen tussen PC en device lijkt me CDC handiger dan HID.
Microchip heeft een kant en klaar framework beschikbaar waarmee je in no-time een werkende verbinding hebt. Zonder vage libraries aan de PC-zijde, maar simpelweg een virtuele serial port die door elk programma te benaderen is. Drivers hiervoor zitten al in windows. Ik heb voor mijn afstuderen dit framework als basis gebruikt. Hieronder een stukje uit het verslag:

Firmware
De voor de hardware benodigde firmware is ontwikkeld in de ontwikkelomgeving van Microchip. De firmware is geschreven in C, en er is gebruikt gemaakt van de Microchip C18 compiler. Van deze compiler is een gratis versie te verkrijgen, waar een aantal optimalisaties uitgehaald zijn.

USB framework
Zoals eerder vermeld bevat de 18F2450 een ingebouwde USB module. Microchip heeft hiervoor een framework ter beschikking gesteld die de benodigde functionaliteit bevat. Op basis van dit framework kan op eenvoudige wijze een eigen applicatie gebouwd worden, zonder dat men het volledige USB protocol uit het hoofd hoeft te leren. Er zijn verschillende standaard toepassingen beschikbaar. Voor dit project is alleen de CDC versie van belang.
De CDC (Communication Device Class) code emuleert een seriële poort over de USB verbinding. Voor de applicatie en de programmeur lijkt of er via een gewone seriële poort gecommuniceerd wordt.
Het CDC framework is als project te openen in MP-LAB, de ontwikkelomgeving van Microchip. In principe kan de standaard code gelijk gecompileerd worden om te testen.

ik sluit me bij greenmagic aan. voor zowat elke controller is de cdc class firmware beschikbaar.
langs de pc kant is dat ook volledig ondersteund. open de poort en babbelen maar.

software voor controle meet en regelsystemn. ik gebruik daar visual basic voor. Ik heb een compleet systeem in visual basic wat toestaat om een harddiskcontroller te vervangen , de motor te sutren, snelheid te regelen , de kop kan laden en de kop op ene track halen ( je pakt een harddisk : trekt de printplaat eraf. soldeert 4 draden aand e motor en 2 draden aan de voicecoil en knoopt die aan mijn systeem. ik neem de functie over van de complete electronica. ( mits natuurlijk onderstuenenede electronica ertussen .usb -cpu fpga, een arm processor etc)

terzefldertijd tatert dit ding tegen allerhande meetapparatuur via GPIB (multimeters, voedingen , network analyser) via ethernet tegen een oscilloscoop en het Vb programma opent zelf ook een TCP/IP poort zodat je de boel kan remoten. Ofwel bedien je de boel lokaal , ofwel zet je de opstelling in eremote en start het programma op ene andere computer ook op. daar geef ja aan : de meetapparatuur en hardware zit niet locaal maar op een server met dit ip address. ( die ganse GUI is ontkoppeld van de HAL. Communicatie tussen de twee gaat over tcp/ip. ofwel via 127.0.0.1 ofwel via een ander ip)
dit geeft meteen ook de mogelijkheid om via andere software binnen te koppelen ( ik gebruik matlab , python en vb )

Dus kies maar: programmeer je PIC in ASM, BASIC of C.
En aan de PCkant: serie-emulatie of HID.
Mijn advies: kijk wie er een compleet werkend USB-systeem heeft en pas dat naar believen aan.