Guten Abend, ich hoffe ich finde hier jemanden, der den AS5040 schon mal benutzt hat. Ich versuche den gerade über SPI auszulesen und bekomme nur 0x2001 als Rückgabewert. Laut Datenblatt sollte nach dem Startup das OCF bit auf high gehen, dieses bleibt aber leider auf low. Habe schon mit dem Oszi überprüft, ob mit der Datenübertragung alles funktioniert. Das scheint alles zu stimmen. Der PWM output des AS5040 funktioniert allerdings tadellos. Hat jemand einen Tipp für mich? Gruß Marcus
Nach 5 Stunden Kopfzerbrechen hab ich die Lösung doch noch gefunden... Falls andere auch mal in die Verlegenheit kommen hier die kurze Beschreibung: Hab den IC mit dem SPI des mega64 auslesen wollen. SPI-Einstellung war: SPCR &= ~(1<<CPOL); // rising edge leading SPCR |= (1<<CPHA); // sample on falling edge Soweit so gut. Was ich aber nicht bedacht habe (und was auch nicht klar aus dem Datenblatt herausgeht): Die Clock muss im Idlezustand anscheinend high bleiben. Ich mach das jetzt so: Nachdem der Interrupt kam und die Übertragung beendet ist wird der SPI ausgeschaltet und der Pin auf high gezogen. So, jetzt hab ich mir die Nacht verdient :)
Danke für diesen Input, wir werden das beim nächsten Datenblatt update hinzufügen. lg Jan
Marcus W. wrote: > > So, jetzt hab ich mir die Nacht verdient :) Falls Du noch mitliest: Rückst Du den Ansteuerungscode für den Sensor raus? Ich werde den Sensor auch benutzen und das sollte mir möglicherweise auch 5h Kopfzerbrechen ersparen. THX Cheers Detlef
Hallo Ich habe mir auch diesen Sensor besorgt, könnt auch mir jemand einen schon vorhandenen Code geben? Danke
Ich brauch den Sensor auch für meine Diplomarbeit in der Schule. Hab jedoch ein Problem beim Winkelauslesen. Seriel sollte ein Wert von 0-1023 empfangen werden. (360° = 1023) Ich bekomme jedoch immer nur einen Wert von 0 - ca. 500; in einem Teil des Kreise bleibt der Wert konstant auf ca. 500 (ich glaube es waren 511) obwohl der Magnet gedreht wird. Muss man den AS5040 vorher programmieren um auch Werte von 0 bis 1023 zu bekommen? Ich hab das AS5040-Adapterboard und den LPC935. Hat jemand vielleicht schon einen fertigen C-Code? thx
Hallo zusammen, ich versuche mich auch gerade an dem AS5040 und der SPI Schnittstelle. Prinzipiell scheint es als ob die SPI Schnittstelle funktioniert, da ich Daten empfange. Aktuelle Einstellungen der SPI: CPOL = 1 CPHA = 0 Wenn ich nun die empfangenen Daten bewerte, so muss ich feststellen, dass bei CPOL = 1 nur Daten im Bereich von ca. 500...1023 empfangen werden, hingegen bei CPOL = 0 zwischen ca. 0...500. Dieses Phänomen ist mir noch nicht ganz klar. Der PWM-Wert wird hingegen immer korrekt ausgegeben. Hier mal der Code zum auslesen:
1 | void as5040_spi_data(void) |
2 | {
|
3 | uint16_t data=0; |
4 | SPCR |= (1<<CPOL); // SCK high on IDLE |
5 | |
6 | clear_CSN(); //set low CSN |
7 | data = spi_transferword(data); |
8 | set_CSN(); //set high CSN |
9 | |
10 | AS5040data.state = (uint8_t) (data & 0b0000000000111111); // and extract status and angle |
11 | AS5040data.value = (data & 0b1111111111000000) >> 6; // mask and shift 6 bits to the right |
12 | |
13 | }
|
Für erste tests sollte die Auswertung der Statusbits ja egal sein. Oder seht Ihr das anders? Gruß Ralf
AS5040 Chip: http://www.austriamicrosystems.com/eng/Products/Magnetic-Encoders/Rotary-Encoders/AS5040 Datenblatt: http://www.austriamicrosystems.com/eng/content/download/1285/7214/49
@tobi: Danke für den Link. Jedoch habe ich das Datenblatt als erstes mal studiert um dort auf eine Lösung zu kommen. Jedoch bis jetzt erfolglos. Daher habe ich ja auch hier im Forum geschrieben. Wenn es bereits fertigen Code für diesen Chip gibt wäre ich auch nicht unglücklich darüber, aber primär möchte ich meinen Code zum laufen bekommen. Daher bin ich über weitere Hinweise sehr dankbar.
http://techwww.in.tu-clausthal.de/site/Projekte/CarBoTUC/?main&structure vielleicht hilft dir das ja weiter. ich nutze bisher nur die analogen oder die PWM chips von ams
Ich habe mich nun ein wenig auf der Projektseite der TUClaustal umgesehen. Allerdings suche ich dort vergeblich nach dem AS5040. Kannst Du hierzu noch genauere Links schicken?
Hier noch der Nachtrag: Ich habe den AS5040 schon gefunden, allerdings nur mit PWM auswertung und in VHDL programmiert. Für die SSi bzw. SPI Schnittstelle hilft dies ja erst mal noch nicht.
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.