Author Topic: Programming off the shelf CSR8635 module  (Read 110230 times)

0 Members and 1 Guest are viewing this topic.

Offline Msprg

  • Contributor
  • Posts: 14
  • Country: 00
Re: Programming off the shelf CSR8635 module
« Reply #175 on: September 17, 2019, 03:50:28 pm »
Okay this version: https://www.dropbox.com/s/vtvg8g7qnk08pju/CSR86XX%20ConfigurationTool-3.0.70.zip?dl=0
Should be safe to use with "write to device". Although I have tested that personally, you should still be cautious.
Good luck!
 

Offline dgspeedyz

  • Contributor
  • Posts: 10
  • Country: us
Re: Programming off the shelf CSR8635 module
« Reply #176 on: September 21, 2019, 03:04:57 am »
Msprg, Seems I'm having trouble getting the program to run on any machine.  I've tried win 10, win 7, and Win XP several different hardware and virtual machine with the same result of crashing. What settings did you use in Windows? I can get other versions working fine. It will install fine.
 

Offline dgspeedyz

  • Contributor
  • Posts: 10
  • Country: us
Re: Programming off the shelf CSR8635 module
« Reply #177 on: September 21, 2019, 03:41:42 am »
Of course it starts working after I post a question about it.  Looks like I had to install a newer version after installing 3.0.70 to get it working.  For anyone else with this issue, I installed versions 3.12.5 and 4.0.6 of the headset config tool.
 

Offline Msprg

  • Contributor
  • Posts: 14
  • Country: 00
Re: Programming off the shelf CSR8635 module
« Reply #178 on: September 21, 2019, 11:01:14 am »
Of course it starts working after I post a question about it.  Looks like I had to install a newer version after installing 3.0.70 to get it working.  For anyone else with this issue, I installed versions 3.12.5 and 4.0.6 of the headset config tool.

Can you please post here a download links to these? I would like to try the newer versions, but I have not found any of them.
 

Offline dgspeedyz

  • Contributor
  • Posts: 10
  • Country: us
Re: Programming off the shelf CSR8635 module
« Reply #179 on: September 21, 2019, 11:14:22 pm »
Sure! These were from 52bluetooth. https://www.dropbox.com/sh/zh0ojy6pbt6jbs3/AADFPfVhYzSyh-Hwa1A3pYfMa?dl=0

Do you know what I should put for eprom size to program the different sounds to the chip. I want to replace the beeps.

This is want I'm trying to do with my CSR chips. 
I used the Jambox's own upgrade tool that had the DFU files already made for these speakers.
 

Offline Franky

  • Newbie
  • Posts: 4
  • Country: de
Re: Programming off the shelf CSR8635 module
« Reply #180 on: September 25, 2019, 11:51:24 am »
Hi everyone,

I am new here and have a question regarding the reprogramming of the CSR8635 on an SANWU Class D amp. I use the FTDI converter and did everything according to the github project. I was able to change the name of the module so the SPI connection seems to be working. In the next step I want to get rid of the annoying audio prompts and maybe add a password. I have to use the configuration tool, but as you can see in my attached image I get in error if I try to read out the module with ReadFromDevice. I also attached an picture of my connection. I referred to this pinout.

http://yo3hjv.blogspot.com/2018/02/csr8635-bluetooth-audio-module.html

The module is connected as follows:

MISO --> RSD
CSB --> DTR
CLK --> RTS
MISO --> RI
GND --> GND
SPI_PCM is pulled up to 1V8 and 1V8 is also connected to VCCIO of the FTDI converter.

Any ideas why i cannot read the module? I am working on Windows 10 64 bit.

Thanks a lot

Frank
 

Offline Msprg

  • Contributor
  • Posts: 14
  • Country: 00
Re: Programming off the shelf CSR8635 module
« Reply #181 on: September 25, 2019, 12:39:17 pm »
Is your FTDI breakout board working on 1.8 or 3.3 voltage level? You have to use only 1.8V logic voltage, because you may break your chip by applying voltage higher than that.
 

Offline Franky

  • Newbie
  • Posts: 4
  • Country: de
Re: Programming off the shelf CSR8635 module
« Reply #182 on: September 25, 2019, 01:09:15 pm »
Thank you for your reply.

According to the datasheet the maximum voltage on the SPI pads of the CSR8635 is 3V6 (Page 71). So should be okay. The module is working and I also changed the name. So there shouldn't be any level issues?!

https://electrothing.co.za/images/products/bluetooth-audio-module-8/CSR8635-datasheet.pdf

edit:

I tested the levels just to be sure. The image shows the MOSI line while reading out the module through PSTool. Levels are 1V8. So all fine.
« Last Edit: September 25, 2019, 01:46:44 pm by Franky »
 

Offline Msprg

  • Contributor
  • Posts: 14
  • Country: 00
Re: Programming off the shelf CSR8635 module
« Reply #183 on: September 25, 2019, 01:46:56 pm »
Thank you for your reply.

According to the datasheet the maximum voltage on the SPI pads of the CSR8635 is 3V6 (Page 71). So should be okay. The module is working and I also changed the name. So there shouldn't be any level issues?!

https://electrothing.co.za/images/products/bluetooth-audio-module-8/CSR8635-datasheet.pdf

Okay just be cautious.

Now, if you already got PStools working with your SPI adapter, you had to copy and replace some file called something like SPI.INF or something similiar (I does not really remember) from the github page. Now you just have to replace the same file in the Headset Config tool installation directory with the file found on the github.
Of course, close the related programs before proceeding. No reboot should be necessary, but I recomend you rebooting the CSR.

Good luck.
 

Offline Franky

  • Newbie
  • Posts: 4
  • Country: de
Re: Programming off the shelf CSR8635 module
« Reply #184 on: September 25, 2019, 04:56:04 pm »
I couldn't find any file like this..Here is the link to the github page. Maybe you remember the file if you read the name :)

https://github.com/lorf/csr-spi-ftdi

Thanks a lot
 

Offline dgspeedyz

  • Contributor
  • Posts: 10
  • Country: us
Re: Programming off the shelf CSR8635 module
« Reply #185 on: September 25, 2019, 05:14:48 pm »
Franky, Make sure your config tool is set the correct device and port number under properties. Sometimes it resets back the settings to default when you restart the program. Happened to me several times.  I would recommend using the psflash tool to stop and restart the device.
 

Offline Msprg

  • Contributor
  • Posts: 14
  • Country: 00
Re: Programming off the shelf CSR8635 module
« Reply #186 on: September 25, 2019, 08:38:56 pm »
I couldn't find any file like this..Here is the link to the github page. Maybe you remember the file if you read the name :)

https://github.com/lorf/csr-spi-ftdi

Thanks a lot

Here, https://github.com/lorf/csr-spi-ftdi/releases/download/0.5.3/csr-spi-ftdi-0.5.3.zip

In this archive in folder lib-win32 is file usbspi.dll.

Replace usbspi.dll in the installation directory of the headset config tool by the usbspi.dll file within the archive.
 

Offline dgspeedyz

  • Contributor
  • Posts: 10
  • Country: us
Re: Programming off the shelf CSR8635 module
« Reply #187 on: September 26, 2019, 02:26:58 am »
Does anyone have a link to the ADK Sink config tool for the CSR8675/CSR8670 chip they are willing to share? The headphones config tool does't work with this chip. 
 

Offline Franky

  • Newbie
  • Posts: 4
  • Country: de
Re: Programming off the shelf CSR8635 module
« Reply #188 on: September 26, 2019, 03:11:30 pm »
I finally managed to get it running. There was no wrong wiring or mistake in the configuration. As always it's something obvious.

I had to power up the bluetooth module before connecting the FTDI converter to the computer. This ways it works just perfect and I was able to get rid of the audio tones.

I couldn't find any parameter to set a password or pin for the bluetooth connection. Is it even possible on this modules?

Thanks a lot for all your help.

Franky
 

Offline johnywhy

  • Newbie
  • Posts: 1
  • Country: us
Re: Programming off the shelf CSR8635 module
« Reply #189 on: October 07, 2019, 08:05:04 pm »
hi, shouldn't it be possible to program the equalizer using PS Tool?
 

Offline gavron04

  • Contributor
  • Posts: 7
  • Country: pl
Re: Programming off the shelf CSR8635 module
« Reply #190 on: November 27, 2019, 08:28:11 am »
Hello. I have CSR8675 with ADK4.2 and PSTool. I have some question about setup.

1) How many users can be connected to CSR8675? (not at same time) - where I can find this limit?
2) Its possible to connect LCD to SPI and print connected device name?


Regards


EDIT: Bluetooth > pairing > PDL size
« Last Edit: November 27, 2019, 09:25:31 am by gavron04 »
 

Offline clemcoste

  • Contributor
  • Posts: 5
  • Country: fr
Re: Programming off the shelf CSR8635 module
« Reply #191 on: December 01, 2019, 01:56:42 am »
Hi,
First of all, thank you for all your advices, this topic is very interesting
I'm trying to change the configuration of my CSR8635 module (soldered on a SANWU CSR8635 + TDA7492 board), by using a CSR USB-SPI module.
Nevertheless, nothing happens when I connect the module to my PC. Moreover, no FTDI chip is detected in the PSTool software.

Can you tell me if my pinout attached is OK please ? I don't know if my problem is linked to my BT module, my pinout or my CSR USB-SPI module ...

EDIT : Just to notice, the CSR USB-SPI pinout in my image attached is not the same as the CSR module I bought. But I checked and my links are OK

EDIT2 : I tried also to connect the pulled up resistance from VBAT (3V3)  and SPI_EN, but nothing happens. As my CSR8635 BT module is soldered on the Sanwu board, should I put the power ON to supply my CSR, or use the CSR programming module and its 3V3 pin ? Thanks for all

EDIT3 : Please find attached the good pinout for programming the CSR8635 ;)
« Last Edit: December 16, 2019, 08:07:44 am by clemcoste »
 

Offline dgspeedyz

  • Contributor
  • Posts: 10
  • Country: us
Re: Programming off the shelf CSR8635 module
« Reply #192 on: December 07, 2019, 10:47:31 pm »
My USB to SPI adapter died after a day or so. (same one as in photo) I purchased the one from DigiKey to replace it. Its been working since. Make sure your computer has the drivers. Some converters don't work out of the box. Make sure your wires are making good contact. I ran into issues with poor contacts and the CSR chip just lights up but, the software complains it can't see the device. The DigiKey adapter has the resistor on board. It helps when working with both older chips (csr 8635/45 and new ones(CSR 8670/75) since the new ones don't need the resistor.

 https://www.digikey.com/product-detail/en/qualcomm/DK-USB-SPI-10225-1A/DK-USB-SPI-10225-1A-ND/5269739
 
The following users thanked this post: clemcoste

Offline clemcoste

  • Contributor
  • Posts: 5
  • Country: fr
Re: Programming off the shelf CSR8635 module
« Reply #193 on: January 20, 2020, 03:56:11 pm »
Thanks for your advice, I attached a mapping to my previous message. It works for me, and I am now able to flash the CSR8635 BT module !  :-+

Nevertheless, I still have a problem. I would like to control the input (bluetooth or Aux input) thanks to a manual switch.
I saw that I could be able to manage it by affecting a value to a in/out pin of the CSR8635. For example, I think I can affect the Wired Input pin to PIO17, and apply a value with an Arduino Uno and a manual switch to this input, in order to select the source (see https://www.tinyosshop.com/index.php?route=information/news&news_id=82)

Do you think it is possible ? Or is there a different way to do it ?

Thank you !
 

Offline Buriedcode

  • Super Contributor
  • ***
  • Posts: 1255
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #194 on: January 22, 2020, 09:48:57 pm »
If you are trying to achieve what is in that link (tinyosshop, had that bookmarked, good site!) then I think it is possible.  However, it seems like you are trying to program the SOC rather than configure the existing firmware.  This isn't possible as its ROM based, so you are limited by what the firmware allows.

If I understand you correctly, you wish to be able to connect an external audio source, to the "aux input" of the CSR8635, and have another IO that can switch between bluetooth and this AUX analogue input?

I'm unsure if the link you provided is doing what you think it is. These devices do indeed have a wired input - that appears to allow for analogue audio in, and it seems you can configure this using the utilities in the link (setting it to a GPIO) but it seems you can only do this with the config tool, and not select between bluetooth/aux in at run time.

I could well be that the input detects an audio signal, and automatically switches to that, but I really don't know.   

If you wish to have a switch, to manually select between bluetooth audio and an aux input, then you may be able to modify the board you have.  The output of the CSR86XX are differential - so four lines for two channels.  For some reason people who made these boards convert those to single ended using an opamp, which then feeds to the inputs of the power amp chip.  This tends to add noise because unless the differential circuit has matched resistors, its CMRR isn't great, and these no need for this anyway as the input to the power amp is differential.  See here:
https://www.360customs.de/en/2017/01/sanwu-tda7492p-csr8635-bluetooth-4-0/

For your mod, you could remove some resistors to gain access to the output of the opamp (which comes form the bluetooth audio) and the input of the power amp, and either have a mechanical switch, or a mux chip to select between that and an external input.  You would have to check the input specs of the power amp chip, but if your external input is line level I dont' see why it wouldn't work.

Edit: just skimmed over the csr8635 datasheet, "wired mode" is when it routes the Line inputs (either lineA or line B) to the outputs when powered down.  If you can find this setting in configuration, it means you can switch between bluetooth and its AUX input by powering the device down.  I would follow this instructions in your link and see what happens, it really does look like it can switch the source using the IO, which is very handy.  But the only way to know is to test.  Find a pin on the bluetooth module that you don't use (isn't soldered to the main amp board) and use that for testing.
« Last Edit: January 22, 2020, 09:58:52 pm by Buriedcode »
 
The following users thanked this post: clemcoste

Offline clemcoste

  • Contributor
  • Posts: 5
  • Country: fr
Re: Programming off the shelf CSR8635 module
« Reply #195 on: January 22, 2020, 11:26:38 pm »
Firstly, thank you for your helpful answer !

If I understand you correctly, you wish to be able to connect an external audio source, to the "aux input" of the CSR8635, and have another IO that can switch between bluetooth and this AUX analogue input?

You're right, I want to use both Bluetooth and Aux Input. It means that I want to keep the Aux input plugged all the time, and select my source thanks to a manual switch.

Edit: just skimmed over the csr8635 datasheet, "wired mode" is when it routes the Line inputs (either lineA or line B) to the outputs when powered down.  If you can find this setting in configuration, it means you can switch between bluetooth and its AUX input by powering the device down.  I would follow this instructions in your link and see what happens, it really does look like it can switch the source using the IO, which is very handy.  But the only way to know is to test.  Find a pin on the bluetooth module that you don't use (isn't soldered to the main amp board) and use that for testing.

Exactly, I would like to try it. If you read the datasheet here (https://electrothing.co.za/images/products/bluetooth-audio-module-8/CSR8635-datasheet.pdf) at the page 68, you will find an "Example Application Schematic".
On the top left corner, you can see the signal named "JACK_DET_PIO" which will change if an aux input is plugged.
It is linked to the pin "PIO[14] / UART_RX".
In that case, I assume that I can use the ROM Configuration Tools to configure the PIO[14] in the Input PIO's menu (see the link I sent in my previous post), and affect this PIO to the "Wired Input".
So, in my opinion the PIO[14] will be able to manage the switch between the Bluetooth and the Aux Input by simulating the Jack Detection in this PIO[14] input.
The PIO are defined as "programmable bidirectional I/O" by the datasheet.

In my opinion : According to this example application schematic, I think I need to link the manual switch directly to the PIO[14].
If the PIO is linked to the ground, so the aux input is considered as mated/plugged.
If the PIO is linked to nothing (open-circuit), so the aux input is considered as unmated/unplugged.

Do you think that my reasoning is right ? Thank you very much

Note : Sorry for my english, but I translated unmated as unplugged and mated as plugged, but I don't know if I'm right.
Note 2 : I will also mod my board as you recommended by removing some resistors in order to delete the noise
 

Offline Buriedcode

  • Super Contributor
  • ***
  • Posts: 1255
  • Country: gb
Re: Programming off the shelf CSR8635 module
« Reply #196 on: January 23, 2020, 01:55:14 am »
Exactly, I would like to try it. If you read the datasheet here (https://electrothing.co.za/images/products/bluetooth-audio-module-8/CSR8635-datasheet.pdf) at the page 68, you will find an "Example Application Schematic".
On the top left corner, you can see the signal named "JACK_DET_PIO" which will change if an aux input is plugged.
It is linked to the pin "PIO[14] / UART_RX".
In that case, I assume that I can use the ROM Configuration Tools to configure the PIO[14] in the Input PIO's menu (see the link I sent in my previous post), and affect this PIO to the "Wired Input".
So, in my opinion the PIO[14] will be able to manage the switch between the Bluetooth and the Aux Input by simulating the Jack Detection in this PIO[14] input.
The PIO are defined as "programmable bidirectional I/O" by the datasheet.

In my opinion : According to this example application schematic, I think I need to link the manual switch directly to the PIO[14].
If the PIO is linked to the ground, so the aux input is considered as mated/plugged.
If the PIO is linked to nothing (open-circuit), so the aux input is considered as unmated/unplugged.

Do you think that my reasoning is right ? Thank you very much

Your reasoning is sound, and the more I dig into the datasheet, the more I believe thats how it works.  I didn't see the "jack detection" mentioned, but thats of course exactly what its for.  I think I'll test this on my CSR8645 modules and report back.  They're pretty similar to the 8635, the hardware (chip) is the same, but they have different ROM masks.

What confused me and what is often a trap with these things is, the datasheet mostly deals with the hardware systems and the possible configurations, but the ROM mask determines the limits to what can be done. For example, the datasheet mentions the UART, but on all the modules I have, the UART is disabled, or not used by the firmware, and can never be enabled from the config settings. 

Note : Sorry for my english, but I translated unmated as unplugged and mated as plugged, but I don't know if I'm right.
Note 2 : I will also mod my board as you recommended by removing some resistors in order to delete the noise

Your English is fine, unmated and unplugged (and of course mated/plugged) are pretty interchangable in this context, as most audio sources come from plugs :)

The board mod was only a suggestion, I have read a few posts about "noise" coming from the bluetooth module into the amp, but when I have used earphones/headphones driven directly from the CSR bluetooth module I haven't heard any noise at all.  The reason is this noise exists on both outputs, and so when differential driving speakers, is cancelled out.  The Opamp circuit they use to convert to to single ended uses imprecise resistors, so the noise isn't always completely cancelled.  I have no idea if that mod works, as I do not have that board, but the TDA7492 has differential inputs - so might as well use them.
 
The following users thanked this post: clemcoste

Offline clemcoste

  • Contributor
  • Posts: 5
  • Country: fr
Re: Programming off the shelf CSR8635 module
« Reply #197 on: January 23, 2020, 09:03:55 am »
Hi Buriedcode,

OK I understand what you mean concerning the firmware limitation. I hope it will be OK in my case, because it can be very helpful.

I didn't know that the CSR8645 is the same hardware, very interesting. I will try the method I explained yesterday on my CSR8635 tomorrow. Indeed, it can be very interesting to compare our results, to compare the CSR8635 and the CSR8645 modules.

Please find attached the example application schematic I mentionned in my last post. You will find the JACK DETECTION pin.

 

Offline Thiete

  • Newbie
  • Posts: 1
  • Country: be
Re: Programming off the shelf CSR8635 module
« Reply #198 on: February 04, 2020, 08:08:25 pm »
Hey! I saw this discussion and thought maybe somebody could give me a quick bit of advice before I go ordering a programmer board just for this.

I got a CSR8670 BT transmitter/receiver (a TaoTronics TT-BA09). Acting as a receiver it goes to sleep after several minutes if not connected to a device. I would like it to stay on permanently. Or, if this is not possible, I would like a re-connect of the USB charger to wake it from sleep.

Do any of you know if this is possible to configure via PSTool? I can't look through the options available without actually connecting to the chip.
 

Offline Decee1

  • Contributor
  • Posts: 19
  • Country: dk
Re: Programming off the shelf CSR8635 module
« Reply #199 on: March 09, 2020, 09:52:17 pm »
Hello.

Im also bothering with programming these CSR IC's
Tho mine is a QCC3003.
Bought a good handful modules for a project and already destroyed 2 by just programming them..
Mine doesn't program when applying 1.8V on the PCM pin (No voltage drop with 1K resistor)
But if i remove the resistor and connect it directly to 3V3 it programs. Tho this has destroyed 2 modules as it draws pretty much 200mA...
And datasheet also specify maximum of 1.95V on PCM pin.

Anyone having experience with the QCC3003? I got a schematic from a seller on Aliexpress and i designed from circuit. Attached in the comment
I do not have a schematic of the module which i am pushing the seller to send me a schematic of the module. But he told me that they program it with a programmer they made themself therefor he won't show me the programmer schematic

Hopefully somebody can help me. Been spending TOO much time trying to program this
« Last Edit: March 10, 2020, 11:18:32 am by Decee1 »
Stefan
Electrical Technician student - RTX A/S - Denmark
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf