• .
  • Willkommen im Forum!
  • Alles beim Alten...
  • Du hast kaum etwas verpasst ;-)
  • Jetzt noch sicherer mit HTTPS
Hallo, Gast! Anmelden Registrieren


Das "Geheimnis" kleiner Bluetooth Lautsprecher CSR
#81
Ich nutze USB-Erkennung über PIO9 und testweise einen exteren Pullup für D+ über PIO11. Normal sollte, wenn der gezogen wird enumeriert werden.

"Last" ist am USB-Port, nur nutze ich nicht VUSB, sondern VBAT über LDO.

Die Keys sind für USB Speaker gesetzt mit "keep alive audio stream" sowie einigen anderen.

Hier ist mein Board:

https://stromrichter.org/showthread.php?tid=3920

   
 
Reply
#82
Heut nun getestet oder sagen wir eher versucht zu testen. Was mich sehr stutzig macht ist ,dass der Programmer ein 1,8V und 3,3V Anschluss hat und in der Beschreibung auch erwähnt wird das er für CSR 86XX ist, jedoch aber auf CSB 3,3V anliegen wenn keine Kommunikation erfolgt. Somit läuft die SPI Schnittstelle vom programmer auf 3,3V.
Kann der CSR8645 3,3V über SPI verarbeiten?
Ich war der Meinung dass er nur 1,8V kann.

Link: http://www.ebay.de/itm/131885424153?_trk...EBIDX%3AIT
 
Reply
#83
Wenn du Serienwiderstände nimmst, sollte nichts passieren. Der Programmer hat 100Ohm in den Leitungen.

(Ich verwende auf dem Breakoutboard einen Pegelwandler)

Brauchst so ein Board? (unbestückt)
 
Reply
#84
Danke für dein Angebot, jedoch muss ich dann noch die Einzelnen Bauteile besorgen, denn ohne wird es mir denke ich nicht viel bringen. Ich denke ich versuche es erst mal auf ein Experimentier- Steckboard aufzubauen.Hab zum Glück noch ein TXB0108 Modul hier herumliegen, was sich super dafür eignet.

Schaltplan:
   
Dann sollte das so passen oder irre ich mich? Rolleyes 

Bei dem CSR Modul muss man schon genau aufpassen, wo welche Spannung als High/Low gilt, man will ja nicht den Chip zerstören. Big Grin 

Soweit ich das verstanden habe gibt es mehrere Spannungsebenen:

5V am Eingang VBUS (VBUS ->VCHG am CSR) nur zum Laden des Akkus (wenn man einen benutzen möchte), für die anderen Bauteile wird die Spannung intern runter geregelt auf 1,8V und 1,35V, fals nur 5V angeschlossen ist.

3,3V (Beziehungsweise Spannungsbereich vom 1 Zellen LIPO Akku) am Eingang BAT,POWER_EN wird intern runter geregelt auf 1,8V und 1,35V.

1,8V am Eingang VBUS1V8, wird für PIO's , Audio Treiber .... verwendet. 

1,35V wird intern Erzeugt um die Audio Logik zu versorgen.

Somit hat alles was an Logik und Signale rausgeht 1,8V (PIO`s; SPI, SPDIF,...).
Mein Bisherige Analyse der Spannungsversorgung im Chip, falls etwas nicht korrekt ist bitte ich um Verbesserung. Wink
 
Reply
#85
Leider fehlen noch ein paar Teile aus Fernost, weshalb ich bislang noch nicht weitermachen konnte. 
Mir ist aufgefallen,dass du hier https://stromrichter.org/showthread.php?tid=3980&page=2 den Spannungsteiler von deiner USB-Detect Schaltung gepostet hast. Du senkst die Spannung durch ein 10k- 10k Spannungsteiler. Dieser Spannungsteiler hat ein Verhältnis von 2:1 was bedeuten würde, 5V USB -> 2,5V an PIO des CSR.
Wenn du das auch so auf deinem Board hast glaube ich, dass der PIO diese Spannung nicht lang aushält, da laut Datenblatt die PIOs nur VDD+0,4V aushalten. Im Fall der PIOs VDD_PADS_1 und VDD_PADS_2, die eine typische Anschlussspannung von 1,8V haben und maximal 3,6V> VDD_PADS > -0,4V. Wenn 2,5V auf den PIOs angelegt wird, muss an VDD_PADS_1 und VDD_PADS_2 mindestens eine Spannung von 2,1V anliegen und selbst dann bewegt man sich sehr knapp an der Maximumgrenze von VDD+0,4V.
 
Reply
#86
Korrekt, muss ich noch ändern.

Inzwischen geht USB, allerdings mit einem hässlichen Patch vom externen 3v3 LDO (an VBAT) auf 3v3_USB (Auf dem Modul an einem Kondensator). Der Pin ist am Modul nicht herausgeführt. USB funktioniert also nur, wenn Spannung an V_CRG/V_BUS anliegt, da der 3v3-USB-Bypass_LDO nur aus diesem getrieben werden kann. Das ist dann problematisch, wenn an VBAT ein externer LDO angeschlossen ist, und die Ladefunktion nicht abgeschaltet - Der Lader lädt dann in den LDO Ausgang.

Das Modul wird jetzt per USB in PSTools erkannt und kann ohne SPI-Programmer programmiert werden.

PSKEY_HOST_INTERFACE = USBLINK

Edit:

Level Shifter:

TXB0104 4bit BiDi:
http://www.ebay.de/itm/OEM-4-bit-2-Port-...1896315953


TXB0108 8bit BiDi:
http://www.ebay.de/itm/8-Channel-8-Bit-L...1916020592
 
Reply
#87
Nun habe ich mich ein wenig mit den PSKEYS beschäftigt und mir ist aufgefallen, dass das Configuration Tool oft die PSKEYS umbennent, wie zB. aus PSKEY_USR28 wird USR 28 - PSKEY_USB . Der Inhalt bei unveränderten Einstellungen ist gleich, jedoch ändert sich der Name und die Position im Dokument. Nimmt man denn den alten Namen des PSKEYS, also PSKEY_USR28 und den Geänderten Inhalt vom USR 28 - PSKEY_USB ?

Kleine Veranschaulichung:

1. PSKEY vor dem ändern:
// PSKEY_USR28
&02a6 = 0006 8096 1400 0400 905A 805A 8096 8096 8096 8096 8096 81FF 

2. PSKEY im Tool geladen und sofort abgespeichert: 
//USR 28 - PSKEY_USB                        
&02a6 =  0006 8096 1400 0400 905A 805A 8096 8096 8096 8096 8096 81FF

3. PSKEY nach dem ändern:
//USR 28 - PSKEY_USB                        
&02a6 =  0022 8096 1400 0400 905A 805A 8096 8096 8096 8096 8096 81FF

4. So würde ich den PSKEY ändern:
// PSKEY_USR28
&02a6 =  0022 8096 1400 0400 905A 805A 8096 8096 8096 8096 8096 81FF

Name des PSKEYs aus 1. nehmen und den Inhalt des PSKEYs aus 3. nehmen. Ist das so richtig von der Vorgehensweise?
 Denn mich irritiert ein wenig, dass das Config Tool manche Keys umbenennt. Rolleyes

In dem Fall habe ich den vorhanden PSKEY der USB Charging und Speaker Audio beinhaltet auf Speaker Audio und Media Keyboard geändert.

Hier noch ein Hilfreicher Link zur USB Configuration: http://www.btspeaker.cn/csr/adk2.5.1/adk...Useage.pdf
 
Reply
#88
Die Namen sind nur Kommentare, da kannst du schreiben, was du möchtest.

Alles hinter // ist Kommentar

Funktioniert USB Audio bei dir nun?
 
Reply
#89
Bislang sind leider noch nicht alle Platinen da, deshalb versuche ich soviel vorarbeit wie möglich zu machen und beschäftige momentan mit den Möglichkeiten die mir der CSR8645 bieten kann.
Am Anfang dachte ich, dass ich mit dieser Platine auskomme um alles zu testen: http://www.ebay.de/itm/131701582651?_trk...EBIDX%3AIT
Aber leider sind dort viele nicht benutzte Pins auf Masse gelegt, was ein ebend anlöten von Kabeln zum Programmieren usw verhindert. Sad

Ich hätte auch nie gedacht, dass der CSR Programmer, wo in der Artikelbeschreibung steht, dass er für die CSR86XX Module geeignet ist, noch einen Pegelwandler benötigt. Naja die Chinesen schreiben viel, aber die Verkäufer haben meistens keine Ahnung. Rolleyes  

Deshalb habe ich mir jetzt das CSR8645 Modul, Jumper Kabel, TPA6132 Board, Digital zu Analog Audio Converter..... bestellt um alles so verbinden und testen zu können wie ich es brauche. Naja dies ist auch schon fast 2 Wochen her von daher gehe ich aus, dass die Teile bald kommen. Dann kann ich ausführlich alles testen. Big Grin
 
Reply
#90
Serienwiderstände sollten eigentlich genügen, auch bei 3V3 auf 1V8. Wenn der Programmer die Pegel sauber erkennt, do it. Smile
 
Reply
#91
Mh... allein die Widerstände bringen mich ja auch nicht weiter, denn den unbalanced Audio Out kann ich nicht einfach an einem Klinkenstecker anschließen. Naja in ein paar Tagen sollten die Sachen da sein. Smile

Hier auch noch eine Diskussion über das Thema gefunden: http://www.diyaudio.com/forums/digital-l...rd-14.html

Hier ein Link über die PSKEY_USRXX: http://www.btspeaker.cn/csr/adk3.0/adkdo...rGuide.pdf

So wie es ausschaut ist PSKEY_USR31 der gesuchte Übeltäter (Sektion: 3.14). Dort kann ausgesucht werden, welchen Audioausgang man gerne hätte.

PS: Hoffe auf baldiges eintreffen der Bestellten Ware, denn die Semesterferien sind bald zu Ende. Big Grin
 
Reply
#92
Wir sprachen vom SPI, nicht vom Audioausgang.

Die Diskussion ist von mir. Big Grin
 
Reply
#93
Ohne als Besserwisser da zu stehen... Auf der letzten und vorletzten Seite lese ich viel über PCM und nichts über SPI und STRG+F mit dem Stichwort SPI zeigt mir auch kein Treffer an. Wink
Hast du denn den PCM Ausgang schon zum laufen bekommen?
Hab ich mir fast schon gedacht, da die Links in der Signatur zu deinen Projekten passen. Big Grin
 
Reply
#94
Na, wir sprachen hier von programmieren und SPI - wegen den Serienwiderständen. Dann hast du den Ausgang ins Spiel gebracht.

Dort sprachen wir von PCM bzw. SPDIF - funktioniert beim 8670, beim 8645 (noch) nicht. PCM und SPI teilen sich ein Interface.
 
Reply
#95
Da habe ich mich wohl ein wenig unglücklich ausgedrückt, da die Aussagen nach dem ersten Absatz zum Link gehören sollten. Rolleyes
 
Reply
#96
Endlich sind alle Teile da und ich dachte jetzt kann es endlich losgehen. Jedoch kann das PS-Tool keine Kommunikation zum CSR aufbauen. Das PS-Tool sagt immer: "Error detecting chip type(Read failed on USB-SPI)".

Ein paar Aufnahmen von den SPI Leitungen mit dem Oszilloskop()

Grün -> CLK    Gelb -> CSB
   

Grün -> MOSI
   

Grün -> MISO
   

Daten senden macht er und der Programmer wird auch vom PS-Tool als "USB SPI (501057)"erkannt.
Zudem hört man leise den Zugriff auf das CSR Modul in den Lautsprechern.
Das was man am Slave Ausgang sieht, würde ich nicht als Daten werten. Somit sendet der CSR keine Daten zurück. Fraglich ist, ob er durch den Programmer die richtige Daten bekommt zur Typenabfrage. misstrau
 
Reply
#97
Den SPI-PCM Port auf 1.8V?
 
Reply
#98
Ja, kann durchaus ein Pegelproblem sein. Ansonsten SPI/PCM richtig gesetzt? (Wie scooot auch meint)
 
Reply
#99
Ich habe nun mal am TXB0108 den Pin getauscht(A1 -> B1 mit A6 -> B6 getauscht) und siehe da ein Ausgangssignal.(hinter dem TXB0108 kurz vor dem Programmer 3,3V)
   
An SPI/PCM liegen 1,69V an(gelb SPI/PCM)
   

Spannungsfürende Leitungen am CSR:
PIN 9 (SPI/PCM)         1,61V
PIN 14 (BAT)              3,27V
PIN 16 (1V8)              1,79V
PIN 15 (POWER_EN)  2,97V

Verbindungsübersicht(SPI):

Programmer -> TXB0108 -> CSR8645

Am Anfang hatte ich auch die vom Programmer bereitgestellte Versorgungsspannung genommen. Nun wird die Spannung von 2 Step-down Regler erzeugt. Leider hat zeigt das Programm mir immer noch den selben Fehler.


Edit:

Übersicht:
   

Verwendeter Programmer:
[Bild: s-l1000.jpg]
Es gibt mehrere Versionen, dieser hat keine Aufgedruckte Pinbelegung und gibt 3,3V Pegel aus.
Wie ich gesehen habe, hat hat rocco75 den gleichen Programmer. Vielleicht kann er ein wenig dazu sagen, wie er ihn angeschlossen hat(Ohne/Mit Pegelwandler? ; Wenn ohne, welche Ausgangspegel?).
 
Reply
Hier noch ein kleiner Blick ins innere des Programmers:
   
Daten zum IC: http://www.gigawit.com/product/20084301852787631.pdf

Also programmiere ich über ein CSR-Bluetooth-IC den CSR8645. wie auch immer das funktionieren soll klappe
 
Reply