STM32F4 SSI-Peripherie

Gast #3749294
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
Gast #3749383
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?
Gast #3749403
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.
Gast #3749459
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?

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.