Data Acquisitiekaart als HID device

Postby pjongen » Thu Mar 12, 2009 12:00 am

Als je de data-aquisitiekaart wil gebruiken moet je in de PC een driver installeren. Dat is op zich geen bezwaar als je de kaart steeds op één of een beperkt aantal PC gebruikt.

De USB specificatie kent ook de z.g. HID specificatie (Human Interface Device). Die wordt gebruikt voor keyboards, muizen, gamepads en dergelijke. Drivers voor HID devices zijn al in windows ingebouwd, dus daarvoor hoef je geen driver meer te installeren.

Als 'vinger oefening' heb ik de Firmware van de data-aquisitie kaart als (general) HID device geprogrammeerd. Nu kan ik de DA kaart aan elke PC koppelen zonder dat er een driver geinstalleerd moet worden.

Natuurlijk heb ik ook de PC software hierop aangepast. In mijn geval in C#.

Als extra plus is de Software opgezet rond 'events'. Informatie uit de PIC komt in de software via een 'event' binnen. Dat wil zeggen dat de firmware in de PIC ook informatie naar de PC kan sturen, zonder dat de PC software daarvoor eerst een 'read' commando moet doen.

Mocht iemand belangstelling hebben voor deze opzet, PM mij dan.
pjongen
 
Posts: 64
Joined: Thu Jan 02, 2014 3:37 pm

Postby arjen h. » Thu Mar 12, 2009 12:00 am

pjongenAls 'vinger oefening' heb ik de Firmware van de data-aquisitie kaart als (general) HID device geprogrammeerd. Nu kan ik de DA kaart aan elke PC koppelen zonder dat er een driver geinstalleerd moet worden.
Erg goed!

pjongenAls extra plus is de Software opgezet rond events'. Informatie uit de PIC komt in de software via een 'event' binnen. Dat wil zeggen dat de firmware in de PIC ook informatie naar de PC kan sturen, zonder dat de PC software daarvoor eerst een 'read' commando moet doen.
Heel bruikbaar!

pjongenMocht iemand belangstelling hebben voor deze opzet, PM mij dan.
Doe ik...
Het Elektor forum is voor de lezers; voor een vraag aan de redactie kun je het beste Elektor een email sturen.
arjen h.
Moderator
 
Posts: 1291
Joined: Thu Jan 02, 2014 10:40 am

Postby drejansen » Thu Mar 12, 2009 12:00 am

hallo P,
ik heb interesse in zo'n gemodificeerde data aqusitiekaart.

drie vragen:
hoe kom ik daar aan?
wat kost het?
hoe verstuur je een personal message?

groeten Dré.
Het leven is een groot feest, maar je moet zelf de slingers ophangen
User avatar
drejansen
 
Posts: 13
Joined: Thu Jan 02, 2014 3:27 pm
Location: Hoeksche Waard

Postby arjen h. » Thu Mar 12, 2009 12:00 am

drejansenhoe kom ik daar aan?
Zelf maken...

drejansenwat kost het?
Hang af van hoe je het maakt. Je kunt de print en controller bij Elektor bestellen, maar je kunt de schakeling ook op een gaatjesprint opbouwen en de componenten ergens anders bestellen*. Afhankelijk van de in- en uitgangen die je gebruikt kun je ervoor kiezen om wel of geen connectoren te solderen. Heb je wel zelf de mogelijkheid om de PIC van de nieuwe software te voorzien? Oftewel heb je een PIC programmer?

drejansenhoe verstuur je een personal message?
Klik op de blauwe naam links naast het bericht...


* De PICs gratis sampelen gaat niet meer zo makkelijk bij Microchip zag ik
Het Elektor forum is voor de lezers; voor een vraag aan de redactie kun je het beste Elektor een email sturen.
arjen h.
Moderator
 
Posts: 1291
Joined: Thu Jan 02, 2014 10:40 am

Postby rrakke » Tue Dec 29, 2009 12:00 am

Hi Peter,

Een jaar gelden heb ik de Data Acquisitiekaart gemaakt en tot nu toe er nog niet veel mee gedaan. Recentelijk ben ik weer begonnen met de hobby en probeer ik vanuit VB de DA kaart aan te sturen.

Nu las ik op het forum over jouw HID firmware. Dit is zeer interessant. Ik ben geïnteresseerd in jouw firmware waarmee je de kaart als HID kan aanspreken. Zou je mij kunnen voorzien van de HID firmware?

Ik kwam ook op het forum tegen dat je standaard VB routines had gemaakt om de kaart aan te sturen. Durf het bijna niet te vragen, maar het zou mij veel tijd besparen als ik gebruik van jouw code zou mogen maken. Alvast bedankt.

Vriendelijke groet,

Ronald
rrakke
 
Posts: 13
Joined: Thu Jan 02, 2014 3:30 pm

Postby pjongen » Wed Jan 20, 2010 12:00 am

Recap;
Voor oorspronkelijke DA project heb je een driver nodig in de PC. (Voor VISTA en W7 moet je overigen een nieuwe drive van de microchip site laden.) Daar staat ook iets over op het forum. Kijk daarom ook even in de andere threads.

De software voor de PC van het DA project was geschreven in C++. Ik spreek nauwelijks C++ en daarom heb ik voor mezelf de software in C# geschreven. Daar bleek belangstelling voor te bestaan en dus heb ik deze op het forum gezet. Voor een aantal mensen was C# ook een probleem en daarom heb ik de software ook voor VB.NET en VB6 geschreven en op het forum gezet. Als die versies er niet meer staan zal ik ze wel uit mijn back-ups kunnen terughalen.
Daarmee was de PC software en dus de DA kaart voor de meeste mensen toegankelijk geworden. Iets dat het oorspronkelijke project miste.

Nu over HID.

Als je de PIC via het HID protocol laat werken heb je geen driver meer nodig in de PC. Dat is gemakkelijk als je het op verschillende PC wil gebruiken.
Maar de PC software om met een HID device te praten is wezenlijk anders.
Bij mijn speurwerk naar hoe dan met een HID device te praten vanuit C# stuitte ik op een library die het redelijk eenvoudig maakt. HID samen met die library maakt het bovendien heel eenvoudig om de software volledig “event driven” te maken.
Om dat voordeel uit te leggen even terug naar de oorspronkelijke software.
De firmware van de oorspronkelijke DA wacht op een commando. Als een commando ontvangen is stuurt de PIC een antwoord. Bv de PC stuurt ‘SEND_ANALOG 0’ en de PIC antwoord met de waarde die gemeten wordt aan Analoog poort 0. De soft- en firmware is volledig command-response georiënteerd. Ook na een command ‘OUTPUT_BIT 3’ stuurt de PIC een antwoord terug (het commando). Zonder commando doet de PIC dus niets! Je moet dat antwoord afwachten voor je een volgend commando kunt sturen. Het is mij niet gelukt meer dan 64 commando’s per seconde te sturen. Dat kan wel anders maar niet met de software zoals die bij het project werd gegeven.

De HID library maakt het mogelijk dat de firmware in de PIC zelfstandig, dus zonder dat er eerst een commando gegeven wordt, gegevens naar de PC gaat sturen. Ik heb daar in mijn project gretig gebruik van gemaakt. (mijn project zie: http://phpjj.web-log.nl/ ). Even voor de duidelijkheid, in dit project gebruik ik dus de DA software helemaal niet meer.

Bij mijn eerste experimenten met het HID protocol heb ik de DA firmware geheel nagebouwd. Dus nog steeds Command – Response. Toen dat werkte heb ik een interrupt routine aan de firmware toegevoegd die 180x per seconde de waardes van alle 8 de analoge inputs van de PIC naar de PC stuurt. Die interrupt kan ik met behulp van een command uit de PC software aanzetten en uitzetten. Tegelijkertijd werken de command-response commando’s nog steeds.

Ik heb een experiment gedaan waarbij ik de interrupt routine en command-response tegelijk liet lopen en zo tot >500 analoge waarden per seconde naar de PC kon krijgen. Dat is nergens voor nodig, maar het KAN. Daarmee was voor mij de prove of concept geslaagd en ben ik verder gegaan met het ontwikkelen van de firmware voor mijn project.

Ik heb de PC software voor de HID_DA geschreven in C#. Ik heb heel even gekeken of ik de HID-library ook met VB.NET kon gebruiken en dat lijkt wel te lukken. Dus een VB.NET versie is te maken. Of die library ook met VB6 gaat werken durf ik niet te zeggen. Ik kan dat niet even testen want ik heb geen VB6 op mijn huidige systeem staan.

Dat betekent dus als ik lees: ‘VB6’…….. en stuur mij de de DA-HID firmware dan heeft dit geen zin. Want als je niet met C# of minsten VB.NET overweg kunt, dan kan ik je geen bijpassende PC software meesturen.

Ik ga met alle plezier even achter mijn PC zitten om werkende set van mijn bovenbeschreven experiment met HID Firmware (source + hex) en PC software samen te stellen. Maar de PC software is dan in C#.
VB.NET wil ik wel proberen,maar dat kost iemand een fles wijn

VB6 voorlopig niet.
Als je alleen maar VB6 praat dan raad ik je aan de oorspronkelijke firmware te blijven gebruiken en de VB6 software daarvoor te gebruiken.
pjongen
 
Posts: 64
Joined: Thu Jan 02, 2014 3:37 pm

Postby arjen h. » Thu Jan 21, 2010 12:00 am

Hoi Peter, goed weer eens wat van je te lezen.

pjongenIk ga met alle plezier even achter mijn PC zitten om werkende set van mijn bovenbeschreven experiment met HID Firmware (source + hex) en PC software samen te stellen. Maar de PC software is dan in C#.

Je hebt me al eerder wat gestuurd, maar hoewel ik vrij structureel dingen op kan bergen heb ik dit nu zo goed gedaan dat ik het niet terug kan vinden (slordig). Graag zou ik ook eens je experiment uit willen voeren, want wat je schrijft, dat installeren van de driver elke keer is niet handig.

pjongen... maar dat kost iemand een fles wijn

Die heb je nog van mij tegoed voor je hulp bij de toerenteller!

groeten,
Arjen.
Het Elektor forum is voor de lezers; voor een vraag aan de redactie kun je het beste Elektor een email sturen.
arjen h.
Moderator
 
Posts: 1291
Joined: Thu Jan 02, 2014 10:40 am

Postby arjen h. » Fri Jan 22, 2010 12:00 am

Arjen H.Je hebt me al eerder wat gestuurd, maar hoewel ik vrij structureel dingen op kan bergen heb ik dit nu zo goed gedaan dat ik het niet terug kan vinden (slordig).
Gevonden!
Het Elektor forum is voor de lezers; voor een vraag aan de redactie kun je het beste Elektor een email sturen.
arjen h.
Moderator
 
Posts: 1291
Joined: Thu Jan 02, 2014 10:40 am


Return to 2007-11 USB data-acquisitiekaart

Who is online

Users browsing this forum: No registered users and 1 guest