Forum: Mikrocontroller und Digitale Elektronik NXP State Configurable Timer in LPC Controllern


von Johannes S. (Gast)


Lesenswert?

hat hier jemand Erfahrung mit dem SCT der in einigen LPC vorhanden ist?
Ich möchte auch eine IR FB für Panasonic nachbauen, und habe dafür mal 
einen LPC824 rausgekramt. Der ist sehr sparsam und im SCT Cookbook von 
NXP hatte ich da auch eine RC5 IRSend/Receive Anwendung gesehen, sollte 
also ganz einfach sein.
Aber wie ich feststellen musste, ist NXP in seinem Beispielcode auch 
nicht viel besser als die Mitbewerber. Für die eine Anwendung habe ich 
drei Beispiele gefunden die alle unterschiedlich realisiert sind. Für 
den LPC824 gab es ein LPCXpresso Projekt, das war wohl die halbherzige 
Umsetzung eines Keil Projektes für den LPC812 und funktionierte nicht. 
Der 824 hat noch einen InputMux der gesetzt werden muss, das kann 
irgendwie nicht funktioniert haben. Über den gleichen Fehler bin ich vor 
kurzem schonmal gestolpert, da hatte ich WS2812 mit dem SCT angesteuert 
und Code vom LPC812 als Start benutzt. Aber das war vor Weihnachten, 
mein Gedächtnis ist nicht mehr das Beste...
Ich habe das in Mbed eingebaut, da ist aber für den LPC824 eine sehr 
alte CMSIS Beschreibung drin. In den AppNotes werden unterschiedliche 
Versionen benutzt, einmal mit CMSIS und Registerprogrammierung mit Magic 
Numbers und einmal LPCOpen mit einfachen Wrapperfunktionen und defines 
für Bits. Die Namen hat NXP wohl auch mehrfach geändert.
Sehr verwirrend für den Einstieg, aber dieser SCT ist sehr 
leistungsfähig, es lohnt sich sich damit zu beschäfftigen. In LPCXPresso 
gab es mal eine grafische Hilfe für die State Machines, aber die wurde 
nicht weiterentwickelt und ist in MCUXPresso wegoptimiert worden.
Gibt es hier noch LPC Experten die auch den SCT einsetzen? Und weitere 
Resourcen mit Beispielen?

von Johannes S. (Gast)


Lesenswert?

ok, wenn die Beispiele so haarsträubende Fehler enthalten, dann ist es 
kein Wunder das sich niemand für die LPC interessiert.

Nochmal das original Beispiel in MCUXPresso geladen, funktioniert nicht.
MRT (Timer) wird benutzt, aber nicht aktiviert.
SWM soll initialisiert werden, funktioniert nicht weil Bitnummern statt 
Positionen verordert werden:
1
  Chip_Clock_EnablePeriphClock(  (CHIP_SYSCTL_CLOCK_T)  ( SYSCTL_CLOCK_SWM     |       // enable SWM clock
2
                                                      SYSCTL_CLOCK_GPIO   |      // enable GPIO port clock
3
                                                      SYSCTL_CLOCK_IOCON  ));        //enable IOCON clock


INMUX wird nicht gesetzt, damit SCT nicht getriggert.

Das kann so niemals gelaufen haben.

Im gpio code wird mit ~ operator auf bool gearbeitet wo schon der 
Compiler meckert, 8 Bit Masken für 32 Bit Register, usw.
So ein schöner Controller, aber was soll man mit so einem Software 
Support machen? Da mecker noch mal einer über STM und HAL.
Jaja, alles selber schreiben. Aber wie kann man als Hersteller sowas 
veröffentlichen?

von Cartman (Gast)


Lesenswert?

Alte LPC800/812/8xx kannst du getrost mit der Zwille in eine
Erdumlaufbahn schiessen.
Damit kannst du dann Generationen von Aliens beschaeftigen.
Eine etwas "uebersichtlichere" Peripherie haette den Teilen wohl
besser getan, als diese "Featuritis".

von W.S. (Gast)


Lesenswert?

Johannes S. schrieb:
> So ein schöner Controller, aber was soll man mit so einem Software
> Support machen? Da mecker noch mal einer über STM und HAL.
> Jaja, alles selber schreiben. Aber wie kann man als Hersteller sowas
> veröffentlichen?

Sei doch froh, denn das Silizium ist offenbar gut gelungen und die 
Firmware kannst du selber machen. Das, was du brauchst, ist das 
Referenzmanual und genug Zeit zu lesen desselben. Alles andere ist 
zweit- oder gar drittrangig.

Ja, ich rede hier vom Selbermachen ohne Copy&Paste. Das ist auf alle 
Fälle besser, als sich selber mit Beispielcode des Herstellers an dessen 
Galeere anzunageln. Wichtig ist in diesem Falle, daß du die 
Funktionalität eben dieses STC verstehst und diese für dein Vorhaben 
ausnutzen kannst.

Ach ja, ich hatte vor vielen Jahren mal eine Fernbedienung mittels eines 
PIC16 und in Assembler "umprogrammiert". Mit einem LPC hast du es da 
viel bequemer. Also jammere nicht so sehr.

W.S.

von Johannes S. (Gast)


Lesenswert?

Die anderen Devices der LPC8xx sind einfach und gut, da sind die STM32 
eher ein Schock. Für Umsteiger von AVR würde ich die immer noch 
empfehlen, die einfachen Sachen wie GPIO, UART, SPI und I2C hat man mit 
wenigen Bits im Griff.
Nur die SCT sind eine Nummer härter, da hilft das RefMan auch nur 
bedingt weiter weil man das Konzept und die Abläufe erstmal verstehen 
muss. Funktionierende Beispiele sind da ein guter Einstieg, und warum 
die Qualität da so mässig ist, kann ich nicht verstehen. Das AN11538 ist 
von 2016, sowas muss man doch pflegen wenn da solche Klopper drin sind.
Ich habe mir gestern noch ein NXP Video von dem SCT Entwickler angetan, 
kaum zu verstehen (Wolldecke im Mund) und 5s Folie von oben bis unten 
mit wirrem Code vollgekritzelt, erklären geht anders. Und die SCT gibt 
es nun auch schon seit vielen Jahren und sind ja auch immer noch in 
aktuellen Designs drin, aber mehr als PWM wird scheinbar nicht damit 
gemacht, und das können andere schöner.

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.