Forum: Mikrocontroller und Digitale Elektronik SPI Slave to USB Adapter


von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Lesenswert?

Hallo,
ich suche etwas, mit dem ich Daten, die über einem SPI übertragene Daten 
mitschneiden und via USB übertragen kann. Anwendung ist eine 
Applikation, bei der zwischen zwei Microcontrollern Zustände 
ausgetauscht werden und ich diese gerne am Laptop monitoren möchte.

Alls ISP - USB Adapter die ich bis jetzt gefunden habe, arbeiten als SPI 
Master, was ich bräuchte wäre aber einen SPI slave; im Idealfall sogar 
ein doppel-Slave.

Mir ist auch klar, dass ich mir das aus irgend einem Eval-Board für 
einen µController mit USB und SPI selbst zusammen stricken kann, aber 
dafür bräuchte ich sicher mehrere Tage.

Kann jemand eine Lösung empfehlen?

mfg Torsten

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Hallo Namensvetter,

ich habe dafür ein FT2232H USB 2.0 Hi-Speed breakout board. Leider 
altuell nicht unter der Einfuhrumsatzsteuergrenze aus China zu bekommen. 
Ich lasse mich gern korrigieren, falls doch.

VG Torsten

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Lesenswert?

Hallo Torsten,
FTDI war ein guter Tipp; ich habe hier gerade noch eine andere Lösung 
gefunden: 
http://www.ftdichip.com/Support/Documents/AppNotes/AN_188_C232HM_MPSSE_Cable_in_USB_to_SPI-Interface.pdf

Das sieht sehr vielversprechend aus (ich werde berichten, wenn ich es 
durchgelesen habe).

schönen Dank und mfg
Torsten

von Jim M. (turboj)


Lesenswert?

Torsten C. schrieb:
> ich habe dafür ein FT2232H USB 2.0 Hi-Speed breakout board.

Der kann IMHO auch nur SPI Master, der OP sucht einen Slave.

von Jim M. (turboj)


Lesenswert?

Torsten Robitzki schrieb:
> ich suche etwas, mit dem ich Daten, die über einem SPI übertragene Daten
> mitschneiden und via USB übertragen kann.

Kauf Dir einen ausreichend schnellen Logic Analyser, der sollte 
mindestens 4 Kanäle haben.

SPI Slave ist auf einem µC recht aufwändig, da man das Timing nicht 
beeinflussen kann und so schnell mal Überläufe hat. Bei 2* SPI Slave 
will man dann auch DMA haben, das wird also eher kein AVR.

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Lesenswert?

Jim Meba schrieb:
> Kauf Dir einen ausreichend schnellen Logic Analyser, der sollte
> mindestens 4 Kanäle haben.

Ich glaube, auf dem Weg wäre ich auch nicht schneller, als mir den 
Adapter mit einem µController selbst zu bauen. Die Bandbreite wird nicht 
sehr hoch sein (bzw. ich kann beim Monitoring auch einfach ganze Frames 
verwerfen) und ich brauche die letztendlich am Laptop um sie dort 
dazustellen.

Es wäre auch denkbar, dass Kunden den Adapter mit ins Feld nehmen und 
dann wäre eine kompakte Lösung auch von Vorteil.

mfg Torsten

von Michael W. (Gast)


Lesenswert?

Torsten C. schrieb:
> ich habe dafür ein FT2232H USB 2.0 Hi-Speed breakout board. Leider
> altuell nicht unter der Einfuhrumsatzsteuergrenze aus China zu bekommen.

Gäbe es einen link dazu? Ich kann aus China importieren lassen.

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Jim Meba schrieb:
> der OP sucht einen Slave.

Verdammt, hast Recht. Sorry an Alle!

Markus Wagner schrieb:
> Gäbe es einen link dazu?

'FT2232H USB 2.0 Hi-Speed breakout board' in die Suche bei Ali eingeben. 
Ist aber - wie gesagt - nur Master. :-(

Torsten Robitzki schrieb:
> Ich glaube, auf dem Weg wäre ich auch nicht schneller, als mir den
> Adapter mit einem µController selbst zu bauen.

Wieso? Nur anschließen, fertig.

LWLA1034 oder ein 'Saleae Logic Analyzer' Clone, je nach erforderlicher 
Speichertiefe.

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Lesenswert?

Torsten C. schrieb:
> Wieso? Nur anschließen, fertig.

Naja, ich muss die Daten schon noch interpretieren. Ein Hex-Dump der 
Daten über die Leitung wird mir nicht viel nützen. Ich müsste also an 
die Daten des Logic Analysers ran kommen. Ich will ja nicht die 
Schnittstelle debuggen, sondern das Systemverhalten und dazu möchte ich 
einige Werte im System kennen.

Der FT2232H hat einen "Multi-Protocol Synchronous Serial Engine", wenn 
man da einige Stunde rein steckt, bekommt man es evtl. auch hin, dass 
Ding als Slave zu betreiben.

Das richtige IC wäre eigentlich der FT121. Dazu gibt es aber leider kein 
passendes Kabel, in dem das Teil schon im Stecker steckt.

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Lesenswert?

Man kann bei mouser ein Eval-Board mit FT121 bestellen: 
http://www.mouser.com/ds/2/163/DS_UMFT12xA-218131.pdf

Das wäre evtl. eine Lösung...

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Torsten Robitzki schrieb:
> Ich müsste also an
> die Daten des Logic Analysers ran kommen.

OK, speichern und Datei einlesen.
Ich wusste nicht, dass das 'online' gehen muss.
Geht das dann vielleicht mit 'SendKeys()'?

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Lesenswert?

Torsten C. schrieb:
> Ich wusste nicht, dass das 'online' gehen muss.

Sorry, das meinte ich mit Monitoren. Sprich: am Poti drehen und 
Werte-Änderung live am Monitor beobachten.

> Geht das dann vielleicht mit 'SendKeys()'?

Was ist SendKeys()?

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Torsten Robitzki schrieb:
> Was ist SendKeys()?

Womit sprichst Du denn die FTDI-DLL an? Das verwendete Framework kennt 
in der Regel auch ein SendKeys, z.B. .net:
https://msdn.microsoft.com/de-de/library/system.windows.forms.sendkeys.send%28v=vs.110%29.aspx

Aber wegen 'am Poti drehen und Werte-Änderung live am Monitor 
beobachten' bleibt ja nur noch eine eigene SW unter Nutzung der 
FTDI-DLL.

Das wäre dann die finale Lösung, oder?

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Lesenswert?

Torsten C. schrieb:
> Womit sprichst Du denn die FTDI-DLL an? Das verwendete Framework kennt
> in der Regel auch ein SendKeys, z.B. .net:
> 
https://msdn.microsoft.com/de-de/library/system.windows.forms.sendkeys.send%28v=vs.110%29.aspx

Oh, ich habe das Glück, kein Windows-Rechner auf dem Tisch stehen zu 
haben :-) Ich hatte mir vorhin schon mal angeguckt, wie man ein HID 
(d)evice unter OS/X anspricht und dass hat ganz gut funktioniert. Den 
FT121 kann man wohl als HID betreiben. Ich bin aber noch USB-Newbe und 
lerne gerade noch ganz viel in dem Bereich.

> Aber wegen 'am Poti drehen und Werte-Änderung live am Monitor
> beobachten' bleibt ja nur noch eine eigene SW unter Nutzung der
> FTDI-DLL.

Ja, eigene Software auf dem Laptop muss ich eh schreiben, um die Daten 
korrekt zu interpretieren und auf der Konsole hübsch formatiert 
auszugeben.

Ich habe jetzt mal breakout boards mit FT121 und ein Kabel mit FT2232H 
bei FTDI bestellt. Die Lösung mit dem Kabel fänd' ich praktischer, die 
Lösung mit dem breakout board werde ich aber auf jeden Fall hin 
bekommen, beim FT2232H bin ich mir nicht so sicher.

Schönen Dank an Alle und falls noch jemand eine etwas mehr 
"Out-Of-The-Box"-Lösung hat, immer her damit :-)

mfg Torsten

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Lesenswert?

So, jetzt habe ich den FT121 gerade auf dem Schreibtisch und muss 
feststellen, das es mit dem auch nicht geht. Der wird nicht von der 
SUB-Seite aus gesteuert, sonder von der SPI-Seite. Klarer Fall von: 
"Lesen bildet".

von Joe F. (easylife)


Lesenswert?

Torsten Robitzki schrieb:
> Der wird nicht von der
> SUB-Seite aus gesteuert, sonder von der SPI-Seite. Klarer Fall von:
> "Lesen bildet".

Verstehe das Problem gerade nicht.
Du wolltest doch etwas, was den SPI Datenstrom "mitschneidet". Genau das 
sollte mit diesem Ding gehen.
Problem ist eher, dass du nur eine Richtung (MISO oder MOSI) mit dem 
MISO des FT121 verbinden kannst, und somit nur entweder die Commands des 
Masters oder die Antworten des Slaves siehst.

Wie schnell ist denn deine SPI CLK?

von johann1979 (Gast)


Lesenswert?

Bus Pirate?http://dangerousprototypes.com/docs/Bus_Pirate
Oder 2stck ft220x
Lg

von Joe F. (easylife)


Lesenswert?


von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Lesenswert?

Hallo Joe,
eigentlich hatte ich Dir schon gestern geantwortet, leider ist die 
Antwort hier nicht angekommen (wahrscheinlich habe ich vergessen, auf 
"Absenden" zu drücken).

Joe F. schrieb:

> Verstehe das Problem gerade nicht.

Der FT121 erwartet, vom SPI Master konfiguriert zu werden (und nicht, 
wie ich angenommen hatte, von der USB Seite).

> Problem ist eher, dass du nur eine Richtung (MISO oder MOSI) mit dem
> MISO des FT121 verbinden kannst, und somit nur entweder die Commands des
> Masters oder die Antworten des Slaves siehst.

Das wäre garnicht so schlimm, da die interessanten Daten eh in nur in 
eine Richtung gehen. Notfall könnte man da auch 2 "Dinger" anschließen.

> Wie schnell ist denn deine SPI CLK?

So niedrig wie nötig. Da müssen ca. 100 Byte, 20 mal in der Sekunde von 
einem µC zum anderen transportiert werden.

mfg Torsten

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Lesenswert?

Hallo Johann,

johann1979 schrieb:
> Bus Pirate?http://dangerousprototypes.com/docs/Bus_Pirate

das klingt ganz gut. Da mir aber gerade die Zeit wegläuft, schwenke ich 
gerade zu einer CAN / UART Lösung (CAN - Anschluss ist eh vorgesehen; 
für UART müsste man einen zusätzlichen Pin spendieren).

mfg Torsten

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Lesenswert?

Joe F. schrieb:
> Oder eben:
> http://www.totalphase.com/products/beagle-i2cspi/

Das wäre die Lösung gewesen :-)

von Torsten C. (torsten_c) Benutzerseite


Angehängte Dateien:

Lesenswert?

Torsten R. schrieb:
> falls noch jemand eine etwas mehr
> "Out-Of-The-Box"-Lösung hat, immer her damit :-)

Zwar für diesen Thread 'zu spät', aber ich habe gerade gesehen,
auf dem 'CY8CKIT-049 4xxx' (unter 5€) ist auch eine Bridge drauf:

* USB to UART
* USB to I2C (master & slave)
* USB to SPI (master & slave)

von Michael W. (Gast)


Lesenswert?

Nett!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.