CuVoodoo

the sorcery of copper

User Tools

Site Tools


busvoodoo

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
busvoodoo [2017/12/15 11:08] – [firmwares] kingkevinbusvoodoo [2017/12/22 16:55] – [protocols] add max. speedr kingkevin
Line 12: Line 12:
  
 Device features: Device features:
-  * compact rigid case: 49.3x27.7 mm+  * compact case: 56.0x27.7x14.7 mm
   * host connection: USB 2.0 (mini-B, full speed: 11 Mb/s)   * host connection: USB 2.0 (mini-B, full speed: 11 Mb/s)
   * 2 light indicators: red for power, red+blue for activity   * 2 light indicators: red for power, red+blue for activity
Line 35: Line 35:
   * RS-485/RS-422 port (not terminated)   * RS-485/RS-422 port (not terminated)
   * CAN port (not terminated)   * CAN port (not terminated)
 +
 +programming connector:
 +  * on the board (in the bottom left corner) there is a 2x4 connector (2 mm pitch)
 +  * DFU pin to force the DFU mode and [[#flashing|flash over USB]] (short to the neighbouring 5V pin while powering up)
 +  * UART port to use the BusVoodo as protocol bridge (it provides the same menu as over USB), or [[#flashing|flash using the embedded bootloader]]
 +  * SWD port for [[#flashing|flashing]] or developing firmware
  
 === not the World's first ever: === === not the World's first ever: ===
Line 67: Line 73:
 ===== protocols ===== ===== protocols =====
  
 +The BusVoodoo implements numerous low-speed protocols.
 +The hardware is only designed for signals speeds up to 20 MHz.
 The signals can be driven using 3.3 V push-pull mode, or 1.6 to 5.5 V open-drain mode with 2 kOhm embedded pull-up resistors (can be increased using external resistor). The signals can be driven using 3.3 V push-pull mode, or 1.6 to 5.5 V open-drain mode with 2 kOhm embedded pull-up resistors (can be increased using external resistor).
  
Line 98: Line 106:
 ===== firmwares ===== ===== firmwares =====
  
-Since the BusVoodoo uses native USB, it can be [[flashing|re-flashed]] to clone other USB device.+By default the BusVoodoo adapter comes with the main BusVoodoo firmware. 
 +When connected to USB it is detected as a serial device (using the standard [[https://en.wikipedia.org/wiki/USB_communications_device_class|CDC ACM]] profile). 
 +Just connect to it using your favorite serial terminal and off you go. 
 +But since the BusVoodoo hardware uses native USB, it can be [[#flashing|re-flashed]] to clone other USB device.
 This allows to convert the BusVoodoo into a dedicated/task specific adapter. This allows to convert the BusVoodoo into a dedicated/task specific adapter.
  
Line 108: Line 119:
  
 note: the alternative firmware are not implemented yet note: the alternative firmware are not implemented yet
 +
 +===== flashing =====
 +
 +The BusVoodoo is pretty much unbrickable.
 +It provides several flashing methods:
 +  - the main BusVoodoo firmware provides USB Device Firmware Upgrade (DFU) capabilities. [[http://dfu-util.sourceforge.net/|dfu-util]] will automatically switch the device from runtime mode to DFU mode and flash the firmware.
 +  - if switching from runtime to DFU mode does not work, connect to the BusVoodoo using the serial terminal and switch to DFU mode using the menu
 +  - if the BusVoodoo does not appears as USB serial device, there is still a serial port on the debugging connector. Connect to it using an USB to serial adapter and switch to DFU mode using the menu
 +  - if the main firmware is broken and the menu is not accessible over the USB or serial port, short the 5V and DFU pins  on the programming connector (follow the DFU indication on the board) while powering the device. This will force booting the DFU bootloader instead of the main application
 +  - if the DFU bootloader (or USB) is broken, short the ICP pad to ground using twizzers (follow the ICP indication on the board) while powering the device. This will start the STM32 embedded UART bootloader, allowing you to [[stm32f1xx#embedded_bootloader|flash]] the DFU bootloader (or main application) over the serial port on the programming header. :!: The embedded UART bootloader uses the internal RC oscillator. If this is defective (e.g. part not coming from a trustworthy distributor) this method will not work
 +  - finally you can use the SWD pins on the programming connector to [[stm32f1xx#swj|flash using SWD]], provided you have and SWD adapter. This also allows to properly debug the firmware. :!: For some unknown reason sometimes after power-up the SWD adapter will not be able to find the micro-controller. Briefly reset the micro-controller by shorting RST to ground using tweezers (follow the RST indication on the board). From there on it will always be detected.
 +  - if none of the above methods work, the device is definitely bricked (or defective). congratulations.
 ===== history ===== ===== history =====
  
Line 148: Line 171:
 The Bus Pirate is not the only alternative though. The Bus Pirate is not the only alternative though.
 There is also the [[https://greatscottgadgets.com/greatfet/|GreatFET]], supporting high speed protocols, but is more of a development board than a ready to use tool. There is also the [[https://greatscottgadgets.com/greatfet/|GreatFET]], supporting high speed protocols, but is more of a development board than a ready to use tool.
-And there is the [[http://datenkrake.org/|Datenkrake]] for even high speed protocols (using an FPGA), but is also more of a development board than a ready to use tool.+And there is the [[http://datenkrake.org/|Datenkrake]] for even higher speed protocols (using an FPGA), but is also more of a development board than a ready to use tool.
  
 But BusVoodoo will never replace dedicated tools (USB to UART dongle, JTAG adapter, flash programmer, ...) or prevent from using a development board to control all nifty protocol details. But BusVoodoo will never replace dedicated tools (USB to UART dongle, JTAG adapter, flash programmer, ...) or prevent from using a development board to control all nifty protocol details.