Velleman support

BlitzMax Forums/BlitzMax Programming/Velleman support

Nigel Brown(Posted 2006) [#1]
I have just added code to support the velleman vm110 usb interface board.

http://www.maplin.co.uk/Module.aspx?C=Newsletter&U=06P11-2toys&ModuleNo=42857&T=461694

Specifications:
5 digital inputs (0= ground, 1= open) (on board test buttons provided)
2 analogue inputs with attenuation and amplification option (internal test +5V provided)
8 digital open collector output switches (max. 50V/100mA) (on board LED indication)
2 analogue outputs 0 to 5V, output resistance 1K5Ω PWM 0 to 100% open collector outputs max 100mA/40V (on board LED indication)
General conversion time 20ms per command
Power supply through USB approx. 70mA
Dimensions 145 x 88 x 20mm
Diagnostic software with DLL included

Global	DllHandle:Int=LoadLibraryA("K8055D_C.DLL")

	Global ClearAllAnalog()"Win32"=GetProcAddress( DllHandle, "_ClearAllAnalog@0" )
	Global ClearAllDigital()"Win32"=GetProcAddress( DllHandle, "_ClearAllDigital@0" )
	Global ClearAnalogChannel( Channel:Int )"Win32"=GetProcAddress( DllHandle,"_ClearAnalogChannel@4" )
	Global ClearDigitalChannel( Channel:Int )"Win32"=GetProcAddress( DllHandle,"_ClearDigitalChannel@4" )
	Global CloseDevice()"Win32"=GetProcAddress( DllHandle, "_CloseDevice@0" )
	Global OpenDevice:Int( CardAddress:Int )"Win32"=GetProcAddress( DllHandle, "_OpenDevice@4" )
	Global OutputAllAnalog( Data1:Int , Data2:Int )"Win32"=GetProcAddress( DllHandle,"_OutputAllAnalog@8" )
	Global OutputAnalogChannel( Channel:Int , Data:Int )"Win32"=GetProcAddress( DllHandle,"_OutputAnalogChannel@8" )
	Global ReadAllAnalog( Data1:Int Ptr, Data2:Int Ptr )"Win32"=GetProcAddress( DllHandle,"_ReadAllAnalog@8" )
	Global ReadAllDigital:Int()"Win32" = GetProcAddress( DllHandle,"_ReadAllDigital@0" )
	Global ReadAnalogChannel:Int( Channel:Int )"Win32"=GetProcAddress( DllHandle,"_ReadAnalogChannel@4" )
	Global ReadCounter:Int( CounterNr:Int )"Win32"=GetProcAddress( DllHandle,"_ReadCounter@4" )
	Global ReadDigitalChannel:Int( Channel:Int )"Win32"=GetProcAddress( DllHandle,"_ReadDigitalChannel@4" )
	Global ResetCounter( CounterNr:Int )"Win32"=GetProcAddress( DllHandle,"_ResetCounter@4" )
	Global SearchDevices:Int()"Win32"=GetProcAddress( DllHandle, "_SearchDevices@0" )
	Global SetAllAnalog()"Win32"=GetProcAddress( DllHandle,"_SetAllAnalog@0" )
	Global SetAllDigital()"Win32"=GetProcAddress( DllHandle,"_SetAllDigital@0" )
	Global SetAnalogChannel( Channel:Int )"Win32"=GetProcAddress( DllHandle,"_SetAnalogChannel@4" )
	Global SetCounterDebounceTime( CounterNr:Int, DebounceTime:Int )"Win32"=GetProcAddress( DllHandle,"_SetCounterDebounceTime@8" )
	Global SetCurrentDevice:Int( CardAddress:Int )"Win32"=GetProcAddress( DllHandle, "_SetCurrentDevice@4" )
	Global SetDigitalChannel( Channel:Int )"Win32"=GetProcAddress( DllHandle,"_SetDigitalChannel@4" )
	Global Version()"Win32"=GetProcAddress( DllHandle,"_Version@0" )
	Global WriteAllDigital( Data:Int )"Win32"=GetProcAddress( DllHandle,"_WriteAllDigital@4") 




TeaVirus(Posted 2006) [#2]
Looks useful, thanks Nigel! I have a couple questions. Does the "20ms conversion time between commands" mean that I can only sample data every 20 milliseconds? Also, (and I guess this relates to the first question) do you know what the max frequency of the analog input is? I'm looking for a device like this with a high frequency analog input (possibly up to 40Khz).


Nigel Brown(Posted 2006) [#3]
@TeaVirus, I believe the 20ms refers to the time taken for the device to recognise the command. You could email info@... for more info or check out his website for more info: http://www.re-applications.be/ You dont say what sort of ADC you are looking for how many channels etc.. this can affect the sample rat.