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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.