USB2SPI - Platform for USB-to-SPI applications
USB2SPI is an interface platform to connect SPI devices over USB to a host computer.
- Feature-rich Microchip PIC32 microcontroller:
- Crystal-less, synchronizes with USB clock. USB Full-Speed device.
- 32kByte RAM: Up to 23 kByte RAM useable for application, e.g. for data collection/buffering
- Various packages available:: 28pin SSOP/QFN/UQFN
- Compatible with 3V3 or 5V
- Bootloader available: Flexibility to make future extensions without hardware adaptation
- Serial number embedded in bootloader: multiple devices can be used simultaneously on one host.
Firmware
There is no optimally fitting standard firmware - the transfer type, the data flow and the firmware components are chosen individually.
Please contact me and describe your application!
- Optimization of data flow directly in the firmware to reduce communication overhead (e.g. checking of status/ready/finished flags).
- Critical timings in SPI communication can be solved in the firmware
- Depending on the sensor type, the optimal transfer type can be selected (Control, Bulk, Interrupt). Some performance test results:
- Controltransfer: 120 kByte/s
- Interrupt (e.g. as HID): 62 kByte/s @ 3 MHz SPI, 64 Byte packages
- Bulk (Test: read blocks of 64 byte from eeprom over SPI in blocking mode, addressing costs bandwidth):
- 210 kByte/s @ 3 Mhz SPI
- 230 kByte/s @ 6 Mhz SPI
- 310 kByte/s @ 12 Mhz SPI
- 750 kByte/s transfer Data from interal RAM without any SPI interaction.
Software
Libraries and example programs (e.g. in Java or Python) for the host software can be provided to match the customized firmware.
Hardware
For evaluation purposes, add-on boards can be designed and plugged onto the base board.