Csr Usb Spi Driver
●CSR USB-SPI Programmer driver is a USB-to-SPI converter. Which adopts true USB port. Its communicating speed is much higher than regular parallel port.
- Csr Usb Spi Driver Update
- Csr Usb Spi Driver Usb
- Csr Usb Spi Driver Manual
- Csr 1324 Usb-spi Converter Driver
- Usb Spi Converter
- The older versions of the MD-CC30x-001 USB to SPI and MD-CC40x-001 USB to RS-422/485 communication converter cables were developed to work with Windows 32-bit operating systems. These cables must have the the internal ID reset in order to be supported by current Windows 64-bit operating systems.
- USB-SPI Features: CSR USB-SPI debugger is a real USB interface, much faster than the parallel port, which solves the trouble of the computer without the parallel port user. CSR USB-SPI supports CSR full range of debugging tools, including BlueFlash, PSTOOL, BlueTest3, BlueLab and so on.
CSR USB-SPI Programmer is a USB-to-SPI converter. Which adopts true USB port. Its communicating speed is much higher than regular parallel port.
It not only supports CSR all Series of testing tools, including BlueFlash,PSTOOL,BlueTest3,BlueLab etc., but also supports testing software which downloaded from Bluelab, supporting breakpoint debugging/single-step debugging etc. With this programmer, users can also burn the software via tools like BlueFlash.
CSR USB-SPI Programmer driver is a USB-to-SPI converter. Which adopts true USB port. Its communicating speed is much higher than regular parallel port.
Features:
●Supporting all CSR Chipset Series, for instance,
-BC2 Series(E. g. BC215159A etc.)
-BC3 Series(E. Beechcraft king air 350 flight manual. g. BC31A223,BC358239A etc.)
-BC4 Series(E. g. BC413159A06,BC417143B,BC419143A etc.)
-BC5 Series(E. g. BC57F687,BC57E687,BC57H687C etc.)
-BC6 Series(E. g. BC6110,BC6130,BC6145,CSR6030,BC6888 etc.)
-BC7 Series(E. g. BC7820,BC7830 etc.)
-BC8 Series(E. g. CSR8605, CSR8610, CSR8615, CSR8620, CSR8630, CSR8635, CSR8640, CSR8645, CSR8670, CSR8675 etc.)
-CSRA6 Series(E. g. CSRA64110,CSRA64210,CSRA64215 etc.)
-CSR10 Series(E. g. CSR1000,CSR1001,CSR1010,CSR1011,CSR1012,CSR1013 etc.)
-CSRB5 Series(E. g. CSRB5341,CSRB5342,CSRB5348 etc.)
●Supporting most Windows OS, including,
- Windows XP SP2 and above (32 & 64 bit)
- Windows Server 2003 (32 & 64 bit)
- Windows Server 2008 / 2008 R2 (32 & 64 bit)
- Windows Vista (32 & 64 bit)
- Windows 7 (32 & 64 bit)
- Windows 10 (32 & 64 bit)
●Small size(6.5cm*1.7cm), easy to carry.
Pin Port Definition:
Application:
●Firmware Programming
Csr Usb Spi Driver Update
●CSR-Chip Module Testing
Driver Downloading:
●Please visit documentation download part in this page to get the driver.
Note:
●When this device is successfully installed, you will find it in the device manager list, see the reference image below.
- DownloadName:CSR USB-SPI Programmer Driver.zip
- Module
- Beacon
- Solution
- Support
- DownloadVideoFeedback
- About Us
Follow Us:
Table of Contents
- CSR BlueCore USB SPI programmer/debugger
- CSR chips supported by programmer
- Programmer hardware
- Software
- Installing prebuilt drivers
- Using the driver
- Building for Wine
- Building DLL for Windows
This is USB SPI programmer and debugger for CSR BlueCore bluetooth chips, basedon FTDI FT232R USB to UART converter chip. Programmer hardware can be madeusing simple FT232RL breakout board, or built as a dedicated programmer usingincluded schematic. Programmer driver works by replacing USB SPI programmerdriver, usbspi.dll, in CSR applications and is currently ported to Linux/Wineand Windows.
Project home page: https://github.com/lorf/csr-spi-ftdi.
CSR chips supported by programmer
Generally, all CSR BlueCore chips starting with BlueCore 2 should be supported.Programmer was tested with the following chips:
- BC417143 (on HC-05 module)
- BC57F687A
- CSR8645
- BC212015 (reported by Alex Nuc, see Chip notes)
Chip notes
- BlueCore chips require either 3.3V or 1.8V I/O voltage level. Check thedatasheet.
- Some chips (like CSR8645) share SPI pins with PCM function. For such chips tobe accessible via SPI,
SPI_PCM#
pin should be pulled up to I/O voltagesupply through a 10K resistor. - On some chips
SPI_DEBUG_EN
(on BC6140) orSPI_PIO#
(on CSR1010) pinshould be pulled up directly to I/O voltage supply to enable SPI port. - BlueCore chips which integrate battery charger has charger configurationenabled by default. Such chip may shutdown shortly after power on if Youdon't connect charged battery. Battery charger configuration is defined in
PSKEY_USR0
and can be changed using appropriate Configuration Tool orPSTool. See sample PSR files for disabling charger in misc/. - BlueCore 2 chips (such as BC212015) are not supported in BlueSuite 2.4 andabove. It's also reported that to flash/dump these chips it's required tolower SPI speed. So for BC2 chips it's recommended to use BlueSuite 2.3 andset
SPIMAXCLOCK=200
option.
Programmer hardware
Programmer hardware is based on FT232R chip. It is possible that latergeneration FTDI chips, such as FT2232C/D/H or FT232H, will also work, but thiswas not tested.
Using FT232RL breakout board as a programmer
You can build a simple programmer using popular FT232RL breakout boards (searchEbay for FT232RL adapter
for example). Pinout specified in spi.c file.Change it at will. Note that FTDI boards usually provide 5V or 3.3V I/O levelswhile CSR chips require 3.3V or 1.8V I/O level. You may supply appropriateVCCIO to FTDI chip or use logic level converter if levels don't match. Seedescription of VCCIO pin in FTDI chip datasheet for details.
This is a default pinout:
Signal | FT232RL pin | FTDI pin name | FTDI GPIO bit | CSR pin |
---|---|---|---|---|
CS# | 2 | DTR# | D4 | SPI_CS# |
CLK | 3 | RTS# | D2 | SPI_CLK |
MOSI | 6 | RI# | D7 | SPI_MOSI |
MISO | 9 | DSR# | D5 | SPI_MISO |
TX | 1 | TXD | Not used | UART_RX |
RX | 5 | RXD | Not used | UART_TX |
LED_RD | 10 | DCD# | D6 | -- |
LED_WR | 11 | CTS# | D3 | -- |
GND | 7, 18, 21 | GND | -- | GND |
SPI and UART BlueCore pins could be connected directly to FTDI pins, but I'drecommend to wire them through the 220 Ohm (or so) resistors.
TX and RX connections are optional and provide connectivity to BlueCore UART.
LED connections are optional. Wire LED cathodes through the current limitingresistors (330 Ohm works fine) to the appropriate FTDIpins. Wire LED anodes to FTDI 3V3 pin.
Other pinouts can be specified with FTDI_PINOUT
Option.
Don't power BlueCore chip from FT232R internal 3.3V regulator! It's currentdraw may exceed FT232R 50mA limit, which may cause communication errors.
Also see notes on Counterfeit FT232RL chips.
Dedicated programmer
KiCad schematic for a dedicated programmer can be found inhardware/ subdirectory.
Counterfeit FT232RL chips
Cheap (< $5) FT232RL modules usually contain counterfeit FT232RL chips(1,2,3). I'vegot such chip (this one has read-only EEPROM, S/N A50285BI, probably it's ageneration 2 counterfeit) andverified csr-spi-ftdi to work with it.
There is a known data loss issue with counterfeit FT232RL chip and ASM1042 USB3.0 controller. If You encounter it (You'll get an error on stderr, seeTroubleshooting), try to replug the programmer to othercontroller. Note that genuine FT232RL works fine with this controller.
Counterfeit IC also may produce some communication errors, but they areautomatically retried, so in general it works well enough.
Some versions of Windows FTDI driver tend to intentionallybrick1st generation counterfeit chips by setting their PID to 0x0000. Thereareunbrick(2) andprotectprocedures, but csr-spi-ftdi will work on the bricked chips too.
Software
CSR software
This driver is tested with CSR BlueSuite 2.1 - 2.6.0 and with CSR BlueLab 4.1,but should work with other CSR software, such as SDK, ADK, Configuration Tool,Parameter Manager. Newer versions of BlueSuite can be found athttps://www.csrsupport.com/PCSW
. Older versions of BlueSuite can be found athttps://www.csrsupport.com/PCSWArchive
. Access to these pages requiresregistration.
Installing prebuilt drivers
Prebuilt drivers for Linux and Windows can be downloaded fromhttps://github.com/lorf/csr-spi-ftdi/releases.
Installing on Ubuntu/Debian Linux
Install Wine:
Install CSR BlueSuite in Wine. Find all instances of usbspi.dll installed andmove them out of the way:
Copy usbspi.dll.so to Wine system directory:
Alternately You can specify location of the .dll.so file in WINEDLLPATHenvironment variable, see wine(1) man page for details.
Allow yourself access to FTDI device
After that You'll need to add yourself to plugdev
group and relogin.
Installing on Windows
- Install CSR package such as BlueSuite;
- Make a backup of usbspi.dll in your application directory (e.g. in
C:Program Files (x86)CSRBlueSuite 2.6.0
); - Copy lib-win32/usbspi.dll to your application directory;
- Connect Your FTDI device to computer;
- Download and run Zadig from http://zadig.akeo.ie/. In Options menu choose
List all devices
, choose Your FTDI device (FT232R USB UART
or similar),choose libusbK driver, pressReplace driver
orInstall driver
. Thiswill install generic libusb-compatible driver for your FTDI chip. There is atutorial on running libftdi programs on Windows here:http://embedded-funk.net/running-libftdi-under-windows/; - Run your CSR apps.
Using the driver
Choosing USB transport
Older BlueSuite defaults to use CSR SPI LPT programmer, to use csr-spi-ftdi Youneed to select USB SPI transport. Use -TRANS 'SPITRANS=USB SPIPORT=1'
optionfor command line tools. Importmisc/spi-set-usb-transport.reg to change thedefault.
Options
Csr-spi-ftdi driver supports several options that can be set as environmentvariables or using the -TRANS option to most CSR commandline apps.
SPIMAXCLOCK
- Maximum SPI clock frequency in kHz, default is 1000.Practical values range from 20 to 2000. CSR app may slow SPI clock down whenread or write verification fails. Some commands are always executed at 20kHz.FTDI_LOG_LEVEL
- sets csr-spi-ftdi log level, available log levels:quiet
,err
,warn
,info
,debug
. Adding a,dump
option provides hexdumps of transferred data. Example:FTDI_LOG_LEVEL=info,dump
. Default:warn
.FTDI_LOG_FILE
- specify log file name. Can be set tostdout
to log tostandard output, or tostderr
to log to standard error stream. Default:stderr
.FTDI_INTERFACE
(since version 0.5.1) - specify interface on multi-interfacechips (FT2232, FT4232). Default:A
.FTDI_PINOUT
(since version 0.5.2) - specify a pinout. Available pinouts:default
- default pinout as described in Using FT232RL breakout board asa programmer.noleds
- this is the same asdefault
but without LEDs.hwspi
- pinout for use with MPSSE chips (FT2232, FT4232, FT232H), usesthe same pins as hardware SPI. Note that hardware SPI capability is notused, just the same pinout is used for convenience. This pinout can be usedwith adapters like TIAOTUMPA.The pinout is as follows:CS
-DBUS3
,CLK
-DBUS0
,MOSI
-DBUS1
,MISO
-DBUS2
.hwspi+leds
- this is the same ashwspi
but adds read and write LEDs onDBUS4
andDBUS5
pins respectively.
Csr Usb Spi Driver Usb
For other options see misc/transport-options.md.
Communication speed
Reading or writing a 1 MB flash on HC-05 module takes about 60 seconds. DumpingHC-05 PS keys takes about 40 seconds.
Running csr-spi-ftdi in a virtual machine slows things down presumably due tolatency added by USB virtualization. E.g. running csr-spi-ftdi under VirtualBoxslows transactions down about 4x times.
Useful commands
These commands should be executed from directory where BlueSuite is installedor this directory should be in your PATH.
Display chip ID, this is also a quick communication test:
Display chip ID, firmware version and flash size:
Save firmware backup (only for chips with flash, backup will include PSkeys):
This creates two files, csr-fw-backup.xpv
and csr-fw-backup.xdv
.
Flash firmware from files
csr-fw.xpv
andcsr-fw.xdv
:Collect debug logs:
Lower SPI speed 5 times:
Save chip settings (PS Keys) backup into
csr-pskeys.psr
:Merge some settings from
pskeys.psr
to the chip:3rd grade reading comprehension practice. Backup whole EEPROM image to a file:
Restore EEPROM contents from backup file:
Troubleshooting
- Decreasing SPI speed using
SPIMAXCLOCK
option may help in caseof communication failures. Unable to start read (invalid control data)
errors are usually harmless,since read attempts are retried. If You've got a pile of theese errors andprogrammer doesn't work - check connections, voltage levels, try to lower SPIconnection resistor values or connecting ~ 1nF capacitors in parallel withresistors. Decreasing SPI speed usingSPIMAXCLOCK
option mayalso help.WARNING: Attempt %d to read sector %d
warnings are also harmless if they arenot result in error.Couldn't find LPT port
error means You use spilpt.dll driver instead ofusbspi.dll. Try importingmisc/spi-set-usb-transport.reg or adding-trans 'SPITRANS=USB SPIPORT=1'
option on command line.Lost %d of %d bytes of data in transit
orERROR: Download Failed, Sector%d
- probably an indication of counterfeit FT232RL plugged into ASM1042 USB3.0 controller. Try to replug into other controller. See Counterfeit FT232RLchips.
Building for Wine
Building Wine DLL on 32-bit Debian/Ubuntu Linux
Install build tools:
Install development libraries:
Build with command:
Building Wine DLL on 64-bit Debian/Ubuntu Linux
Install build tools:
Install 32 bit stuff:
Build with command:
Installing
Csr Usb Spi Driver Manual
Install CSR BlueSuite in Wine. Find all instances of usbspi.dll installed andmove them out of the way:
Install Wine dll into the Wine libraries directory:
Alternately You can specify location of the .dll.so file in WINEDLLPATHenvironment variable, see wine(1) man page for details.
Building DLL for Windows
Cross-compiling DLL for Windows on Debian/Ubuntu using MinGW
Install MinGW cross-development environment:
Csr 1324 Usb-spi Converter Driver
Download precompiled libusb forwindows and extract it to thelibusb directory:
Build libftdi from source:
Build with command:
Bugs
- See Issues on github to listcurrent bug reports or to report a bug.
- Current implementation of 1.4 SPI API (used in BlueSuite starting from 2.4)is based on a wild guess and is just a wrapper around 1.3 functions. Itdoesn't support multiple programmers connected at the same time and maycontain other bugs.
Thanks
- This project is a derivative of Frans-Willem Hardijzer's reverse-engineeredspilpt.dll drivers;
- Thanks to unicorn from http://www.nebo-forum.kiev.ua/ for the idea of aDLL for Wine.
- Thanks to all the Contributors!
Related projects
- LPT programmer and general info by RobinGross;
- Reverse-engineered SPILPT driver + Arduino SPILPTdriver by Frans-WillemHardijzer, for Windows;
- USBSPI programmer based on CSR BC3 chipusing original firmware by Jernej krabec;
- USBSPI programmer software for Linux(git mirror) by Jernej krabec;
- USBSPI protocolanalysis;
- Using USBSPI onLinux;
- Remote debugging protocolimplementaton (gitmirror)
- USBSPI programmer based on StellarisLaunchpad by Frans-WillemHardijzer, for Windows;
- See a list of related projects in the wiki.
Other sources of information
Usb Spi Converter
BlueSuite 2.5.0It seems CSR removed it fromdownload.source code
https://www.csrsupport.com/document.php?did=38692
- it doesn't containsource code for SPI drivers but at least development header files inCSRSource/result/include/ are of some help.