Forum: Mikrocontroller und Digitale Elektronik ARM7 LPC2148 Peripheral Beispielprogramme zum runterladen


von Robert Teufel (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

unser Team hat ein paar Beispielprogramme zur Initialisierung der
verschiedenen Komponenten des LPC2148 geschrieben. Wie immer, keine
Gewaehr aber es sollte hilfreich sein in die Gaenge zu kommen.
Uebrigens, dieses Mal ist der ARM (RVDS) compiler das Zielsystem. Also
braucht es etwas Anpassung fuer GNU oder IAR oder Keil aber das sollte
machbar sein.

Euer Feedback wird dankbar entgegen genommen.

von mthomas (Gast)


Lesenswert?

Zumindest ein wenig Feedback vom kurz drueberschauen:

- Der Startup-Code nebst Initialisierung und Interrupt-Handling sieht
sehr praktisch aus, nur "noetiges" in Assembler und dann C. Waere
prima, wenn dieses "Framework" auch fuer GNU/gcc angeboten wuerde.

- SSP/"SPI1"-Beispiele waeren eine gute Ergaenzung, wenn recht
erinnert, ist die Initialisierung und Nutzung etwas unteschiedlich.

- In RTC koennte eine Option "init fuer 32kHz-XTAL" ergaenzt werden.
Wenn richtig gesehen, bisher ausschliesslich fuer "PCLK". Aber
entsprechende AppNote ist ja bereits vorhanden.

- Power-Save/Idle-Interface und Beispiel als Ergaenzung.

- Was mir auch bei anderen Herstellen bei aehnlichnen Libraries bzw.
Beispielen schon oefter gefehlt hat: es gibt fuer vieles "Init"- aber
kaum "Disable"-Funktionen. Grade wenn man zum Stromsparen externe oder
interne Komponenten deaktivieren will, ist das manchmal schwierig zu
implementieren, da oft nur die Reihenfolge zur Initialisierung, aber
nicht die zum "Deaktivieren" angegben oder demonstriert wird. (Leider
ist des nicht immer einfach der "umgekehrte Weg").

- Beispiel zum Umgang mit Spurious-Interrupts von verschiedenen
("allen") moeglichen Quellen im Default-Handler. (Ergaenzung der
AppNote habe ich vor ein paar Tagen per "Support-Formular"
vorgschlagen, Empfang des Vorschlags wurde bestaetigt).

- In den Lizenzbedingungen steht zwar eine Haftungsauschluss, aber das
Copyright bzw. "All rights reserved" wird nicht gelockert. Vielleicht
habe ich das auch nur uebersehen. Eine Ergaenzung in der Art: "May be
used free of charge for commercial and hobby purposes provided
copyright notice remains intact." wuerde Unklarheiten beseitigen.

Martin Thomas

von Philipp (Gast)


Lesenswert?

Hi Robert,
Das ist ja echt super nett ein paare Beispielprogramme zur Verfügung zu
stellen! Da ich (ein Mikrokontroller Newbie) für mein Studium ein
Projekt mit dem LPC2141 plane! Leider kann ich dir noch nicht mehr
Feedback geben da ich (immer noch) auf mein Development Kit (IAR
KickStart Kit for LPC2148) warten muss.
Eventuell kannst du mir noch ein paar Tipps für mein Projekt geben?

Gruß
Philipp

von Lupin (Gast)


Lesenswert?

Was erwartest du für tipps wenn du nicht sagst worum es geht bzw was die
Anforderungen sind?

von Robertine Engel (Gast)


Lesenswert?

"Was erwartest du für tipps wenn du nicht sagst worum es geht bzw was
die Anforderungen sind?"


Das ist doch der typische "Push-nach-oben"-Post.
Von wem, darüber darf fleissig spekuliert werden...

von Philipp (Gast)


Lesenswert?

Sorry!
Ist schon zu spät um noch klar zu denken ;-)
Es geht um folgendes:
Der LPC ist im Prinzip ein USB - UART Interface das von der PC Seite
Datenpakete und Befehle entgegen nimmt (am besten Isochroner
Datentransfer). Sowie Datenpakete und Co von der UART Seite (mit einer
Baudrate von 0,5-2MBit). Darüber hinaus soll der LPC noch einige
Vergleiche von empfangenen und Gesendeten Daten durchführen.
Mich würden besonders ein einfacher Einstieg in die ARM Programmierung
sowie Beispiele zur USB- Kommunikation sowie der Baudraten Berechnung
des LPC interessieren. Da im Datenblatt von Philips nur Beispiele bis
448Kbaud angegeben sind.

Ich hoffe das ich mein Anliegen verständlich rübergebracht habe.

Gruß
Philipp

von Robert Teufel (Gast)


Lesenswert?

@ Robertine Engel
Wo bei Atmel arbeitest Du? Die kompetenten AVR32 Designer sprechen doch
alle nur Norwegisch und Englisch. Viel seichter als Robert Teufel mit
Robertine Engel anzumachen geht's ja wohl kaum mehr. Einziger
sonstiger Post von "Robertine" ist ein Manual fuer Atmel AVR32, was
ein Zufall. Dieses Manual kann entweder direkt von  der Atmel Seite
runtergeladen werden, dann sollte es auch nicht gepostet werden sondern
nur ein Link, oder es ist ein Beweis, dass die Person direkt bei Atmel
arbeitet.

Ich hab auf diesem Forum jeden Post in meinem Namen gemacht was man
bereits von dieser Anmache "Push-nach-oben" und "Von wem, darüber
darf fleissig spekuliert werden" nicht behaupten kann.
Identify yourself you coward. It is a disgrace that Atmel seems to
employ people like this :-((

RT
p.s. Entschuldigung bei Philipp!?

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Das mit dem AVR32-Manual hatte nicht wirklich etwas mit dem AVR32 zu
tun, sondern war einfach nur als Provokation gedacht. Deshalb glaube
ich nicht dass diese Person von Atmel ist. Ein echter Flamewar zwischen
Atmel- und Philips-Mitarbeitern wäre wohl zu schön um wahr zu sein ;)

von mthomas (Gast)


Lesenswert?

Hmm, ist ja doch noch Leben in diesem Thread. Haette schon irgend eine
Reaktion auf meine Feedback erhofft. Fuer eine Reaktion auf eine mehr
oder weniger plumpe Provokation scheint zumindest Zeit vorhanden. Oder
anders herum: bis eben hatte ich vermutet, dass mein Feedback in der
Menge der Forenbeitraege untergegangen sei. Nun weiss ich, dass der
Thread zwar verfolgt wird, aber Reaktion auf Feedback on topic
ueberfluessig erscheint. Nein, es geht nicht um "dankbare
Entgegennahme", sondern um Kommentar zu den Anmerkungen.

Martin Thomas

(Dieser Beitrag in der Annahme, dass R. Teufel OP auch R. Teufel 27.2.
23:37)

von Robert Teufel (Gast)


Lesenswert?

@Martin,

da muss ich mich wirklich entschuldigen, denn ich habe dein Feedback
mit Interesse gelesen und an den Author weitergeleitet.
Danke nochmals, Robert

p.s. Ich benuetze immer den Filter "ARM" und hab was neues gesehen,
die plumpe Anmache hat mich auf dem linken Fuss erwischt.

von Nicky (Gast)


Lesenswert?

@Robert:
Eigentlich ist es schon ein ziemliches Unding, hier einfach
Atmel-Mitarbeiter zu beschuldigen. Liegen die Nerven bei Philips wegen
der Ausgliederung der Halbleitersparte wirklisch schon so blank?
Traurig, traurig.
Ich denke auch wie Andreas, daß das ein anderer war.

Aber jetzt mal sachlich:
Ich wollte mir die neuesten AVR32-Manuals runterladen, aber ich finde
das von Robertine Engel gepostete Technical Reference Manual nicht auf
der Atmel-Seite. Nur das Architecture Manual und ein Whitepaper.
Kannst Du bitte den Link posten, Robert? Den kennst Du ja anscheinend.
Danke!

von Jim (Gast)


Lesenswert?

Stimmt, das ist ein Armutszeugnis von Robert.
Wieso auf Atmel-Mitarbeiter losgehen ohne irgendwelche Anhaltspunkte?

Also irgendwie wird das Klima rauher hier im Forum...

von mthomas (Gast)


Lesenswert?

Danke Robert fuer die Weiterleitung. Gibt es irgend eine Web-Seite, auf
der man die aktuelle Version der "Driver-Library" herunterladen kann
bzw. nachsehen kann, ob es etwas Neues gibt?

Martin Thomas



Verlagerung von off-topic Fragen/Mutmassungen/Provokationen in das
off-topic-Forum wuerde sicher zu einem sachlicheren Umgangston
beitragen. Link zu ausfuehrlicher AVR32-Dokumentation (pdf-Datei mit
Beschreibung der Architektur, Befehlssatz, Interrupt-System fuer AVR32a
und b) war in einem AVRfreaks Forum-Beitrag. Suche dort sollte helfen.

von Philipp (Gast)


Lesenswert?

Hallo,
Sooo UPS hat doch noch geschafft! Mein IAR Development Kit ist da!
Aber die IAR Workbench scheint nicht sooo ganz mit dem Startupcode der
geprosteten Beispiele klar zu kommen. Vielleicht kann mir da jemand
eine Hilfestellung geben da das meine erste Mikrokontroller Erfahrung
ist...

vielen Dank im Voraus
Philipp

von Robert Teufel (Gast)


Lesenswert?

@ Philipp,

die Beispiele sind fuer ARM Real-View tools geschrieben. Am besten erst
mal die mitgelieferten IAR Beispiele zum laufen bringen, dann mit etwas
mehr Erfahrung diese Beispiele umschreiben.

@ Martin
noch gibts die download option nicht aber falls denn mal, dann von
hier:
http://www.standardics.philips.com/support/documents/?type=software

@ Nicky und Jim,
wer kann ein Dokument posten, das ueber einen Link nicht zu finden ist?
Jemand der gerade gegen eine Vertraulichkeitserklaerung verstossen hat
oder ein Mitarbeiter der Firma oder....?

Werde mich gerne entschuldigen falls ich falsch lag.

Robert

von Dieter (Gast)


Lesenswert?

Ne, Robert damit hast Du Philips keinen Gefallen getan.

Was ist denn das für eine Art, erst mal üble Beschuldigungen
auszusprechen, nur weil einem etwas nicht passt?
Zu dem Zeitpunkt, als Robertine das Manual gepostet hat, war das zwar
nicht auf den Atmel-Seiten, aber auf anderen Internetseiten.
Beispielsweise hier:
http://www.e-lab.de/AVRco/avr_sheets.html

Dieser Link wurde aber auch in anderen Postings schon vor einiger Zeit
hier gemeldet.
Das Manual kann also von jedem kommen. Ich denke auch nicht, daß Atmel
so etwas nötig hat - wobei ich dasselbe von Philips gedacht habe, bis
Du uns eines Besseren belehrt hast.

Eine Entschuldigung ist wohl das Mindeste, was (insbesondere Atmel
sowie Mitarbeiter) man von Dir erwarten kann.

von Jim (Gast)


Lesenswert?

Aus einem Rechtslexikon:

"Üble Nachrede

Wer in Beziehung auf einen anderen eine Tatsache behauptet oder
verbreitet, welche denselben verächtlich zu machen oder in der
öffentlichen Meinung herabzuwürdigen geeignet ist, wird, wenn nicht
diese Tatsache erweislich wahr ist, mit Freiheitsstrafe bis zu einem
Jahr oder mit Geldstrafe bestraft. Vgl. § 186 Strafgesetzbuch."


Hmmmm, klingt so, als würde das hier passen...

von Lupin (Gast)


Lesenswert?

Kommt mal wieder runter... damit mein ich nicht robert...

Ich will nur mal fest halten, dass Herr Teufel hier schon vielen weiter
geholfen hat und gute Informationen gegeben hat. Bisher war er immer
sachlich. Wenn man ihn (offensichtlich) persönlich beleidigt/angreift
kann er doch ruhig was dazu sagen oder nicht? Er ist ja nicht
ausfallend geworden.

Weitere postings bitte nur bzgl des topics alles andere ist off-topic.

von Jim (Gast)


Lesenswert?

"Wenn man ihn (offensichtlich) persönlich beleidigt/angreift
kann er doch ruhig was dazu sagen oder nicht? Er ist ja nicht
ausfallend geworden."


Natürlich kann er was dazu sagen.
Allerdings ist es nicht in Ordnung, wenn er Mitarbeiter von
konkurrierenden Firmen diffamiert und irgendwelcher Taten bezichtigt,
für die er nicht mal ansatzweise Beweise hat.
Das ist schlichtweg peinlich und eventuell sogar rechtlich bedeutsam.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Zunächsteinmal sei festgehalten, daß hier zuerst Robert auf übelste
Weise ans Bein gepisst wurde, bevor er sich ein wenig echauffiert
geäußert hat, was in Anbetracht des Anlasses seiner Äußerung auch sein
gutes Recht ist.

Die restlichen Reaktionen von "Jim", "Dieter" oder auch "Nicky"
sind völlig unangemessen und gehören vermutlich in die gleiche
Kategorie Beiträge, wie die, die gewissermaßen als pawlow'schen Reflex
bei Nennung des Namen von Robert sofort "Werbung" schreien.
Es gibt schon eigenartige Spinner.

von Jim (Gast)


Lesenswert?

"Zunächsteinmal sei festgehalten, daß hier zuerst Robert auf übelste
Weise ans Bein gepisst wurde, bevor er sich ein wenig echauffiert
geäußert hat, was in Anbetracht des Anlasses seiner Äußerung auch sein
gutes Recht ist."


Der "Spinner" bist Du, wenn Du der Meinung bist, daß wenn Robert
angegriffen wurde, er einfach andere Unbeteiligte ebenfalls angreifen
kann. Was ist denn das für ein Argument?
Ich bekomme eins drüber, also haue ich dem nächsten auch eins drüber?

Und angemessen sind die Beiträge sicherlich. Denn Robert hat
keinerlei Beweise dafür, daß hier Atmel im Spiel ist.
Und die Wahrscheinlichkeit dafür geht gegen Null. Warum also regt er
sich so auf?

Insbesondere ist es doch so, daß nicht nur "Robertine Engel" - okay,
der Name ist amüsant - Dokumente gepostet hat, die nicht auf der
Herstellerseite zu bekommen waren, auch Robert hat dasselbe gemacht.
Wieso dann aber nun das Posting von Robert in Ordnung sein soll und das
von Robertine nicht, entzieht sich völlig meinem Verständnis.

Aber Robert hat ja seine Entschuldigung angeboten, mal sehen, ob das
nicht nur ein Spruch war!

von SuperUser (Gast)


Lesenswert?

Hat jetzt eigentlich schon jemand mal die Routinen für den LPC2148
ausprobiert und kann darüber berichten?

Ich habe mir nämlich gerade ein Board mit einen solchen Controller
bestellt und wäre an Berichten interessiert.

von mgiaco (Gast)


Lesenswert?

Hat jemand zufällig schon die Beispiele von Phillips umgeschrieben für
den IAR?

mfg mathias

von Martin (Gast)


Lesenswert?

Hallo Robert!

Ich finde die Beispiele auch sehr interessant und super.
Aber ich empfinde die UART-Einheit selbst als relativ umständlich und
verwirrend.
Z.B. werden auftretende IRQs gelöscht, indem bestimmte Register gelesen
werden usw.

Ich habe mir das UART.C-File sehr genau angesehen und habe dazu bitte
einige Fragen.

else if ( IIRValue == IIR_THRE )  /* THRE, transmit holding
{
register empty */
LSRValue = U0LSR;    /* Check status in the LSR to see if
          valid data in U0THR or not */
if ( LSRValue & LSR_THRE )
 {
 UART0TxEmpty = 1;
 }
else
 {
 UART0TxEmpty = 0;
 }
}


In der ersten Zeile wird der THRE-IRQ abgefragt.
In der nächsten "LSRValue = U0LSR;" wird abgefragt, ob
THRE valid data enthält oder leer ist.

Das verstehe ich nicht, ich dachte dies wird sowieso mit der ersten
Zeile abgefragt.

Wozu benötige ich dann noch "LSRValue = U0LSR;"?

Ich sehe noch ein Problem: Wenn in diesem Zweig das U0LSR-Register
abgefragt wird, was wäre dann wenn kurz vorher ein Parity-Error oder
sonstiger Fehler auftreten würde?
Dieser Fehler würde durch das Lesen von U0LSR wieder gelöscht und
bliebe unbehandelt und unentdeckt. Sehe ich das Richtig oder liege ich
falsch?

Es geht mir nicht darum irgendetwas zu kritisieren. Mir geht es
wirklich nur darum Antworten zu erhalten, damit ich diese Schnittstelle
besser verstehe.
Würde mich sehr freuen, wenn ihr auf diese Problematik eingehen
würdet.

Danke im Voraus.

Gruß, Martin

von Christian Mayer (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Robert,

erst einmal vielen Dank dafür, dass Du und dein Team die
Initialisierungen für den LPC 2148 geschrieben habt, sehr gut, da kein
Programm was man so findet mit dem Keil RealView funktioniert.

So, nun zu meinem Problem, ich möchte „einfach nur einen Timer 0 oder
Timer1 Interrupt" verwenden. Somit habe ich mir die Keil IDE
runtergeladen (Keil µVision3 v. 3.31; RealView, DEMO),
und die im Bild zu sehenden Files von Dir in ein Projekt gepackt (auch
dein Startup.s), und dann  versucht einen Built zu starten, leider habe
ich die im Bild zu sehenden Fehlermeldungen bekommen, mit denen ich
nicht so wirklich viel anfangen kann.
Kannst Du mir da bitte weiterhelfen.

Vielen Dank für deine Hilfe !!!

Servus Christian

von mthomas (Gast)


Lesenswert?

Es gibe 2 Fassungen der Beispiele: eine fuer den Keil Compiler (CKARM)
und eine fuer RealView. Im Zweifel mit uVision die Beispiele fuer den
(abgekuendigten) Keil-Compiler (CKARM?) nutzen - auch wenn das neue
uVision auch RealView integriert. Code-Bundle fuer Keil hatte ich mal
CKARM ausprobiert - funktionierte. Also nochmal nachsehen ob das
"bundle" fuer Keil-Compiler genutzt wird und in den Project-Optionen
auch der Keil Compiler aktiviert ist.

<Naehkaestchen>
Der Beispielcode hat allerdings ein paar Macken, sprich: es fehlen
zumindest im UART und den timer-Beispielen "volatiles". War
seltsamerweise beim Test mit CKARM kein Problem, damit hat der
Entwickler seinen Code wohl auch getestet. Bei meiner Portierung der
Beispiele nach (arm-elf-)gcc musste ich allerdings ein wenig ergaenzen
und umbauen. Abgesehen vom Gebastel am Startup-Code und dem
Interrupt-Handling. (Nein, die meine Portierung ist nicht "im
Internet", "irgendwann" dann auf
http://www.siwawi.arubi.uni-kl.de/avr_projects/arm_projects/ )
</Naehkaestchen>

Martin Thomas

von Christian Mayer (Gast)


Lesenswert?

Danke Martin, jetzt ist das Build durchgelaufen.
Das ist schon einmal ein guter Anfang, da ich aber eigentlich einen
LPC2129 verwende, muß ich den ganzen Spaß noch von 2148 auf 2129
umswitchen, die Aktion werde ich aber erst morgen starten, da die
letzte nacht schon recht kurz war und ich noch feste Nahrung zu mir
nehmen muß.

Nochmals vielen Dank,und ich melde mich morgen mit dem Ergebnis.
Servus Christian

von Christian Mayer (Gast)


Lesenswert?

Moin Martin,

ich habe gerade ne Pulle Schampus geköpft ;-))))))))))))))
Geil, die beiden LEDs auf meinem Board Blinken, und das
Interruptgesteuert, genial.
Das Mann sich über so blöde blinkende LEDs so freuen kann.
Habe am Headerfile rumschrauben, und ein paar I/Os drehen müssen, weil
meine LEDs an anderen Pins hängen, und jetzt läufts ;-)))

Nochmals vielen Dank für deine Tipps.
Was mir jedoch schleierhaft ist, warum der RealView Kram so viel
Probleme macht, daß man ihn am besten ausstellt, was soll das?
Weist Du was an dem RealView Kram toller ist als am alten CKARM?

Servus und nochmals DANKE,
Christian

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.