Das Signal, welches ich mit WaveShare (über meinem Analog Discovery)
empfange ist aber nur Kauderwelsch.
Ich kann da gerade auch kein System entdecken. Habe ich etwas falsch
eingestellt?
Karl D. schrieb:> hspi3.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2;
Wenn dem so ist dann gehst du vermutlich mit geschätzten
168 MHz / 4 (oder /8?) auf den SPI Clock. Das will erst
mal richtig gemessen werden.
Da ich deine Clock Konfiguration nicht kenne (du sie nicht
veröffentlicht hast) ist das nur erst mal eine grobe Schätzung.
Danke für die Anregung. Ich werde mir nochmal die genauen Clocks
ansehen.
Es wäre echt schade, wenn es daran liegt, zumal der AD2 eine Samplerate
von 100 Mhz hat (wenn ich mich richtig erinnere).
Karl D. schrieb:> Es wäre echt schade, wenn es daran liegt
Was wäre schade? Wenn es woran liegt?
Ein SPI Datenverkehr den du wegen der hohen Frequenz
nicht messen bzw. nicht analysieren kannst bedeuted ja
nicht dass er nicht funktioniert.
Oder wie sollte man deine Äusserungen sonst verstehen?
Karl D. schrieb:> zumal der AD2 eine Samplerate von 100 Mhz hat
Was hat der AD2 mit der SPI Datenrate zu tun?
Vielleicht müsstest du noch ein paar klärende Worte zu
deinen sehr vagen Gedankenfragmenten fallen lassen.
Hey.
Also im Grund genommen möchte ich über den SPI3 Bus eine Kommunikation
zwischen STM32 und Computer aufbauen, um mir so schnell Daten anzeigen
zu lassen.
Beim setzen des Prescalers auf "SPI_BAUDRATEPRESCALER_32" ergibt sich
eine Frequenz von 1,287 Mhz auf der SCK Leitung. Ich habe jetzt gedacht,
dass ich den AD2 als Logger benutzen kann, da ich mir die Werte mit der
WaveForms Software anzeigen lassen kann. Der AD2 spielt also den Slave.
Das Signal der MOSI und SCK Leitung sieht am Oszilloskop auch gut aus,
jedoch sind die Werte falsch, die bei mir ankommen.
Sollte am AD2 auch die 0xFFFF anzeigen, auch wenn ich ggf. das Startbit
verschieben müsste. Aber die Ausgabe sieht man auf dem Screenshot im
Anhang.
Mir ist absolut nicht klar wo der Fehler liegt.
Ich hoffe, meine Erklärung war verständlich.
Karl D. schrieb:> dass ich den AD2 als Logger benutzen kann
Wer ist AD2?
Kennst du BY53?
Fragen über Fragen.
Kannst du dich in jemanden hineinversetzen der nicht deine
Entwicklungsumgebung kennt?
AD2: = Analog Discovery 2.
Der AD2 (Analog Discovery 2) ist ein kleines Prüfinstrument mit dem ich
mir Signale angucken und aufnehmen kann. Er hat zum Beispiel ein 2 Kanal
Oszilloskop (14-Bit, 100 Msample/Sek), einen Zweikanal
Funktionsgenerator, einen 16-Kanal-Digital-Logik-Analysator, digitale
Busanalysatoren (SPI, I²C) und noch ein paar Sachen mehr.
Ich habe also mein STM32F407VG Board (selbstentwickelt). Auf dem habe
ich u.a. den oben genannten Code aufgespielt. Die Pins PC10 bis PC13
gehen direkt zu einem Pinheader, ohne das an diesen Leitungen sonst noch
irgendetwas angeschlossen ist. Der Analog Discovery 2 ist direkt mit dem
Pinheader verbunden. GND, SCK, MOSI.
Ich versuche nun einen vordefinierten Wert vom STM32 zu versenden und
mit meinem Analog Discovery 2 zu empfangen, bevor ich dazu übergehen
meine Messwerte zu verschicken.
Um mir die Signale und Werte anzeigen zu lassen benutze ich ich
WaveForms, welches über USB mit dem Analog Dscovery kommuniziert. In
WaveForms gibt es bereits verschiedene Bussysteme die analysiert werden
können. Etwas kann man auch den angehängten Bildern entnehmen.
Im Anhang habe ich einmal ein Bild von den MOSI und SCK Signal gepackt.
Danke!
Und dein Signal sieht doch sauber aus. Wo liegt denn jetzt genau dein
Problem?
Gefällt dir nicht, was du sendest?
Was in deinem Code auf jeden Fall gefährlich ist, ist das strlen. Dein
Array ist kein String und auch nicht null terminiert. Kannst dir ja mal
ansehen, wie groß strlen ist.
Karl D. schrieb:> Danke!
Du schaffst es leider nicht auf Nachfragen die sich auf deine
unklaren Angaben beziehen, zu antworten bzw. dies zu klären.
z.B.
FachLaie schrieb:> Was wäre schade? Wenn es woran liegt?
Deswegen (und wegen des Chaos hier) bin ich dann mal weg.
Nachtrag:
Und das SPI Signal schaut scheisse aus. An solchen
"Kleinigkeiten" sieht man wie unprofessionell gearbeitet wird.
nfet schrieb:> Und dein Signal sieht doch sauber aus.
@nfet: Das Problem liegt aktuell darin, dass das ankommende Signal aber
nicht dem gesendeten entspricht. Ich werde mir die alles nochmal
gründlicher ansehen, habe aber im ersten Moment einen Softwarefehler
vermutet, da ich noch neu mit der HAL bin.
FachLaie:
Du verursachst das Chaos hier. Wenn du nicht helfen kannst, dann mach
mach keine Szene und antworte einfach nicht statt wie ein verzogenes,
ätzendes Kleinkind zu meckern. Dir habe ich alles jetzt mehr als genug
erklärt. Bleib einfach von diesem Topic fern.
> Ich bin der Bittsteller und du der grosse Meister.
Auch wenn man nicht jede Information liefert, kann man trotzdem normal
danach fragen oder es halt lassen. Ich habe dir jetzt genau genug den
Aufbau erklärt. Wenn du es nicht verstehst, dann kannst du mir auch
nicht helfen.
>> Beitrag "Re: SPI3 am STM32"
Baby.
Was denkst du denn zu senden und was kommt an? Auch mir ist absolut
unklar, wo drin Problem ist. FachLaie vergreift sich komplett im Ton und
ist nicht hilfreich, aber deine Problembeschreibung ist leider auch
nicht dass gelbe vom Ei.
Rein elektrisch sieht dein Signal gut aus.
Wenn ich raten müsste: du erwartest 16 CLK cycle mit 0x0F und 0xF0 auf
der Datenleitung, die dauerhaft wiederholt werden.
Mein Vorschlag: Lass doch mal die Wiederholung raus und auf mein strlen
Problem hast du auch noch nicht geantwortet.