Forum: Mikrocontroller und Digitale Elektronik Suche Hilfe bei einem Projekt mit ARM Cortex M4 und Tiva C


von Max M. (Firma: Fa. Meinefirma) (max_m45)


Lesenswert?

Hallo,

Ich bin gerade dabei einen rotary encoder auf der Entwicklungsboard 
Texas Instruments EK-TM4C1294XL zu programmieren.

Als Entwicklungsumgebung wird CCS7 vom TI eingesetzt.

Meine Schwierigkeiten liegen darin, dieses Modul so richtig über SPI 
anzusprechen bzw. zu steuern!

Hat wer Erfahrungen mit diesen Tools gesammelt?

Bin für alle Antworten rechtherzig  dankbar!


LG

: Bearbeitet durch User
von macload1 (Gast)


Lesenswert?

Hallo,

Versuch's doch erstmal mit ein paar Beispielprojekten für deine 
Plattform; bei TI (im sogenannten Resource Explorer) gibt es da ganz 
viele von: 
http://dev.ti.com/tirex/#/?link=Software%2FTM4C%20ARM%20Cortex-M4F%20MCU

Wenn dir die vom EK-TMM4C129... nicht genügen, kannst du auch die vom 
DK-TM4C129X nehmen, ist ja derselbe Prozessor.

Und wenn du spezifische Probleme hast, dann kannst du gerne nochmal 
nachfragen, aber dann, indem du auch dein Problem erklärst.

P.S.: damit ich aber auch hier deine Frage beantworte und man mir nicht 
nachsagt, dass ich daneben geantwortet habe: Ja, ich habe Erfahrungen 
mit den Tools gesammelt.

von Johannes M. (Gast)


Lesenswert?

Im CCS gibt es eine Wissenstonne an Informationen (weiß nicht mehr genau 
wie diese Beispiel und Hilfssektion heißt), die schon genau auf das 
Evalboard vorkonfiguriert sind. Das ist echt sehr einfach.

Dazu bietet die Community von TI in deren Foren auch eine gute Basis 
unzufangen. Welchen Wissensstand bringst du denn mit?

von Max M. (Firma: Fa. Meinefirma) (max_m45)


Lesenswert?

Zunächst vielen vielen Dank für euer Antworten!

Wie ich auch in meinem ersten Beitrag beschrieben habe muss ich auf das 
TI Launchpad ein rotary encoder programmieren.
der Encoder ist von der fa. mikroe.com und die Information wie man den 
Encoder auf das Board mittels Software mountet ist leider sehr spärlich!
Merkwürdigerweise für Arduino oder Raspberry Pi gibt es eine fülle an 
Infos.


Laut der Informationen von Hersteller [mikroe] kann der Encoder über SPI 
Busprotokoll angesprochen werden.

Meine Schwierigkeit ist, dass ich immer noch nicht gefunden habe wie ich 
die Signalen vom Encoder-Rotate-Button auslesen kann. Den 
dementsprechend muss ich dann auch die Dioden einschalten. Mit einem 
Wort welche GPIO's ich wie (Input/Output) konfigurieren muss um einen 
reibungslosen SPI Kommunikation zwischen Board und Encoder gewähren 
kann.

Meine Erfahrungen sind mehr als ein guter Anfänger was µC angeht.


Ich habe ein Termin bis ende Februar und habe nicht so viel Zeit!

@mcload

Alle die Infos kenne ich schon. Die sind Teilweise auch im CCS 
eingeführt.
Achso für einen Erfahrenen ist das nicht mehr als eine oder zwei Stunden 
arbeit.

von macload1 (Gast)


Lesenswert?

Woran hapert es denn jetzt nun? Hardware (die Beschaltung zwischen 
Launchpad und Rotary Encoder) oder Software (SPI Funktionen)?

Wäre vielleicht auch interessant die genaue Referenz (oder einen Link 
zum Produkt) vom Rotary Encoder mitzugeben, ich weiß nicht wieviele es 
bei Mikroe davon gibt.

von maxm_45 (Gast)


Lesenswert?

Hallo,

in mom. happert es daran dass ich nicht weiß wie man den rotary 
ausließt.

der link zur rotary: https://www.mikroe.com/rotary-g-click

ich habe die ganze zeit versucht den über SPI auszulesen aber dann bekam 
ich einen Tip den über QEI auszuleßen !!!

Danke für deine Unterstützung !

von --- (Gast)


Lesenswert?

Tja, mikroes proprietaeres Zeug.

Lad dir die Testversion von deren (ansonsten schrecklichen)
ARM-Compiler und die Lib fuer den Encoder dazu.

Dann kannst du wenigstens im Compilat mal schauen wie es geht.

P.S.: Nimm dir mal ne Zange und reiss das 'ß' aus deiner
Tastatatur. Das liest ja scheußlich.

von macload1 (Gast)


Lesenswert?

Da fällt mir noch etwas ein. Falls du für Arduino ja schon die 
Bibliotheken gefunden hast, kannst du diese ganz bestimmt einfach in 
Energia einbauen.

Energia ist sowas ähnliches wie Arduino, nur halt für die TI Chips und 
das EK-TM4C129EXL wird da unterstützt.

von maxm_45 (Gast)


Lesenswert?

Mit Energia kenne ich mich überhaut nicht aus und um das jetzt zu lernen 
kostet mir viel Zeit, die ich leider nicht habe.

Laut einigen Kommentaren die ich im Internet gelesen habe, kommuniziert 
der rotary über QEI und der Dioden Ring über SPI.

Der Button von Rotary kommuniziert über irgendwelchen Interrupts vermute 
ich !


Ein bischen Code wäre für mich sicherlich viel viel Hilfsreicher !!!

Danke!

von Entwiggler (Gast)


Lesenswert?

maxm_45 schrieb:
> Ein bischen Code wäre für mich sicherlich viel viel Hilfsreicher !!!

Die Schaltung und SPI Kommunikation funktioniert grundsätzlich, und du 
kannst nur die empfangenen Daten deuten, oder woran scheitert es genau?

Die Leute haben besseres zutun als alles selbst zu suchen und einem aus 
der Nase zu ziehen. Darum beschreibe das Problem genauer sowie was du 
unternommen hast es zu lösen, und poste Libs für Arduino und Raspberry 
hier. Evtl sieht man da wie Kommunikation und der StateFlow aussehen 
könnte.

von maxm_45 (Gast)


Lesenswert?

Hallo an alle,

zunächst Danke für euren Beitragen !

@Entwiggler Der Rotary besteht aus zwei Teilen 1. den Encoder und 2. den 
Dioden Ring.

Der Dioden Ring lässt sich über SPI steuern, während die Encoder 
Signalen [phA0 und phB0] kann man nur über QEI auslesen.
Mittlerweile kann ich QEI initialisieren und debugen können!

Die Frage ist wo und wie die Signalen auszulesen sind?
welche Registern enthalten die Sigs?

Danke.

von Jack (Gast)


Lesenswert?

Max M. schrieb:
> der Encoder ist von der fa. mikroe.com und die Information wie man den
> Encoder auf das Board mittels Software mountet

"mounted"? Gewöhn dir mal dieses Bullshit-Gerede ab. Was soll "mounten" 
in diesem Zusammenhang bedeuten? Aus deiner ganzen Beschreibung kann man 
nur lesen, dass "irgendwas" nicht geht. Eine verständliche 
Problembeschreibung sieht anders aus.

Wirklich, was ist das Problem?

Das "Manual" enthält die komplette interne Schaltung 
https://download.mikroe.com/documents/add-on-boards/click/rotary-g/rotary-g-click-manual-v100.pdf

Das Ding besteht nur aus zwei TTL Schieberegistern ('595, generischer 
geht es gar nicht), Pegel-Konvertern, Encoder und Hühnerfutter. Alle 
Komponenten sind handelsüblich und Datenblätter erhältlich. Sollte was 
in der Schaltung unklar sein kann man die Platine mit einem Multimeter 
durchklingeln.

Genau so auf der Board-Seite, alles ausreichend, wenn auch nicht 
perfekt, dokumentiert. Du musst dich halt mal hinsetzen und alle 
Informationen zusammensetzen. Ist das vielleicht dein Problem? Keine 
Lust die einzelnen Informationen zusammenzusetzen? Keine Lust die Lösung 
zu planen?

von maxm_45 (Gast)


Lesenswert?

@Jack,

bevor du hier was schreibst bitte genau lesen was ich vorhin geschrieben 
habe!
Der Teil besteht aus zwei 595-er TTL und zwei 74LVC1T45 (Encoder)
595- er TTL -> SPI
74LVC1T45 (Encoder) -> QEI wurde mir gesagt: bitte um Bestätigung !

von A. B. (Gast)


Lesenswert?

maxm_45 schrieb:

> Laut einigen Kommentaren die ich im Internet gelesen habe, kommuniziert
> der rotary über QEI und der Dioden Ring über SPI.
>
> Der Button von Rotary kommuniziert über irgendwelchen Interrupts vermute
> ich !

rotary nix kommunißiert! Das ist ein simpler Quadraturencoder (obendrein 
sogar mechanisch):

https://www.mikrocontroller.net/articles/Drehgeber

von macload1 (Gast)


Lesenswert?

Auf Seite 1749 vom Datasheet des TM4C1294NCPDT hast du das Diagramm des 
QEI und wenn ich das so sehe, würde ich mir sagen, dass dich das 
Register QEIPOS da interessiert.

Ich würde dir aber anraten das ganze Kapitel zu lesen und zu verstehen. 
Die anderen Register für dieses Modul müssen nämlich auch richtig 
gesetzt werden (wie z.B. QEIMAXPOS und QEICTL).

Falls du nicht den Hardware QEI benutzen möchtest, kannst du das alles 
auch per Bitbanging machen, aber das wäre natürlich schade...

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.