Frage:
Kleiner, kostengünstiger Mikrocontroller für Hochgeschwindigkeits-SSP?
akohlsmith
2010-10-10 00:30:17 UTC
view on stackexchange narkive permalink

Ich suche einen kleinen Mikrocontroller, der serielle Hochgeschwindigkeitsdaten aufnehmen kann. NXP nennt es ein SSP-Peripheriegerät - es funktioniert mit einem SPI-, Microwire - oder SSI -Bus und ich verwende es in einem 32- Bit-SSI-Anwendung. Mit klein meine ich sowohl physisch (unter 50 Pins) als auch in Bezug auf RAM / Flash (8 KB RAM und 32 KB Flash sind mehr als genug). Hochgeschwindigkeit bedeutet, als SSI-Slave mit Takten bis zu etwa 50 MHz zu arbeiten.

Ich verwende derzeit einen LPC2103 und er arbeitet bis zu etwa 2 ziemlich gut -3 MHz als SSI-Slave, aber ich kann nur die ersten 16 Bits des 32-Bit-Wortes sehen. Ich verwende sowohl das SSP- als auch das SSI-Peripheriegerät, um alle 32-Bit-Dateien zu erfassen, aber das ist ein echtes Problem. Für die nächste Version hoffe ich, die Geschwindigkeitsbegrenzung und die Wortlängenbarriere zu beseitigen.

Was die Architektur betrifft ... ist sie wirklich offen. Das ARM7TDMI des LPC natürlich, aber PIC oder AVR würde gut funktionieren, ich bin nicht an eine bestimmte Architektur gebunden und habe mit praktisch allen an einem Punkt oder gearbeitet Ein weiterer. Ich habe mir sogar einen kleinen FPGA -Chip angesehen, aber es ist auch nahezu unmöglich, ein FPGA mit niedriger Pin-Anzahl und einer großen Anzahl programmierbarer Logik zu finden.

Wie flexibel ist Ihre Architektur? Selbst wenn (wann) Sie ein Mikro finden, das 50 MHz SPI / SSI / SSP / 4-Draht / etc. Kann, haben Sie wahrscheinlich Probleme mit Problemen mit DC-Vorspannung, gekoppeltem Rauschen und EMI. Haben Sie (1) serielles LVDS in Betracht gezogen, wenn die Anzahl der Drähte ein Problem darstellt, oder (2) parallele Daten?
Warum haben Sie Probleme mit der Wortlänge? Nur weil das Gerät über eine byteorientierte Peripherie verfügt, bedeutet dies nicht, dass Sie keine 4-Byte-Datenstruktur erstellen können. Nimmt ein wenig mehr Arbeit in Ihrem Interrupt, aber es muss kein Kludge sein.
Die tatsächlich zurückgelegte Entfernung ist ziemlich gering, und das Gerät, das am weitesten von der Datenquelle entfernt ist, ist ein kleiner serieller DAC. Die maximale Taktrate beträgt 50 MHz. Mit einigen Daten, die ich pushe, komme ich dieser Rate nahe. Deshalb versuche ich, einen Mikrocontroller mit einer Slave-SSP-Schnittstelle zu finden, der damit umgehen kann. Ich hatte mir LVDS angesehen, aber es war einfach nicht notwendig.
Was die Wortlänge betrifft, habe ich nur einen Frame-Sync-Impuls alle 32 Bit, und ich habe festgestellt, dass die SSP-Schnittstellen kein zweites serielles Wort aufnehmen, es sei denn, es gibt einen Frame-Sync-Impuls, der sie dazu auffordert. Ich verwende derzeit einen Kludge mit externer Hardware, um 16 Takte später einen zweiten Frame-Sync-Impuls zu synthetisieren, und habe auch zwei SSP-Ports mit dem Interrupt eines verwendet, der einen Sync-Impuls für den zweiten erzeugt ... Ich würde es nur tun Vermeiden Sie lieber, wenn ich kann.
Warum muss es so schnell sein? Schieben Sie einen konstanten Datenstrom mit 50 MHz? Oder nur gelegentliche Datenblips mit Leerlaufzeiten dazwischen? Denn wenn es sich um einen großen Datenstrom handelt, muss Ihre MCU schnell genug sein, um auch die Daten verarbeiten zu können.
Es ist ein konstanter Datenstrom, der einen Quad-DAC speist. Der Mikrocontroller überwacht den Bus auf Steuerwörter, um einige E / A synchron zum Datenstrom zu betätigen, mit dem Ziel, Status und andere Informationen über denselben 4-Draht-Bus an den Master zurückzusenden.
Vier antworten:
Leon Heller
2010-10-10 01:24:21 UTC
view on stackexchange narkive permalink

Ein XMOS-Chip kann problemlos 50-MHz-SPI in Software verwalten, die E / A können 100-MHz-Ereignisse verarbeiten. Eine CPLD wie die Altera MAX II kann auch mit einem PIC oder AVR verwendet werden. Sie sind in kleinen 44-Lead-Paketen erhältlich, die Entwicklung wäre jedoch schwieriger.

Hmm, interessant. Die XMOS-Geräte sind sicherlich höherwertig als die Geräte, die ich bisher verwendet habe. Sie haben auch kostenlose Entwicklungstools für meine bevorzugte Umgebung (Linux). Ich werde mir diese Geräte genauer ansehen, danke!
XMOS-Chips sind zwar großartig, aber um ihre parallelen Rechenfunktionen nutzen zu können, müssen Sie ihre proprietäre Version von C lernen, die sie mit parallelen Funktionen erweitert.Ich selbst habe mit ihnen gearbeitet und es ist nicht schlecht, es ist nur so, dass man es nirgendwo anders verwenden kann
Mark
2010-10-10 01:18:01 UTC
view on stackexchange narkive permalink

Soweit ich weiß, werden Sie auf einem PIC oder einem AVR keine serielle 50-MHz-Schnittstelle finden.

Ich vermute, Sie müssten sich etwas in der Größenordnung eines Kortex ansehen -A8 SoC, um Peripheriegeräte so schnell zu erhalten.

Warum nicht den Baudratengenerator am Master verlangsamen, wenn Sie mit diesem langsamen Gerät sprechen?

Ich glaube nicht, dass Sie für 50 MHz so hoch wie ein A8 gehen müssen - das ist 600 MHz + iPad / Droid-Territorium. Cortex M3-Teile takten mit etwa 100 MHz, und das in der Frage erwähnte ARM7TDMI kann dies wahrscheinlich auch mit 60-70 MHz.
Es geht nicht darum, es zu tun, es geht darum, einen Produktions-SoC mit der Fähigkeit zu finden, von der ich sehr bezweifle, dass er da draußen ist ... warum sollte ein 100-MHz-SoC mit Kerntakt einen 50-MHz-SSI-Bus benötigen?
Leider kann ich die Daten nicht verlangsamen. Ich steuere einen seriellen Quad-DAC an und der Mikrocontroller, den ich auf den Bus setzen möchte, wird verwendet, um einige zugehörige E / A synchron zu den Daten zu steuern, die aus den DACs übertragen werden. Die von mir verwendeten ARMv4-Geräte (LPC21xx) können im Master-Modus problemlos einen 35-MHz-SPI-Takt ausführen, sodass ich denke, dass ich mit einem etwas kräftigeren Gerät möglicherweise 50 erreichen kann. SoCs ähneln jedoch FPGAs. Es erweist sich als schwierig, Geräte mit geringer Pinanzahl und großen Mengen konfigurierbarer Logik zu finden.
Im Allgemeinen läuft ein SoC im Master-Modus schneller als ein Slave. Die Prozesse zum Extrahieren der Uhr, wie sie der Slave ausführen muss, können Sie normalerweise nicht in der Nähe Ihrer Systemtaktrate ausführen. Ist SSI Single Master Single Slave nicht auch? Wie schnüffeln Sie auf der Datenleitung zu den DACs? und wie wird der bus beendet?
davidcary
2014-07-22 01:32:05 UTC
view on stackexchange narkive permalink

Dies könnte eine der Nischen sein, in die ein PSoC passen würde.

Wenn ich Sie wäre, würde ich die Leute in den PSoC-Foren fragen http://www.psocdeveloper.com/ forum /: "Können die digitalen PSoC-Peripheriegeräte so konfiguriert werden, dass sie einen 32-Bit-SPI / SSP-Slave mit 50 MHz emulieren?" Ich sehe, dass einige Leute bereits ein Cypress ARM Cortex PSoC-Gerät für die Emulation eines 16- programmiert haben. Bit-SPI-Slave mit 33 Mbit / s. http://www.cypress.com/?docID=37034 Ich vermute, 32-Bit wären für eine PSoC einfach. vielleicht sogar 50 MHz (einige Cypress PSoC ARM Cortex-Chips haben eine Nennleistung von 80 MHz).

50 MHz als SPI / SSP-Slave sind ziemlich schwierig. Ich sehe, dass ein SPI-Debugging-Tool nur SPI hören kann Verkehr (mehr oder weniger als Slave) mit 25 MHz - obwohl er den SPI-Bus mit 50 MHz (als Master) ansteuern kann. http://www.byteparadigm.com/kb/article/AA-00701/ 0 / Was ist die maximale Frequenz von SPI-Xpress.html? Ein anderes SPI-Debugging-Tool kann anscheinend 100-MHz-SPI-Verkehr abhören. http://support.saleae.com/hc / Communities / Public / Fragen / 200362675-BBB-Arduino-RasPi Selbst fest verdrahtete Logik, die so etwas wie 74HC4094 oder 74HC595 verwendet, behaupten ihre Datenblätter, dass der Chip "normalerweise" 50 MHz erreichen kann, dies ist jedoch nicht garantiert.

Möglicherweise müssen Sie eine CPLD oder ein FPGA verwenden, um diesen Datenschlauch zu verarbeiten.

albert
2019-05-10 06:15:40 UTC
view on stackexchange narkive permalink

Mehrere Jahre sind vergangen.STM32H750 scheint gut genug zu sein,

https://www.st.com/de/microcontrollers-microprocessors/stm32h750-value-line.html

  • Kerngeschwindigkeit: 480 MHz
  • SPI SCK: ≥ 100 MHz für Master und Slave
  • Preis (Budget): 3,37 USD
  • Ich habe über XMOS nachgedacht.Es passt perfekt zu meiner Anforderung, ist aber aufgrund seines hohen Preises nicht massiv verfügbar.

    Diese alte Frage wäre nicht zulässig, wenn sie heute veröffentlicht würde, da Fragen nach Kaufempfehlungen längst verboten waren.
    Ich suche tatsächlich nach einer besseren Option als diese MCU von ST


    Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 2.0-Lizenz, unter der er vertrieben wird.
    Loading...