Hello,
On the FRDM-k64F, I'm having trouble with the USB connection.
The idea of my project is to use the FRDM as a simple device (without any class driver configured, MQX standard is the OS) and communicate with host via bulk mode.
I used Processor Expert to start the project and the beginning seemed ok : endpoint 0 is working correctly and vendor class commands are fonctionnal.
Here is the descritpion of the device seen by host (via /proc/bus/usb/devices command)
T: Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=12 MxCh= 0
D: Ver= 2.00 Cls=ff(vend.) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=0c52 ProdID=9474 Rev= 1.00
S: Manufacturer=Freescale Processor Expert
S: Product=Processor Expert USB Device component
S: SerialNumber=123456789ABCDEF
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA
I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
E: Ad=81(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
However, I failed to communicate with endpoint 1 or 2.
I have tested my bulkRead() and bulkWrite() functions with another device and everything was fine on this side.
I tried to debug the code on the device but I saw no interruptions when the read/write is done on the host. It's like they didn't exist.
Here is the sequence I used thanks to the generated code by Processor Expert :
usb_device_init(USB_CONTROLLER_KHCI_0, usb_board_init, &usb_handle);
usb_device_postinit(USB_CONTROLLER_KHCI_0, usb_handle);
usb_device_register_desc_request_notify(usb_handle, &usbDsc1_desc_callback, NULL);
usb_device_register_vendor_class_request_notify(usb_handle,usb_vendor_class_request,NULL);
usb_device_init_endpoint(usb_handle,&IOComms_EndpointInfoArray[0],TRUE);
The status of the device_init_endpoint is ok. What am I missing to complete communication with endpoint 1 ?
Thanks in advance for the help!
Antoine
PS : my environnement is KDS 3.0.0 / Ubuntu