Forum: Mikrocontroller und Digitale Elektronik MSP430F5529 Timer A Clocksource > 1.045MHz


von Sandro (Gast)


Lesenswert?

Hi.

Ich arbeite seit kurzem mit dem MSP430F5529 Launchpad in Verbindung mit 
dem CC3100 Baustein. Ich bin leider noch nicht so vertraut mit der 
MSP430 Hardware.

Ich habe nun den Timer A so aufgesetzt, dass nach jedem Zählschritt der 
Interrupt kommt. Der Interrupt sollte alle 1 Mikrosekunde kommen. Dies 
sollte ich doch mit dem SMCLK = 1.045MHz hinbekommen, dem ist aber nicht 
so. Ich komme maximal auf 25 Mikrosekunden.

Laut Datenblatt müsste ich doch den DCO auf bis zu 16MHz einstellen 
können? Kann mir jemand sagen, wie das geht?

Ich benutze CSS mit dem TI v4.3.4 Compiler und der driverlib inkl. 
board.c/.h
Ich wäre also froh, die vordefinierten Funktionen zu verwenden und so 
weit wie möglich auf Register Bitoperationen zu verzichten.

Vielen Dank schonmal!
MFG

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Sandro schrieb:
> Der Interrupt sollte alle 1 Mikrosekunde kommen.

Schon mal überlegt, was der Prozessor damit anfangen soll, und schon mal 
nachgesehen, wie lang der Aufruf und das Verlassen einer 
Interruptroutine jeweils dauert?

Das ist ein Designfehler. Wozu soll das auch gut sein?

> Ich wäre also froh, die vordefinierten Funktionen zu verwenden und so
> weit wie möglich auf Register Bitoperationen zu verzichten.

Keine gute Idee; Du solltest Dich mit der Hardware selbst beschäftigen, 
damit Du weißt, was dort passiert. Sieh Dir den Sourcecode dieser 
Library und den "Family User's Guide" für 'F55xx an, und obendrein die 
Sourcecodebeispiele, die TI selbst für 'F55xx zur Verfügung stellt.

von Sandro (Gast)


Lesenswert?

Rufus Τ. Firefly schrieb:
> Schon mal überlegt, was der Prozessor damit anfangen soll, und schon mal
> nachgesehen, wie lang der Aufruf und das Verlassen einer
> Interruptroutine jeweils dauert?
>
> Das ist ein Designfehler. Wozu soll das auch gut sein?

Das bin ich mir schon bewusst. Ich möchte einige Messungen machen, 
welche genau das thematisieren sollen. Hätte ich vieleicht schreiben 
sollen.

Rufus Τ. Firefly schrieb:
> Keine gute Idee; Du solltest Dich mit der Hardware selbst beschäftigen,
> damit Du weißt, was dort passiert.

Bin ich mir ebenfalls bewusst. Ich habe bislang alles mit den Funktionen 
mit dem MSP430. Vieleicht sollte ich das ändern.

Aber kann mir trotzdem jemand helfen mit dem Timer A Clocksource Ich 
habe mir den Guide und alle Code Examples angeschaut aber finde nichts. 
16MHz sind schon möglich oder? Oder habe ich mich bereits da verlesen? 
:S

Vielen Dank
MFG

von Fitzebutze (Gast)


Lesenswert?

Moin,

aus eigener Erfahrung: Vergiss den Mikrosekundenbereich beim MSP. Wenn 
Deine Anwendung solch knackige Timings erfordert, geh auf ein FPGA.
Warum es nicht klappen kann, wird relativ klar, wenn Du Herrn Fireflys 
Tips folgst :-)
Erst mal muss ein eintreffender IRQ erkannt werden. Das kostet schon 
einige Zyklen. Bis Du auch schon aus einem handcodierten 
Assembler-IRQhandler wieder rauskommst, kannst Du schon mal weitere 10 
Taktzyklen dazuschätzen.
Du hast auch keine weiteren Anhaltspunkte darüber, wieviele weitere 
IRQ-Requests am Timer-Pin während der Abarbeitung schon ignoriert 
wurden.
Manche CPUs mit nicht wirklich auf IRQ optimierter Architektur hängen 
sich auch schon mal auf, wenn der Pin zu schnell feuert. Beim msp430 
sollte dies  m.W. nicht passieren, möglicherweise läuft im "User"-Mode 
dann aber gar nichts mehr.
Also: Kein guter Ansatz, wie schon gesagt.

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.