Forum: Mikrocontroller und Digitale Elektronik dspic30f SSI-Schnittstelle


von Leo (Gast)


Lesenswert?

Hallo

Ich bin dabei, einen 12-Bit Drehgeber vom Typ ATD 07S A4 mithilfe eines 
dspic30f4011 auszuwerten. Nach Umwandlung des Differenzsignals und 
einlesen über die SPI-Schnittstelle habe ich versucht, die eingelesenen 
16-Bit-Werte direkt auszugeben, was mir jedoch leider nicht gelingen 
will.
Folgende zwei Probleme treten auf:
1. Die Ausgabewerte springen ständig zwischen zwei Werten.
2. Wenn ich dieses Signal dennoch um vier Stellen shifte (für 12 Bit) 
und in ein Binärsignal umwandel zählt er die Winkel nicht wie gewünscht 
von 0 - 4095 pro Umdrehung ständig hoch, sonder zählt bis 4095, dann 
rückwärts zurück zu null und wieder hoch in der doppelten 
Geschwindigkeit.

Anbei die Konfiguration meiner Schnittstelle und der Aufruf derselben:

OpenSPI1(
FRAME_ENABLE_OFF & FRAME_SYNC_OUTPUT & DISABLE_SDO_PIN & SPI_MODE16_ON & 
SPI_SMP_ON & SPI_CKE_ON & SLAVE_ENABLE_OFF & CLK_POL_ACTIVE_LOW &
MASTER_ENABLE_ON & SEC_PRESCAL_3_1 & PRI_PRESCAL_16_1, SPI_ENABLE & 
SPI_IDLE_STOP & SPI_RX_OVFLOW_CLR);

Der Aufruf der Schnittsteller erfolgt mit 15kHz über

S90EN = 0;
delay(6);
WriteSPI1(0x0000);
while (SPI1STATbits.SPIRBF == 0);
winkel = ReadSPI1();
winkel = winkel >> 4;
S90EN = 1;

Hierbei ist die Ausgabe schon fehlerhaft. Bin etwas ratlos.

von cwa (Gast)


Lesenswert?

Hi Leo,

bitte prüf mal folgendes :

a) Clockfrequenz
die SSI Schnittstelle muss mit mindestens 80kHz ausgelesen werden, 
zwischen zwei Auslesevorgängen muss eine Pause von mindestens 25us 
liegen.

b) Flanken
die SSI Data Signale wechseln mit steigender Flanke. Wenn man auf der 
falschen Flanke ausliest kommen oft erstmal plausible Ergebnisse raus, 
die allerdings um 1Bit verschoben sind, das könnte die "doppelte 
Geschwindigkeit" erklären.

eine Beschreibung zum der SSI Schnittstelle : 
http://www.posital.com/de/produkte/schnittstelle/ssi/ssi.php

eine ganz brauchbare Applikation note : 
http://www.posital.com/media/posital_media/documents/AbsoluteEncoders_Context_Technology_SSI_AppNote.pdf

Gruss

CWA

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.