Forum: Mikrocontroller und Digitale Elektronik STM32F4 SSI-Peripherie


von BastiDerBastler (Gast)


Lesenswert?

Hallo,
ich schaue mich nun im Reference Manual der MCU um, ob es dort 
irgendeinen Hardware-Support für "SSI" gibt, aber fündig wurde ich 
nicht. Gemeint ist ein serielles Dateninterface, das in 
http://www.ams.com/content/download/50206/533867/34236 auf Seite 13 
beschrieben ist.
Muss ich das per Software machen? Im FPGA lief die Statemachine dazu 
parallel in einem eigenen Modul, ich fänd's schade, wenn ich jetzt die 
ganze MCU während des Transfers brachlegen muss (zumal das Timing über 
GPIO wohl etwas Hirnschmalz benötigt, wie bekommt man da etwas 
gleichmäßiges hin, das ungefähr bei knapp unter 1 MHz läuft?).
Hab ich im Reference Manual etwas übersehen, habt ihr Ratschläge?

Viele Grüße

von Jim M. (turboj)


Lesenswert?

Das ist SPI, nur ohne MOSI. Zu verwenden mit USART, SSP oder SPI 
Schnittstellen.
Die 18 Datenbits wird man irgendwie aufteilen müssen, bessere SPI 
Hardware hat oft einstellbare Bitlängen, so dass man z.B. 2 mal 9 Bits 
draus machen kann.

von BastiDerBastler (Gast)


Lesenswert?

Ja, ich habe mal weitergeschaut, und kam auf den Gedanken, die 
SPI-Einheit auf der MCU sozusagen zu missbrauchen. Leider kann die ja 
nur 8 oder 16 Bit, sodass ich dann wohl 3 8-Bit transfers nehmen könnte. 
Aber das Chip-Select muss ich auf jeden Fall irgendwie per Software 
machen. Denn in der STM-Doku steht, dass schon das Taktsignal anliegt, 
sobald NSS auf high geht, der Encoder will aber das Takt-Signal erst 
nach einer Totzeit nachdem das "Chip-Select" wieder auf low gegangen ist 
(eigentlich ist das ja kein Select, sondern eher ein 
Capture-Trigger...).

Also irgendwie so:
Toggle-GPIO An/Aus per Software, mit Schleifen oder Timer die Zeit 
totschlagen. Dann per DMA 3x0-Bytes schreiben und das Ergebnis in einen 
lokalen Puffer schreiben lassen, die letzten 6 Bits wegschmeißen. 
Vielleicht kommt der IC aber auch damit klar, wenn man nur 16 Bit abholt 
und "resetted" sein Interface wenn man ihn wieder toggled.
Klingt das grob nach einem Plan, den man weiterverfolgen könnte?

von Bürovorsteher (Gast)


Lesenswert?

OMG, warum muss immer alles mit einem Mikrocontroller gemacht werden, 
auch wenn so ein Teil dafür völlig ungeeignet ist?
Nimm den kleinsten MachXO2, den es gibt (256 Makrozellen oder wie das 
bei denen gerade heißt), und bau das dort rein (Impulsseriengeber, 
primitivste Ablaufsteuerung, Registeranschluss an den Rechner - auch 
gerne über SPI) und fertig ist die Laube.
In den Rest der CLBs, oder wie das bei denen gerade heißt, kann du noch 
Portextender oder sonstwas unterbringen, da bleibt noch massig Platz.

von BastiDerBastler (Gast)


Lesenswert?

Wenn Du meinen OP gelesen hättest, wüsstest Du, dass ich das Interface 
durchaus schon in nem FPGA implementiert habe. Da ich aber 
Higherlevel-Sachen in dem "Gerät" benötige, wollte ich nun auf eine MCU 
gehen und das FPGA nur dann einsetzen, wenn es wirklich notwendig wird: 
Schaltungsaufwand ist für mich schlimmer als Softwareaufwand, mit 
einigem Abstand.
Und warum so aggressiv?

von Bürovorsteher (Gast)


Lesenswert?

Mach es in Software, wenn du magst.

von BastiDerBastler (Gast)


Lesenswert?

Danke für die Erlaubnis, dann kann ich mir ja jetzt wieder über das 
eigentliche Thema Gedanken machen!

von Bürovorsteher (Gast)


Lesenswert?

Keine Ursache.

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.