Forum: Mikrocontroller und Digitale Elektronik LPC800 existiert (fast) nicht in diesem Forum


von MarcVonWindscooting (Gast)


Lesenswert?

<*nk*tz>

Hallo Leute, ich hab mir eben die Beschreibung der ARM/LPC1100 hier im 
Forum angesehen und nach den LPC800 gesucht und immerhin ein wenig 
gefunden.

Nur: ziemlich out-of-date (Stand 2011?) z.T. Fehler.
Ich hab paar kleine Korrekturen gemach. Wahrscheinlich ist der Auto vor 
diesem Forum davongelaufen. Ich kann mich noch an einen Robert Teufel 
erinnern, vor ein paar Jahren, der immer von den LPCs geschw"armt hat.
Das hat aber offensichtlich nicht gefruchtet.

Man kann S"ackeweise Saatgut in der W"uste versenken, da geht nichts 
auf! Wo kaum Wasser ist, da gedeihen nur die gen"ugsamsten Kakteen und 
lassen am liebsten gar nichts an sich ran.

Hier im Forum k"onnen anscheinend nur PICs, AVRs, 8051, MSP430 und im 
Ausnahmefall ein STM32 wurzeln und vor sich hindursten. So verdorrt und 
ausgelaugt ist hier der Boden. Und was darauf vor sich hin darbt, das 
taugt h"ochstens dazu dem Menschen das Vorw"artskommen zu erschweren 
oder Schatten f"ur 'nen kleinen Fusszehen zu spenden. Aber ob der Mensch 
"uberhaupt noch gewillt ist woanders bessere Bedingungen zu suchen? 
Vielleicht will er sich lieber hinsetzen und sehns"uchtig an die letzte 
Eiszeit denken. Ach w"urde sich das Klima doch bloss zu seinen gunsten 
ver"andern und wieder Bedingungen wie fr"uher herrschen. Aber wenn ein 
Fremder vorbeikommt und von Wiesen, Wald und Wasser redet, dann 
schneidet der hiergebliebene ein St"uck aus einem Kaktus, presst 
demonstrativ 7 Tropfen Wasser raus, dann mit aller Gewalt noch einen 8. 
Dann schaut er verachtungsvoll den Fremden an und sch"uttelt den Kopf. 
Wie kann man nur mehr brauchen wollen!?
Aber die 8 Tropfen gen"ugen ihm nicht wirklich, er ist bloss zu faul 
seinen Hintern zu bewegen. Denn bei jeder anderen Sache ist er gar nich 
so bescheiden und nimmt, was er (umsonst) bekommen kann.


Ist das hier eine LPC-freie Zone? Sind die so unattraktiv?

Steckbrett:
Schon mal 'nen LPC810FN8 (DIP8) angeschaut? Nein?
Einen LPC1114FN28 (DIP28) eines Blickes gew"urdigt? Nein?

Oder vielleicht f"ur die 'modernen' unter euch: LPC812JD20 (20-SOIC-W), 
LPC1110FD20 (20-SOIC-W), LPC1112FD20 (20-SOIC-W), die kann 'man' schon 
noch ohne Probleme l"oten, wenn man was anderes als 'nen 80W 
Schweisskolben aus dem Baumarkt hat. Auch nicht?

Brauchen zuviel Strom im aktiv-Modus z.B. 2mA@12MHz. Vermutlich. Und im 
(Nicht:Deep-) Power-Down sowieso (z.B. 3uA mit Ausgangsregistern aktiv, 
self-wakeup-timer laufend, 4 wakeup-pins aktiv). Und die 1.8V..3.6V sind 
auch so ungeschickt, wenn man nicht z.B. die ultra-low-level NXP 
PMVxxUP/UN MOSFET am Ausgang verwendet (z.B. PMV30UN, wenn's mal wieder 
etwas mehr Strom sein muss), sondern seine MOSFET-Restposten aus den 
90er Jahren verbrauchen will (BUZ...). Und die Pins dieser Micros sind 
ja auch nicht Arme, sondern eher nur D"aumchen (Thumb2?) mit nicht mal 
10mA, aber allerh"ochstens mal 20mA - l"acherlich f"ur jeden 
Bastler-Mindestanforderungskatalog. Dann wohl tats"achlich besser Finger 
weglassen, von dem neumodischen Kram.

</*nk*tz>

von Arne Maximilian R. (arnemaximilian_r)


Lesenswert?

Ich kann deinen Frust gut verstehen. Lassen wir mal die alten 
Mikrocontroller bei Seite, jedoch koennten sich die LPC's doch besser 
durchsetzen.

Im direkten Vergleich mit den STM32 finde ich eine super IDE, mit fast 
keiner Begrenzung (LPCXpresso mit einem Codelimit von 256 Kb), eine 
schoenere Dokumentation (ich finde die NXP Doku persoenlich besser 
beschrieben, als z.B. die ST Dokus) und natuerlich die tollen 
Mikrocontroller.

Jedoch sehe ich auch, dass die ganzen Cortex Mikrocontroller noch etwas 
Zeit brauchen um sich durchzusetzen. Ausserdem hat NXP leider beim 
Marketing ein paar Fehler gemacht (also nach meinem Gefuehl). Sie bieten 
zwar super Produkte und ein tolles Angebot an, jedoch hat ST mit dem 
STM32F4Discovery vom Marketing her einfach gewonnen. Das Board hat freie 
Pins und direkt ein wenig Peripherie zum rumspielen (die Peripherie 
fehlt einfach bei den Xpresso Boards oder es sollte welche geben mit ein 
wenig Peripherie zum Einsstieg). Ausserdem konnte ST seine Boards 
schneller an den Mann bringen. Ich denke da nur an die Embedded World, 
wo gefuehlt jeder Besucher am Ende mit einem STM32F4Discovery nach Hause 
gegangen ist und das mindestens zwei Jahre in folge.

Es fehlt wirklich ein Gegenstueck zu dem STM32F4Discovery von NXP und 
sie muessen echt eine aggressivere Vermarktung betreiben!

von Oscar K. (sieges)


Lesenswert?

" ...Schon mal 'nen LPC810FN8 (DIP8) angeschaut? Nein?"
Doch .. aber vielleicht ist es einfach die Einarbeitungszeit die Viele 
scheuen.
Aber ein WIKI Artikel für den schnellen Einstieg wäre natürlich sehr 
hilfreich ;-)
Ich beschäftige mich normalerweise nur mit der MSP430 Familie.
Aber die kleinen schnellen 32 Bitter interessieren mich sehr.
cheers

von Aladin (Gast)


Lesenswert?

Ich mach mal wünsch dir was: TQFP im 0.8 Raster, 32-64 Pins, viel und 
flexibles I/O welches per interner Switchmatrix auf die Ports 
configurierbar ist.

von chris_ (Gast)


Lesenswert?

Im Vergleich z.B. zum Attiny85 fehlt dem LPC800 das EEPROM und der 
AD-Wandler:
http://www.mikrocontroller.net/part/LPC812

von Alexander F. (alexf91)


Lesenswert?

Also LPC1114 hab ich schon für private Basteleien verwendet (LQFP).
Mir war gar nicht klar, dass es die LPC111X Familie zum Teil auch in 
SOIC gibt. Das ist für kleine, einseitige Platinen definitiv besser 
geeignet.

von Tim  . (cpldcpu)


Lesenswert?

Hallo Marc,

ich finde es auch Schade, dass der LPC81X so wenig Beachtung findet. 
Eine Maßnahme wäre es vielleicht, die Wikiartikel auf den neusten Stand 
zu bringen.

Andererseits ist auch das offizielle Forum ziemlich verwaised..

von Tim  . (cpldcpu)


Lesenswert?

chris_ schrieb:
> Im Vergleich z.B. zum Attiny85 fehlt dem LPC800 das EEPROM und der
> AD-Wandler:
> http://www.mikrocontroller.net/part/LPC812

Wenn man diese braucht, dann ja. NXP hat vor Jahren schon angekündigt, 
ein Upgrade der 81X Serie mit ADC auf den Markt zu bringen.

EEPROMS gibt es in den neueren Controllern fast nie. Dafür kann man sich 
aber häufig einen Teil das Flash als Datenbereich sichern.

: Bearbeitet durch User
von Tim  . (cpldcpu)


Lesenswert?

Aladin schrieb:
> Ich mach mal wünsch dir was: TQFP im 0.8 Raster, 32-64 Pins, viel und
> flexibles I/O welches per interner Switchmatrix auf die Ports
> configurierbar ist.

Die LPC81X haben eine ziemlich flexible Switchmatrix. Den LPC812 gibt es 
auch im 0.8 mm SOIC für Leute die sich keinen Lötstoplack leisten 
können.

32-64 Pins sind einfach nicht der Zielbereich für die kleinen 
Controller. Die ATtinies kommen ja auch nicht als 64pin TQFP. Dann muss 
es einer der grüßeren sein (LPC12xx usw.)

von Tim  . (cpldcpu)


Lesenswert?

Arne Maximilian R. schrieb:
> Zeit brauchen um sich durchzusetzen. Ausserdem hat NXP leider beim
> Marketing ein paar Fehler gemacht (also nach meinem Gefuehl). Sie bieten
> zwar super Produkte und ein tolles Angebot an, jedoch hat ST mit dem
> STM32F4Discovery vom Marketing her einfach gewonnen. Das Board hat freie
> Pins und direkt ein wenig Peripherie zum rumspielen (die Peripherie

Da muss ich Dir recht geben. NXP war mit den dev-Board für die LPC81X 
Reihe recht großzügig - ich habe von allen drei Versionen (LPC800 mini, 
LPC812 mbed, LPC812 Xpresso) eines abstauben können. Praktisch anwendbar 
fand ich nur das Mini-Board. Und da hätte es auch ein Mini Breakout 
getan.

Mein liebstes LPC812 Devboard ist noch mein eigenes :)

https://github.com/cpldcpu/LPC812breakout

: Bearbeitet durch User
von Olaf (Gast)


Lesenswert?

> Schon mal 'nen LPC810FN8 (DIP8) angeschaut? Nein?

Nein, wieso auch. DIP8 ist laecherlich. Braucht sehr viel Platz, hat 
kaum Anschluesse und ist Bastler unfreundlich weil man in seinen 
Platinen dafür noch 8 Loescher bohren muss. Mir kommt ausschliesslich 
SMD auf die Platine.

Aber wenn du so gefrustet bist, wie kommt es das hier kaum einer Renesas 
benutzt? Weltgroesster Hersteller von Microcontrollern, bergeweise 
Derivate, sehr gute Doku (dagegen ist STM32 ein Witz), sehr 
leistungsfaehig, viel Peripherie, gute Entwicklungsumgebung, einfach zu 
flashen. Wird hier auch ignoriert als wenn man davon eine fiese 
Krankheit bekommt...

Die Antwort ist, die Schafe fressen nur das Gras dessen Farbe sie 
kennen.

Olaf

von Tim  . (cpldcpu)


Lesenswert?

Olaf schrieb:
> Nein, wieso auch. DIP8 ist laecherlich. Braucht sehr viel Platz, hat
> kaum Anschluesse und ist Bastler unfreundlich weil man in seinen
> Platinen dafür noch 8 Loescher bohren muss. Mir kommt ausschliesslich
> SMD auf die Platine.

Dafür passt DIP8 auf ein Breadboard. Und der LPC810 benötigt nicht wie 
ein ATtiny85 4 Anschlüsse für den Programmieradapter sondern nur zwei. 
(Serieller Bootloader oder SWD).

: Bearbeitet durch User
von Arne Maximilian R. (arnemaximilian_r)


Lesenswert?

Tim    schrieb:
> Dafür passt DIP8 auf ein Breadboard. Und der LPC810 benötigt nicht wie
> ein ATtiny85 4 Anschlüsse für den Programmieradapter sondern nur zwei.
> (Serieller Bootloader oder SWD).

Du hast vergessen zu erwaehnen, dass SMD nicht gerade freundlich fuer 
die Lochrasterplatine ist, die man in der Hobbyentwicklung gerne 
verwendet. Das waere naemlich fuer mich einer der wichtigsten Punkte, 
weil ich mir schnell eine Platine selber loeten kann.

Aenderung: Y -> Z scheiss amerikanische Tastatur -.-

: Bearbeitet durch User
von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Es liegt aber evtl. auch an der mangelnden Verfügbarkeit. Wenn ich bei 
meinem normalen Lieferanten (Segor) nach den LPC Bausteinen suche, finde 
ich trotz des normalerweise guten Sortiments eben nur ein ganz paar (3) 
Stück, die auch preislich nicht mit entsprechenden STM32 mithalten 
können.
Ich bin nicht auf eine Familie festgenagelt, (bin z.Zt. auch mit dem 
LPC2220 in der Betty am spielen), aber warum soll ich mir eine schlechte 
Verfügbarkeit antun?
8-beiner gibt es nun auch von PIC und von Atmel. Da muss ich mir nicht 
noch eine Familie ins Haus holen, und auch die braucht wieder eine 
eigene Toolchain, einen anderen Programmer usw.

: Bearbeitet durch User
von ♪Geist (Gast)


Lesenswert?

>Ist das hier eine LPC-freie Zone? Sind die so unattraktiv?
Im TV reden die Leute doch auch nur von "Promis", obwohl deine Nachbarin 
vielleicht ein besserer Mensch als die Frau Klum o.ä. ist.
Das kann man doch nicht dem Forum vorwerfen, wenn die Chips sich z.B. 
nicht gegen stm32 durchgesetzt haben. Für Solche "Spezialfälle" gibt es 
auch spezialisierte Communities, meist auf der Herstellerseite.

von Lpc (Gast)


Lesenswert?

Lpc setzt sich nicht so durch aufgrund der Preispolitik.
ST bietet bei hohen Stückzahlen und Kunde mit grossem Namen Preise, bei 
denen man als Hobbyentwickler und Diigikeykunde vor Überraschung vom 
Stuhl fällt.

von Falk B. (falk)


Lesenswert?

@ MarcVonWindscooting (Gast)

>Man kann S"ackeweise Saatgut in der W"uste versenken, da geht nichts
>auf! Wo kaum Wasser ist, da gedeihen nur die gen"ugsamsten Kakteen und
>lassen am liebsten gar nichts an sich ran.

Du hast was melodramatiches an dir, gefällt mir ;-)

>Hier im Forum k"onnen anscheinend nur PICs, AVRs, 8051, MSP430 und im
>Ausnahmefall ein STM32 wurzeln und vor sich hindursten.

Genau. Die ARMEN Irren, mit diesen ach so schlechten uCs.

> So verdorrt und
>ausgelaugt ist hier der Boden.

Das Gegenteil ist der Fall. Die Möglichkeiten übersteigen die 
Notwendigkeiten in den meisten Fällen um einiges. Erkennbar unter 
anderem dadurch, dass des öfteren ein uC zum LED blinken statt eines 
NE555 oder wie ganz früher 2 Transistoren genommen wird.

>"uberhaupt noch gewillt ist woanders bessere Bedingungen zu suchen?

Nur wenn es ihm schlecht genug geht.

>Vielleicht will er sich lieber hinsetzen und sehns"uchtig an die letzte
>Eiszeit denken.

Oder einfach das Leben geniessen anstatt krampfhaft was NOCH besseres zu 
suchen?

> Ach w"urde sich das Klima doch bloss zu seinen gunsten
>ver"andern und wieder Bedingungen wie fr"uher herrschen.

Als bekanntlich alles besser war. ;-)

> Aber wenn ein
>Fremder vorbeikommt und von Wiesen, Wald und Wasser redet, dann
>schneidet der hiergebliebene ein St"uck aus einem Kaktus, presst
>demonstrativ 7 Tropfen Wasser raus, dann mit aller Gewalt noch einen 8.
>Dann schaut er verachtungsvoll den Fremden an und sch"uttelt den Kopf.
>Wie kann man nur mehr brauchen wollen!?

Das ist der Punkt. Die meisten brauchen schlicht nicht mehr.

>Ist das hier eine LPC-freie Zone? Sind die so unattraktiv?

Wenn sie denn so toll sind, dann zeig es doch dem Rest der Welt. 
Schreibe Artikel und ebensoviele enthusiastische wie penetrante Beträge 
wie ein bekannter Mr. STM32. Vielleicht wirkt es ja.
Gold, das unter der Erde liegt und keiner sieht, interessiert keinen.
Und wenn sich etwas Neues gegen etabliertes durchsetzten will, muss es 
nicht nur besser sein, es muss die Leute mitreißen. Oder starke 
Sehnsüchte, Wünsche, (Leistungs)Anforderungen erfüllen. Kann das dein 
LPC?

>Schon mal 'nen LPC810FN8 (DIP8) angeschaut? Nein?

Über den Sinn von 32 Bit im DIP8 kann man vorzüglich streiten ;-)

>Einen LPC1114FN28 (DIP28) eines Blickes gew"urdigt? Nein?

Anders herum wird ein Schuh draus. Die Neuen müssen sich darstellen und 
versuchen die Platzhirsche zu verdrängen, nicht als schlafendes 
Dornröschen geweckt werden.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Falk Brunner schrieb:
> wie ein bekannter Mr. STM32.

Vielen Dank für die Blumen ;-)

von Fer T. (fer_t)


Lesenswert?

Ja und was ist erst mit den Kinetis ARMs (M0+ und M4) von Freescale?
Auch sehr schöne Teile aber hier schreibt keine Sau drüber ;)

Oder was ist mit den XMC von Infinion? Super Chips aber nirgends 
erhältlich da die Autoindustrie da schon die ganze Produktion aufkauft 
;)

MfG

von (prx) A. K. (prx)


Lesenswert?

Fer T. schrieb:
> Ja und was ist erst mit den Kinetis ARMs (M0+ und M4) von Freescale?
> Auch sehr schöne Teile aber hier schreibt keine Sau drüber ;)

Es gibt wahrscheinlich zu wenig Leute hier im Forum, die von der 
Stückzahl her in dem Bereich liegen, ab dem man von Freescale überhaupt 
erst eines Blickes gewürdigt wird.

von greg (Gast)


Lesenswert?

Die kleinen LPCs sind wirklich sehr schwer zu bekommen, obwohl sie sehr 
interessant aussehen. LPC8xx, LPC11xx, usw. bei Reichelt, Conrad oder 
gar eBay: kaum verfügbar. Die STM32 bekommt man dagegen praktisch an 
jeder Ecke hinterhergeschmissen. Das gleiche Spiel bei den Devboards. 
Ein STM32-Discovery gibt's sogar für < 10 EUR!

von Lutz (Gast)


Lesenswert?

Vor einem gefühlten Jahr hat elpro sein LPC-Sortiment eröffnet bzw. gut 
erweitert. Das sollte man fast alles zu guten Preisen finden. Außer z.B. 
den LPC11Cxx.

Ich bin auch aus vielen Gründen LPC-Fan, aber was Vielfalt angeht, ist 
STM nicht zu schlagen. So gibt es nur einen CM0 mit CAN; den LPC11Cxx. 
Und auch nur mit LQFP 48. Das ist sehr gut, aber der nächste mit CAN ist 
ein CM3 im LQFP80!

von Peter D. (peda)


Lesenswert?

Mir hat NXP zuviel Kahlschlag im 8051 Segment betrieben.
Wer einmal seine langjährigen Stammkunden im Regen stehen läßt und nur 
verbrannte Erde hinterläßt, bei dem kauft man so schnell nichts mehr.

Daß jemand so schnell und so viele ICs völlig ersatzlos aus dem Programm 
nimmt, habe ich noch bei keinem anderen Hersteller erlebt.

Selbst recht neue MCs wurden eingestampft, z.B. der P89C668. Glücklicher 
Weise ließ er sich mit leichten Firmwareanpassungen durch den AT89C51RE2 
ersetzen.

von MaWin (Gast)


Lesenswert?

Olaf schrieb:
> Wird hier auch ignoriert als wenn man davon eine fiese
> Krankheit bekommt...

Und dafür gibt es Gründe: Mieserable Output-Pin Belastbarkeit, man 
braucht also quasi immer Treiber, schlechte Ausgangsflexibilität, meist 
nur ganze Ports in der Richtung umschaltbar, schneller abgekündigt als 
man einen beschaffen konnte (man denke an den R8C den Elektor 
verschenkte, ein Jahr später gab es ihn schon nicht mehr und auch nichts 
kompatibles)., und für Bastler nicht beschaffbar (ausser Glyn, und Glyn 
mag vor allem Firmenkunden), extrem mühsam an das kostenlose DevSoftware 
zu kommen (Registrierung die nach kostenpflichtig aussieht).

Der Prozessor innendrin, quasi ein 68000er, ist Super, die 
Programmierbarkeit in C Spitze, aber wenn man so blöd beim Marketing und 
Peripheriedesign ist, hat man selber schuld.

Und NXP ? Wenn man sich ein mal so einen Flop wie die XA Architektur 
leistet, kann man nicht erwarten, daß einem Kunden noch in Scharen 
hinterherlaufen, der ARM im LPC2000 ist von Philips nicht dokumentiert, 
da muss man woanders gucken

 http://www.altera.com/literature/third-party/ddi0100e_arm_arm.pdf

von MarcVonWindscooting (Gast)


Lesenswert?

Danke f"ur euer Feedback!

@falk
Ich werde versuchen in Zukunft mal paar Vorteile aufzuzeigen. Bin je 
momentan voll dran am LPC800.

@cpldcpu
Ja, das breakout-board ist chic. Verkaufst Du die auch? Schematic in 
einem PDF w"are sch"on, denn ich hab auf dieser Maschine z.B. kein EAGLE 
habe(w"are ja zuviel verlangt von denen, mal 'ne 64-Bit Linux-Variante 
anzubieten).
LPC800 besch"aftigt mich wegen der Low-Power-Features. Da w"urde mich 
ein Breakout-Board mit einem STLQ015 LDO (1uA Ruhestrom oder so!) 
reizen.

@fer_t
Ja, die Teile von Infineon XMC1100 seh ich regelm"assig mach, nur um 
festzustellen dass sich noch nichts getan hat :(
Und generell bin ich ein Europ"aer und militanter "Oko, der tendenziell 
versucht europ"aische Firmen zu bevorzugen. NXP hat "ubrigens eine gute 
Umweltpolitik - man kann von ganz vielen Bauteilen sogar den chemical 
content von der HP runterladen - Hammer, oder?

@Olaf
Renesas war der Grund, dass ich nach 'ner Alternative f"ur 'nen M16C... 
zu suchen begann und (damals) den LPC2100 entdeckte. Zuvor kannte ich 
Siemens und Atmel-Datenbl"atter von 8051 Derivaten und ein 600+ Seiten 
Manual von Renesas (f"ur so wenig Funktion) hat mich geschockt...

@greg
Ja, das mit dem bekommen ist so 'ne Sache. Conrad, Reichelt, usw. 
Fehlanzeige. Aber es gibt bestimmt Leute hier im Forum, die welche 
verkaufen w"urden. Ich hab schon "ofters Sammelbestellungen hier 
gesehen. Aber klar, ist schon umst"andlich und der, der sie verkaufen 
w"urde k"onnte nur verlieren, denn a) wehe er w"urde f"ur seinen 
Zeitaufwand auch noch was verlangen wollen b) wehe es w"urde ein 
Baustein mit 'nem krummen Beinchen ankommen...

LPC800 zum Einstieg - da weiss ich auch nicht so recht, was ich sagen 
soll. Als ich mir den uC zum ersten Mal programmierte (LED an/aus) hab 
ich geflucht, weil ich dachte das sei sooo kompliziert. Heute weiss ich 
dass es gar nicht kompliziert ist, denn die Switchmatrix und IOCON 
braucht man dazu gar nicht. GPIO clock and, DIR0=1<<LED setzen, 
SET0=1<<LED. Fertig.
Wenn man aber richtig "Low Power" will, dann muss man das Ding 
tendenziell schon in seiner Gesamtheit verstehen.
Der SCT ist auch so ein Teil. Erstes mal Kapitel lesen => Schock. Ich 
will doch nur einen Timer/PWM/Capture...!?? Heute find ich den SCT toll, 
denn z.B. kann man zum ersten mal den Timer-Ablauf durch ein externes 
Signal beeinflussen, d.h. man kann Sachen realisieren, die viel 
schneller sind als eine ISR.
Die meisten Peripherieeinheiten sind ganz anders als bei den sonstigen 
LPCs. UART komplett neu, I2C komplett neu, GPIO wieder anders (mehr 
Alternativen, Bit-Direktzuweisung z.B.!), Switch Matrix nat"urlich ganz 
besonders, dann die BOOT-ROM-Routinen, wenn man fertige UART, I2C, 
PowerMode Routinen verwenden will, SPI anders, usw...

Wenn man mit dem LPC800 (oder auch LPC1100) anf"angt, dann wird man 
allerdings nicht um einen anf"anglichen Frust aufgrund des grossen 
Manuals umhin kommen.

von Lothar (Gast)


Lesenswert?

MarcVonWindscooting schrieb:
> Ist das hier eine LPC-freie Zone? Sind die so unattraktiv?

Das liegt eher daran dass bei den LPCs fast alles einfach so 
funktioniert, daher gibt es nicht so viel Diskussionsbedarf :-)

Die meisten uC Threads hier sehen doch so aus:

Fusebits - Ausgesperrt: Beitrag "Na wunderbar - Fusebits: Ausgesperrt aber mit den richtigen Eingaben?"

von chris_ (Gast)


Lesenswert?

Allerdings habe ich auch schon mal einen LPC1114FN28 "verfused". Ich 
wusste vorher nicht, dass das geht.

von Lothar (Gast)


Lesenswert?

chris_ schrieb:
> Allerdings habe ich auch schon mal einen LPC1114FN28 "verfused"

Bitte um Beschreibung wie das gehen soll. Man könnte höchstens über CRP 
den ISP-Pin sperren, damit der Bootloader nicht mehr geht, und das 
geflashte fehlerhafte Programm müsste die SWD-Pins switchen, damit man 
mit dem Debugger nicht mehr ran kommt.

von (prx) A. K. (prx)


Lesenswert?

Lothar schrieb:
> Bitte um Beschreibung wie das gehen soll.

CRP3 schaltet lt. Doku sowohl ISP als auch SWD ab. Da dürfte es dann 
auch keine Rettungsmassnahme mehr geben.

: Bearbeitet durch User
von MarcVonWindscooting (Gast)


Lesenswert?

> CRP3 schaltet lt. Doku sowohl ISP als auch SWD ab. Da dürfte es dann
> auch keine Rettungsmassnahme mehr geben.

Es ist dann halt die Pflicht des geflashten Programms, den bootloader zu 
aktivieren (reinvoke ISP) :-)
Klingt nach Henne-Ei-Problem.

Fast genauso gef"ahrlich finde ich den NO_ISP mode, wenn man z.B. bei 
den wenigen Pins halt SWCLK und SWDIO f"ur was anderes benutzt. 
Ausl"oten zum neu flashen ist nicht so attraktiv....

von chris_ (Gast)


Lesenswert?

>Bitte um Beschreibung wie das gehen soll.
Ich bin mir nicht mehr sicher, wie es genau war, da es schon einige 
Monate her ist. Soweit ich mich erinnern kann, habe ich an der PLL 
rumgespielt, um die maximale Taktrate zu erreichen, da das vorhandene 
Beispiel nur mit 1/4 lief.

von maik (Gast)


Lesenswert?

>MarcVonWindscooting schrieb:

>Ja, das breakout-board ist chic. Verkaufst Du die auch? Schematic in
>einem PDF w"are sch"on, denn ich hab auf dieser Maschine z.B. kein EAGLE
>habe(w"are ja zuviel verlangt von denen, mal 'ne 64-Bit Linux-Variante
>anzubieten).

In Debian 64 Bit kannst du EAGLE Light über den Installer installieren.

von Tim  . (cpldcpu)


Lesenswert?

MarcVonWindscooting schrieb:
> Ja, die Teile von Infineon XMC1100 seh ich regelm"assig mach, nur um
> festzustellen dass sich noch nichts getan hat :(
> Und generell bin ich ein Europ"aer und militanter "Oko, der tendenziell
> versucht europ"aische Firmen zu bevorzugen. NXP hat "ubrigens eine gute

Bist Du der Meinung, dass Infineon nicht Europäisch ist? Die XMC 1000 
werden m.W. in München designed, wo auch die Firmenzentrale von Infineon 
ist. NXP ist eine niederländische Firma. allerdings ist sie im 
Wesentlichen im Besitz einer amerikainschen "Heuschrecke". So viel dazu.

MarcVonWindscooting schrieb:
> @cpldcpu
> Ja, das breakout-board ist chic. Verkaufst Du die auch? Schematic in

Das wurde ich schon mehrfach gefragt. Die Herstellung scheint kein so 
großes Problem zu sein, allerdings habe ich keine Ahnung, wie ich das 
Board effizient vertreiben sollte. Kann hier jemand einen 
Zwischenhändler empfehlen? Versand, Reklamationsabwicklung usw. selbst 
durchzuführen, ist für mich einfach zu umständlich.

> einem PDF w"are sch"on, denn ich hab auf dieser Maschine z.B. kein EAGLE
> habe(w"are ja zuviel verlangt von denen, mal 'ne 64-Bit Linux-Variante
> anzubieten).
Werde ich mal machen.

> LPC800 besch"aftigt mich wegen der Low-Power-Features. Da w"urde mich
> ein Breakout-Board mit einem STLQ015 LDO (1uA Ruhestrom oder so!)
> reizen.

Der kann allerdings nur 150mA. Damit könnte man den LPC812 nicht mehr 
voll belasten und nur wenig Peripherie ans board hängen.

: Bearbeitet durch User
von MarcVonWindscooting (Gast)


Lesenswert?

Tim    schrieb:
> ist. NXP ist eine niederländische Firma. allerdings ist sie im
> Wesentlichen im Besitz einer amerikainschen "Heuschrecke". So viel dazu.

Aber das Wesen einer Firma wird halt stark durch die Mitarbeiter 
bestimmt, und die sind zum Gl"uck Niederl"ander. Die Steuern landen in 
den Niederlanden, die Arbeitspl"atze auch, und die erw"ahnte 
'Environmental Policy' stammt vmtl. auch nicht aus dem Kopf der nach 
Geld geifernden Heuschrecke.

Und ja, bei Infineon schau ich immer noch vorbei (nur) weil deutsche 
Firma.
MSP430 ist "ubrigens auch eine deutsche Entwicklung, wenn man 
nachforscht, obwohl TI.

@Tim: Nenn mir 'nen Preis f"ur 30 Platinen, ich kauf sie dir alle ab und 
vertick sie hier im Forum. Der Ansturm wird nicht so gewaltig sein, dass 
die Aufgabe nicht zu stemmen w"are.

Du musst sie herstellen, das will ich nicht (Bleifrei, RoHS-konform, 
versteht sich von selber, oder?). Ich l"ote selber mehr als genug! Sie 
zu, dass Du was verdienst, sonst hast Du ganz schnell keine Lust mehr 
den G"onner zu spielen. So werd ich's auch machen.

Es muss nicht kostendeckend sein, nein es muss was rausspringen. Denn 
sonst hab ich mehr davon, mich z.B. mit dem LPC4300 zu besch"aftigen.

von Lpc (Gast)


Lesenswert?

Die LPCs werden soweit ich weiss in Nürnberg designed, das Wesen der 
Firma ist Niederländisch und das ist positiv gemeint.

von Tim  . (cpldcpu)


Lesenswert?

MarcVonWindscooting schrieb:
> @Tim: Nenn mir 'nen Preis f"ur 30 Platinen, ich kauf sie dir alle ab und
> vertick sie hier im Forum. Der Ansturm wird nicht so gewaltig sein, dass
> die Aufgabe nicht zu stemmen w"are.

Erm - ich habe im Github-Repository einen Link zum Design bei OSH-Park:

http://oshpark.com/shared_projects/rQra0bCX

Die senden Dir drei Platinen für $3.30 inkl. Porto nach Deutschland. 
Einfach bestellen. OSH Park fertigt mit RoHS-konformen ENIG-Finish.

Edit: Habe das in der Beschreibung noch einmal herausgehoben.

: Bearbeitet durch User
von MartinT. (Gast)


Lesenswert?

MarcVonWindscooting schrieb:
> Tim    schrieb:
>> ist. NXP ist eine niederländische Firma. allerdings ist sie im
>> Wesentlichen im Besitz einer amerikainschen "Heuschrecke". So viel dazu.
>
> Aber das Wesen einer Firma wird halt stark durch die Mitarbeiter
> bestimmt, und die sind zum Gl"uck Niederl"ander. Die Steuern landen in
> den Niederlanden, die Arbeitspl"atze auch, und die erw"ahnte
> 'Environmental Policy' stammt vmtl. auch nicht aus dem Kopf der nach
> Geld geifernden Heuschrecke.

Dann schau aber auch bei Atmel nach, z.b. werden die Automotive Bauteile 
in Heilbronn gemacht, sämtliche Radio Trx wie AT86xxxx oder ATmegaRF in 
Dresden. In Frankreich werden die ARM7/9/CortexA5 und M0/3/4 designed,
In Norwegen sitzen immer noch Designer. Die Touch Geschichte kommt aus 
England. In Spanien wird Powerline communication entwickelt. Ist doch 
schon sehr europäisch

von Tim  . (cpldcpu)


Lesenswert?

MarcVonWindscooting schrieb:
> @Tim: Nenn mir 'nen Preis f"ur 30 Platinen, ich kauf sie dir alle ab und
> vertick sie hier im Forum. Der Ansturm wird nicht so gewaltig sein, dass
> die Aufgabe nicht zu stemmen w"are.
>
> Du musst sie herstellen, das will ich nicht (Bleifrei, RoHS-konform,
> versteht sich von selber, oder?). Ich l"ote selber mehr als genug! Sie
> zu, dass Du was verdienst, sonst hast Du ganz schnell keine Lust mehr
> den G"onner zu spielen. So werd ich's auch machen.

Wenn Du mit "Platine" einen fertigen Aufbau meinst wird es 
komplizierter. Schreibe mir halt einfach 'mal eine PM. Kannst Du auch 
gerne im LPC800 Forum machen.

: Bearbeitet durch User
von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Lothar schrieb:
> Die meisten uC Threads hier sehen doch so aus:

Du hast eine selten selektive Wahrnehmung von "meiste". ;-)

MarcVonWindscooting schrieb:
> Es ist dann halt die Pflicht des geflashten Programms, den bootloader zu
> aktivieren (reinvoke ISP) :-)

Mit der gleichen Begründung könntest du es allerdings zur Pflicht eines
jeden AVR-Entwicklers machen, dass er vor dem Ändern der Fuses da einen
Bootloader programmiert …  Davon abgesehen, hat Atmel ja das Dilemma
durchaus dann erkannt und bei den Xmegas ein anderes Konzept verfolgt.
Der ursprüngliche AVR war nicht dafür konzipiert, dass man zur Laufzeit
den Takt umschaltet (hängt mit der Betriebsweise des Flashs zusammen),
daher hat man das dort mit den Fuses gemacht.

MarcVonWindscooting schrieb:
> Ist das hier eine LPC-freie Zone? Sind die so unattraktiv?

Die 8-Pinner vermutlich schon.  Die gibt's ja nur mit einer so minimalen
Ausstattung, bei den 8-Pin-AVRs kann man zumindest noch einen aus vier
Modellen wählen (ATtiny13/25/45/85).

Ansonsten müssen die LPCs natürlich mit allen anderen ARMs der diversen
Hersteller konkurrieren.  Da sie sich alle nicht viel nehmen, streut
sich die Publikumsresonanz bei denen ein bisschen breiter als bei AVR
oder PIC (wobei PIC ja nun auch schon eher wieder ein Sammelbegriff
ist).

von Volker K. (powerfreak)


Lesenswert?

@  MarcVonWindscooting
Sei froh, daß Du was gefunden hast, den Eintrag über die LPC8xx Familie 
gibt es erst seit dem Wochenende. Die Artikel werden mehr oder minder 
regelmäßig überarbeitet.

Robert ist nicht mehr bei NXP, er hat in San Francisco eine Consulting 
Firma http://www.mcu-related.com, und fährt damit sehr gut.

Die LPCs gibt es fast nur in SMD, und wenn man die Beiträge so liest 
bekommt man den Eindruck als wären die Meisten hier im Forum 
DIL-Liebhaber.

Vermutlich haben viele noch nicht festgestellt, daß man eine große 
Auswahl - in SMD - bei http://www.elpro.org für einen sehr guten Preis 
bekommt... man braucht nur den Mut für SO, TSSOP und QFN. Das mag 
anspruchsvoll sein, aber für den ambitionierten Hobbybastler auch kein 
großes Problem.
Des Weiteren gibt es die von Arne genannte "super IDE"

@ Oscar und Tim
Die 5 Artikel zum LPC 
http://www.mikrocontroller.net/articles/Kategorie:LPC1x
wurden maßgeblich von einem Bearbeiter erstellt, ohne deutlich mehr 
Autoren (oder einem - wie Markus - der mehr Zeit hat) wird das auch nix 
werden!

@ Matthias:
Schau doch mal unter http://www.elpro.org/shop/shop.php
Microprozessoren ==> 32-Bit Controller ==> "ARM-Cortes-M0 von NXP" oder 
"ARM-Cortes-M3 von NXP" oder "ARM-Cortes-M4 von NXP"  Die Shop-SW ist 
zwar gewöhnungsbedürftig, die Auswahl aber groß, und die Preise sehr 
gut. Die LPCs können sehr wohl mit den Preisen mithalten.
Oder auch unter
http://darisusgmbh.de/shop/advanced_search_result.php?keywords=LPC1&x=0&y=0
Den kleinen LPC1110FD20 - 4kB-Flash, 50MHz im SO20" gibts bereits ab 
1,00€!

Übrigens: den LPC2220 nicht mit der LPC1xxx Serie vergleichen.

Die Preise sind definitiv mit den von STM32 vergleichbar, wenn nicht 
besser.

Fazit:
==> super IDE
==> sehr gute Preise
==> ohne mehr Autoren hier im Forum wirds aber trotzdem nix

von Kappos (Gast)


Lesenswert?

Ich muss mich hier auch mal einschalten.
Ich persönlich bin Mega begeistert von den lpc13xx Serie. Habe schon 
viel damit gebastelt und bin sehr zufrieden. Das man hier nich viel 
Infos bekommt stimmt aber ich find die Dokus von NXP echt gut.
Verfügbarkeit stimmt schon aber ich bestell halt einmal im Jahr bei 
Digikey und dann relativ viel.
Wenn jemand Interesse hat habe ich bestimmt welche zum Abgeben.

von Lothar (Gast)


Lesenswert?

A. K. schrieb:
> CRP3 schaltet lt. Doku sowohl ISP als auch SWD ab. Da dürfte es dann
> auch keine Rettungsmassnahme mehr geben.

Da ist doch wohl ein wesentlicher Unterschied: beim AVR müssen die Fuses 
(fast) immer gesetzt werden, dementsprechend die Fehlerhäufigkeit. Beim 
LPC versehentlich CRP3 zu setzen ist (fast) unmöglich.

von greg (Gast)


Lesenswert?

Volker K. schrieb:
> Die LPCs gibt es fast nur in SMD, und wenn man die Beiträge so liest
> bekommt man den Eindruck als wären die Meisten hier im Forum
> DIL-Liebhaber.
>

Ja, merkwürdig. Keine Ahnung warum. Als ich letztens auf die billige 
Verfügbarkeit von Adaptern auf DIP aller Art (z.B. bei eBay) aufmerksam 
machte, wurde ich auch gleich komisch angemacht

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Lothar schrieb:
> beim AVR müssen die Fuses (fast) immer gesetzt werden

Nö, so häufig nun auch nicht.  Am besten läuft er ohnehin vom internen
RC-Oszillator, und das ist die Voreinstellung.  (Vor allem wacht er dann
schnell auf.)

Aber hier geht's um LPC800, nicht um AVRs …

von Marc P. (marcvonwindscooting)


Lesenswert?

Kappos schrieb:
> Wenn jemand Interesse hat habe ich bestimmt welche zum Abgeben.

LPC1112FD20, sagen wir 10Stck? Und so 1 oder 2 DIL8 LPC810?
In meiner Platine zur Programmentwicklung (LPC1110) d"urfte mal bissl 
mehr RAM als 1K drin sein, auch wenn sp"ater ein LPC1110 verbaut wird.
(Grund: http://www.windscooting.com/softy/ramloader.html)

@greg, Volker K.:
> bekommt man den Eindruck als wären die Meisten hier im Forum
> DIL-Liebhaber.

Ich hab das von den DILs auch nur geschrieben, weil ich eben auch den 
Eindruck gewonnen hatte, dass viel mit dem Breadboard gearbeitet wird. 
Mach ich auch mal.

Wenn ich Spass beim L"oten haben will oder die Platine selber "atzen 
will, nehm ich SOIC.

Wenn's klein werden soll TSSOP (LPC800) oder gleich LQFP. Wer davor 
Angst hat, benutzt keine Flussmittelchreme!?!!

von Tim  . (cpldcpu)


Lesenswert?

Jörg Wunsch schrieb:
> Die 8-Pinner vermutlich schon.  Die gibt's ja nur mit einer so minimalen
> Ausstattung, bei den 8-Pin-AVRs kann man zumindest noch einen aus vier
> Modellen wählen (ATtiny13/25/45/85).

Ernsthaft? Ich sehe da nur zwei Produkte. Der Rest ist zur Verwertung 
von Dies mit Speicherfehlern.

von (prx) A. K. (prx)


Lesenswert?

Tim    schrieb:
> Der Rest ist zur Verwertung von Dies mit Speicherfehlern.

Oder auch nur zur Reduktion des Testprofils. Ist schon eine Weile her, 
aber irgendwann sagte Atmel mal, dass kein Rebinning stattfindet. Pass 
oder fail, und fail=Müll. Hinreichende Ausbeute vorausgesetzt ist das 
wahrscheinlich logistisch einfacher.

von Tim  . (cpldcpu)


Lesenswert?

A. K. schrieb:
> Oder auch nur zur Reduktion des Testprofils. Ist schon eine Weile her,
> aber irgendwann sagte Atmel mal, dass kein Rebinning stattfindet. Pass
> oder fail, und fail=Müll. Hinreichende Ausbeute vorausgesetzt ist das
> wahrscheinlich logistisch einfacher.

Naja, man kann immer noch nach Bereichen auf dem Wafer selektieren. Die 
ATiny25 kommen dann komischerweise immer vom Rand. Das ist nichts 
Neues...

Ebenso: Was ist Rebinning? Nach dem ersten Test lässt sich ja bereits 
entscheiden, ob es ein 85 oder 25 wird?

: Bearbeitet durch User
von (prx) A. K. (prx)


Lesenswert?

Tim    schrieb:
> Ebenso: Was ist Rebinning? Nach dem ersten Test lässt sich ja bereits
> entscheiden, ob es ein 85 oder 25 wird?

Hier ja. Die ursprüngliche Aussage bezog sich auf den damaligen 
Unterschied zwischen den Fullspeed-Typen mit 5V und den Halfspeed-Typen 
mit grossem Spannungsbereich. Da ist das eine Testprofil keine Teilmenge 
des anderen. Leg mich bitte auch nicht auf den Begriff fest, oder lass 
das "Re" weg.

Die Frage ist eher, ob es bei ohnehin guter Ausbeute wirtschaftlich ist, 
die Produktion unterschiedlich zu labeln und zu lagern, oder ob es 
ökonomischer ist, grad das dabei zu kriegen, was man braucht.

Ich wär bei mancher Fertigung auch nicht erstaunt, wenn Wafer 
stichprobenweise mit vollem Profil getestet und wenn leidlich brauchbar 
zunächst auf Halde gelegt werden. Um dann später bei Bedarf zersägt und 
mit dem gewünschten Testprofil gelabelt verkauft zu werden, abhängig vom 
Bedarf. Nützt ja nix, wenn man tonnenweise fertig gelabelte und 
verpackte 85er rumliegen hat, der Kunde aber 25er haben will.

: Bearbeitet durch User
von Tim  . (cpldcpu)


Lesenswert?

Der Punkt ist doch eher, dass man aus einem 85er mit teilweise defektem 
Flash ein 25er machen kann. Da ist ist die Entscheidung zwischen Chip 
wegwerfen oder als preiswerteres Produkt auf Lager legen. Klar, wenn der 
Auftragsbestand bei den 25ern gut ist, werden aus 85ern eben 25er 
gemacht. Das ist dann die Aufgabe der Logistiker. In dem Fall wird eben 
das Testprogramm "Zerstöre alle 85er" geladen, und die Testingieure 
machen sich über die "BWLer" lustig...

Irgendwie scheint diese Diskussion aber am Thema vorbei zu gehen. 
Allerdings glaube ich, dass es bei den LPC800 genau so gehandhabt wird 
und die ganze Serie den gleichen Die verwendet. Offensichtlich wird das 
daran, dass der LPC810 die komplette Switch-Matrix, sowie alle 
GPIO-Treiber hat, wie man per Software einfach feststellen kann.

: Bearbeitet durch User
von (prx) A. K. (prx)


Lesenswert?

Tim    schrieb:
> Der Punkt ist doch eher, dass man aus einem 85er mit teilweise defektem
> Flash ein 25er machen kann. Da ist ist die Entscheidung zwischen Chip
> wegwerfen oder als preiswerteres Produkt auf Lager legen.

Für sowas gibts Pfennigfuchser, die genau ausrechnen, ob der Aufwand 
lohnt, alle mit vollem Testprofil für 85er zu testen und aus der 
Fertigung verschiedene Varianten zu kriegen und zu lagern. Oder ob es 
billiger ist, bei Bedarf an 25ern auch nur das kürzere und damit 
schnellere Testprofil zu fahren.

> Allerdings glaube ich, dass bei den LPC800 genau so gehandhabt wird und
> die ganze Serie den gleichen Die verwendet.

Ich wäre erstaunt, wenn es anders wäre. Diegrösse einzusparen ist eine 
Sache, viele Fertigungsmasken kostspielig herstellen und in der 
Fertigung dann häufig auswechseln zu müssen eine andere.

Bei den STM32 gibts ja auch eine Unzahl von Varianten, z.B. bei den 
F101/102/103. Viele davon sind ein Subset anderer Typen, nicht bloss bei 
Flash/RAM, sondern auch in I/O-Funktionen. Auch da gehe ich davon aus, 
dass sich die oft nicht im Die, sondern beim Testprofil oder gar bloss 
dem Aufdruck unterscheiden. Beim Speicher kanns dann sein, dass es 2 
Varianten gibt, die untere und die obere Hälfte der Kapazitäten 
vielleicht separate Dies sind.

: Bearbeitet durch User
von Tim  . (cpldcpu)


Lesenswert?

A. K. schrieb:
>> Allerdings glaube ich, dass bei den LPC800 genau so gehandhabt wird und
>> die ganze Serie den gleichen Die verwendet.
> Ich wäre erstaunt, wenn es anders wäre.

Übrigens ist das ein ziemlich interessantes Feature der LPC800. Selbst 
auf dem 8-Pin LPC810 sind alle GPIO-Treiber vorhanden. Dadurch kann man 
über die Switchmatrix Peripherie über interne Pins verbinden. Leider 
will NXP das nicht offiziell bestätigen (Warum wohl?) :)

Ein Beispiel ist in diesem Thread:

http://www.lpcware.com/content/forum/controlling-ws2812-led-strips-lpc810

Man kann SPI und SCT auf einem LPC810 verknüpfen, ohne externe Pins zu 
belegen.

: Bearbeitet durch User
von Falk B. (falk)


Lesenswert?

@ A. K. (prx)

>Bei den STM32 gibts ja auch eine Unzahl von Varianten, z.B. bei den
>F101/102/103. Viele davon sind ein Subset anderer Typen, nicht bloss bei
>Flash/RAM, sondern auch in I/O-Funktionen. Auch da gehe ich davon aus,
>dass sich die oft nicht im Die, sondern beim Testprofil oder gar bloss
>dem Aufdruck unterscheiden.

Naja, aber wie machen sie es dann mit den verschiedenen IDs per JTAG 
etc? Fuse Zapping? Lasertrimmung?

von (prx) A. K. (prx)


Lesenswert?

Falk Brunner schrieb:
> Naja, aber wie machen sie es dann mit den verschiedenen IDs per JTAG
> etc? Fuse Zapping? Lasertrimmung?

Werden Fuses sein, aka Flash-Zellen. Wie sonst auch. Die Dinger haben 
auch eine eindeutige ID drin, d.h. es wird sowieso jedes Exemplar 
angepasst.

von (prx) A. K. (prx)


Lesenswert?

PS: Eindeutige ID = Seriennummer, in jedem Exemplar anders. Die STM32 
haben auch einen OTP-Bereich, den der Kunde nur einmal beschreiben kann. 
Also die Werkzeuge dafür sind da.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Volker K. schrieb:
> Des Weiteren gibt es die von Arne genannte "super IDE"

An IDEs für ARM gibts es sowieso keinen Mangel mehr:
z.B. 'Code::Blocks'
http://www.codeblocks.org/
EMIde (basiert auf Code::Blocks)
http://emide.org/

Und da sind jede Menge NXP Controller schon bei.

von Reiner G. (reinerg)


Lesenswert?

Hat jemand Intersse an einem (oder besser gleich mehreren) bestückten 
LPC812breakout Board(s)???

Falls genug Interessenten da sind, würde ich mal ( vorrausgesetzt, Tim 
stimmt zu ) meinen Auftragsfertiger um ein Angebot bitten.

Der bestückt auch relativ kleine Stückzahlen (Vorserien/Testserien)  per 
Automaten.

Sobald ich die Preise habe, könnte ich die Sache abwickeln.


Gruß

von Lothar (Gast)


Lesenswert?

Reiner Geiger schrieb:
> Hat jemand Intersse an einem (oder besser gleich mehreren) bestückten
> LPC812breakout Board(s)???

Billiger als das hier:

http://www.diamex.de/dxshop/NXP-LPC812JDH20-auf-Adapterplatine

von greg (Gast)


Lesenswert?

Lothar schrieb:
> Billiger als das hier:
>
> http://www.diamex.de/dxshop/NXP-LPC812JDH20-auf-Adapterplatine

Naja... das ist wirklich ausschließlich ein Adapter ohne irgendwelche 
Zusatzkomponenten. Das Schöne am Board von cpldcpu war doch, dass da ein 
bisschen nützlicher Kleinkram mit drauf war: Spannungsregler, 
Abblockkondensatoren und Reset-Taster. Dazu nette passende 
Pin-Beschriftung.

8-9 EUR für ausschließlich Adapter finde ich zu teuer. Der LPC812 kostet 
< 1 EUR und das winzige PCB Centbeträge.

Das Breakout-Board von cpldcpu für den Preis wäre vielleicht in Ordnung.

von greg (Gast)


Lesenswert?

Nachtrag: also wenn mir jemand einfache mit LPC812 fertig bestückte 
Adapterboards für 8 EUR abkauft, löt ich die gerne zusammen - in 
Kleinmengen 1,50 EUR Materialkosten pro Stück. Das lohnt sich. ;)

von Reiner G. (reinerg)


Lesenswert?

greg schrieb:
> Nachtrag: also wenn mir jemand einfache mit LPC812 fertig bestückte
> Adapterboards für 8 EUR abkauft, löt ich die gerne zusammen - in
> Kleinmengen 1,50 EUR Materialkosten pro Stück. Das lohnt sich. ;)

Genau das wollte ich auch gerade schreiben ....

Ich dachte auch eher an das originale Board von Tim.

Ich glaube dass (bei der kleinen Stückzahl) der Preis für ein 
automatenbestücktes und getestetes Board so zwischen € 8,- und € 10,- 
liegen wird, da kein Bauteil in schwierig zu bestückendem (optische 
Kontrolle mit Stereomikroskop) Gehäuse dabei ist.

von Falk B. (falk)


Lesenswert?

Macht doch eine Art Lanchpad/Discovery für den LPC!
Plug & Play!

von Tim  . (cpldcpu)


Lesenswert?

Reiner Geiger schrieb:
> Falls genug Interessenten da sind, würde ich mal ( vorrausgesetzt, Tim
> stimmt zu ) meinen Auftragsfertiger um ein Angebot bitten.

Super idee. Das würde ich aktiv unterstützen.

von Tim  . (cpldcpu)


Lesenswert?

Falk Brunner schrieb:
> Macht doch eine Art Lanchpad/Discovery für den LPC!
> Plug & Play!

naja, es gibt die LPCXpresso boards, aber damit bin ich bisher noch 
nicht so richtig warm geworden. Das ist halt ein ziemlich blöder 
Formfaktor.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Tim    schrieb:
> Der Rest ist zur Verwertung von Dies mit Speicherfehlern.

Das hast du genau autoritativ von wem jetzt so gehört?

Sowas hat man vielleich bei DDR-Bastler-ICs gemacht.  Bei den Flashs
hier würde sich keiner drauf einlassen, einen IC mit teilweise nicht
funktionierendem Flash noch zu verkaufen.  Solange die Ursache des
Fehlers nicht klar ist, wäre ja immer ein hohes Risiko, dass mehr als
nur das kaputt sein könnte, was beim ersten Test festgestelt worden
is.  Die Ursache zu ermitteln, wäre jedoch teurer, als das Ding dann
gleich in die Tonne zu kloppen.

Aber wenn du das so willst, gibt's halt in dieser Klasse nur den alten
ATtiny13 und den Nachfolger ATtiny85; letzterer hat aber dann schon mal
mehr Ressourcen als der kleine LPC800.  Falls der 8-Pin-LPC800 jedoch
nur ein größerer Die mit kleinerer Spezifikation ist, wäre es nicht
klar, warum NXP den nicht auch mit 8 Pins aber mehr Features (für mehr
Geld) verkaufen möchte.

Tim    schrieb:
> Leider will NXP das nicht offiziell bestätigen (Warum wohl?) :)

Das ist genau der Punkt: genauso, wie Atmel es sich offen halten wird,
ob der ATtiny25 nun nur ein ATtiny85 mit anderem Etikett ist, oder ob
es tatsächlich ein viel kleinerer Chip ist, wird NXP dir eben nicht
garantieren, dass das dann ein für allemal so bleibt.  Spätestens, wenn
der erste Auftrag über ein paar Millionen ICs reinkommt, wird dann der
kleinere Chip doch noch hergestellt.  Lohnt sich halt nur für den
Einstieg nicht.

Aber drauf verlassen kannst du dich nicht, nicht in einer Serie.  (Fürs
einzelne Bastlerexemplar ist es natürlich OK.)

A. K. schrieb:
>> Naja, aber wie machen sie es dann mit den verschiedenen IDs per JTAG
>> etc? Fuse Zapping? Lasertrimmung?
>
> Werden Fuses sein, aka Flash-Zellen.

Ja, OTP-Fuses.  Also eine Einbahnstraße, damit man die Teile nicht
nachträglich umfusen kann.  Neben der JTAG-ID kann man damit natürlich
auch tatsächlich Einschränkungen im Device implementieren, also bspw.
nicht den gesamten Flash oder RAM sichtbar machen.  Auf die paar Gatter
in den Adressleitungen kommt es ja dann auch nicht an. ;-)

: Bearbeitet durch Moderator
von Reiner G. (reinerg)


Lesenswert?

Tim    schrieb:
> Falk Brunner schrieb:
> naja, es gibt die LPCXpresso boards, aber damit bin ich bisher noch
> nicht so richtig warm geworden. Das ist halt ein ziemlich blöder
> Formfaktor.

Stimmt, aber es gibt ja noch die Starter-Kits von Embedded Artists:
http://www.embeddedartists.com/products/boards/lpc1343_qsb.php
http://www.embeddedartists.com/products/boards/lpc11u35_qsb.php

Dazu die LPCXPresso IDE ( C,C++ ); für Leute mit etwas Erfahrung ein 
tolles Tool.

Freescale Development-Tools a la LPCXpresso, aber günstiger und besser 
ausgestattet; Cortex M0, M3 und M4 und eine excellente kostenlose 
Entwicklungsumgebung (CodeWarrier+ProcessorExpert); jede Menge Libraries 
und Hilfestellung und und und ....... aber ein bischen Erfahrung braucht 
man auch hier.

Wer sich aber mal auf was neues einlassen will, oder aus irgendwelchen 
Gründen umsteigen muss ( 8-Bit --> 32 Bit) kann mal im folgenden Blog 
schnüffeln gehen:


http://mcuoneclipse.com/

... und fast hätte ich vergessen:

wer es spartanisch mag (IDE) findet hier noch ein leistungsstarkes und 
sehr preisgünstiges Board (Cortex M4 mit 256KB Flash und 64kB RAM) mit 
einer angepaßten "ARDUINO"-Entwicklungsumgebung. Alle AVR Libraries 
laufen auch auf ARM!

: Bearbeitet durch User
von Tim  . (cpldcpu)


Lesenswert?

Jörg Wunsch schrieb:
> Das hast du genau autoritativ von wem jetzt so gehört?

Ohne Kontext zitieren kann ich auch.

Ich arbeite nicht für Atmel, daher kann ich nur Vermutungen äußern. Es 
ist durchaus auch denkbar, dass die Controller genug Redundanz im Flash 
haben so dass der Flash-Yield nicht limitiert. Das Binning von 
Bausteinen und Fusen von defekten Speicherzellen ist aber gängige 
Praxis.

Es gibt allerdings tatsächlich einen Hinweis darauf, dass der ATtiny25 
nicht den gleichen Die wie der 85er nutzt: Die 85er ist nicht im 150 mil 
SOIC erhältlich, was auf einen größeren Die hindeuten könnte.

: Bearbeitet durch User
von Reiner G. (reinerg)


Lesenswert?

Reiner Geiger schrieb:
>
> ... und fast hätte ich vergessen:
>
> wer es spartanisch mag (IDE) findet hier noch ein leistungsstarkes und
> sehr preisgünstiges Board (Cortex M4 mit 256KB Flash und 64kB RAM) mit
> einer angepaßten "ARDUINO"-Entwicklungsumgebung. Alle AVR Libraries
> laufen auch auf ARM!

 Da fehlt natürlich der passende Link:

http://www.pjrc.com/teensy/teensy31.html

von Tim  . (cpldcpu)


Lesenswert?

greg schrieb:
> Nachtrag: also wenn mir jemand einfache mit LPC812 fertig bestückte
> Adapterboards für 8 EUR abkauft, löt ich die gerne zusammen - in
> Kleinmengen 1,50 EUR Materialkosten pro Stück. Das lohnt sich. ;)

Kümmerst Du Dich dafür auch um die elektrischen Test und den Versand? :)

von Tim  . (cpldcpu)


Lesenswert?

Reiner Geiger schrieb:
>Teensy

Das ist kein LPC800. Wollte nur 'mal darauf hinweisen :)

von Jens (Gast)


Lesenswert?

@Jörg Wunsch:

>Sowas hat man vielleich bei DDR-Bastler-ICs gemacht.  Bei den Flashs
>hier würde sich keiner drauf einlassen, einen IC mit teilweise nicht
>funktionierendem Flash noch zu verkaufen.  Solange die Ursache des
>Fehlers nicht klar ist, wäre ja immer ein hohes Risiko, dass mehr als
>nur das kaputt sein könnte, was beim ersten Test festgestelt worden
>is.  Die Ursache zu ermitteln, wäre jedoch teurer, als das Ding dann
>gleich in die Tonne zu kloppen.
Und sowas macht man bestimt auch heute noch. Das ist ja gerade die Kunst 
beim Schreiben der Testprogramme, dass man so schnell wie möglich 
herauskitzelt was zuverlässig geht und was nicht. Ich hab jetzt zwar 
keine konkreten Daten dazu vorliegen, aber ich bin mir sicher das es nur 
so läuft. Bei den Preisen pro Maskensatz ist es für die Hersteller 
einfach nicht rentabel für jedes Derivat eine eigene Maske zu machen, 
selbst wenn die Masken für einen AVR sicher günstiger sind als 
beispielsweise die für einen PC-Prozessor. Zusätzlich zu den Masken 
kommt ja dann auch noch das Handling für unterschiedliche Wafer. Aber da 
müsstest Du ja eigentlich die besseren Quellen für Informationen haben. 
Wenn sowas gemacht wird ist die Abschaltung von Speicherbereichen ja 
auch schon im Design vorgesehen, d.h. die  Abschaltung ist in der 
Schaltung irgendwie berücksichtigt. Damit sollte es dann auch keine 
Wechselwirkungen mit dem defekten Teil geben. Ich vermute mal das selbst 
die Funktion mit abgeschaltetem Flash schon im Wafertest geprüft werden 
kann.
Und die Gründe für einzelne Ausfälle analysiert heutzutage eh niemand. 
Da wird viel Statistik über mehrere Wafer gemacht und versucht 
systematische Fehler und wiederkehrende Fehlermuster zu verstehen.

Um nochmal zu den PC-Prozessoren zurückzukommen, wenn ich das richtig in 
Erinnerung habe geht man da gar nicht von einem immer Fehlerfreien 
Speicher aus und baut den gleich so, das eine bestimmte Anzahl von 
Fehlern auf dem Die per Remapping von Reserve-Speicherzellen 
ausgeglichen wird.

Jens

von Tim  . (cpldcpu)


Lesenswert?

Jens schrieb:
> Um nochmal zu den PC-Prozessoren zurückzukommen, wenn ich das richtig in
> Erinnerung habe geht man da gar nicht von einem immer Fehlerfreien
> Speicher aus und baut den gleich so, das eine bestimmte Anzahl von
> Fehlern auf dem Die per Remapping von Reserve-Speicherzellen
> ausgeglichen wird.

Ja, das wird auch beim DRAM und Flash so gemacht. Die Ausbeute von 
heutigen Speichern würde ohne Redundanz sehr gering sein...

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Tim    schrieb:
> Jörg Wunsch schrieb:
>> Das hast du genau autoritativ von wem jetzt so gehört?
>
> Ohne Kontext zitieren kann ich auch.
>
> Ich arbeite nicht für Atmel, daher kann ich nur Vermutungen äußern.

Das klang aber wie eine ziemlich definitive Aussage, nicht wie eine
Mutmaßung.

> Es
> ist durchaus auch denkbar, dass die Controller genug Redundanz im Flash
> haben so dass der Flash-Yield nicht limitiert. Das Binning von
> Bausteinen und Fusen von defekten Speicherzellen ist aber gängige
> Praxis.

Das mag für große Flashs der Fall sein (also alles, was da so als
NAND-Flash im Gigabytebereich herumdümpelt), bei denen müssen die
Kosten pro Byte extrem gering gehalten werden.  Bei denen kann man
aber auch (wie bei normalen Festplatten) mit Sektorersetzungen
arbeiten, da muss nicht unbedingt jedes Byte funktionieren.

Die vergleichsweise kleinen Flashs von Controllern müssen dagegen
100%ig zuverlässig funktionieren, und das über die spezifizierte
Lebensdauer.  Die sind auch entsprechend teurer, allein die Kosten
für den Test eines großen Controller-Flashs machen einen substanziellen
Anteil der Gesamtkosten eines Controllers aus.

Jens schrieb:

> Ich hab jetzt zwar keine konkreten Daten dazu vorliegen, aber ich bin
> mir sicher das es nur so läuft.

Ich weiß, dass es (zumindest im Controllerbereich) nicht so läuft.

> Bei den Preisen pro Maskensatz ist es
> für die Hersteller einfach nicht rentabel für jedes Derivat eine eigene
> Maske zu machen, …

Das hängt halt davon ab, wie viele verkauft werden.

Aber auch, wenn man keine separaten Maskensätze für die ganze Familie
baut, betreibt man trotzdem kein "Binning".  Da werden dann die
kleineren einfach heruntergefuset und so verkauft.  Sowie ein genügend
großer Kunde in nennenswerten Stückzahlen nach den kleineren fragt,
kann man ihn dann immer noch als separates Produkt rausbringen.

> Wenn sowas gemacht wird ist die Abschaltung von Speicherbereichen
> ja auch schon im Design vorgesehen, d.h. die  Abschaltung ist in der
> Schaltung irgendwie berücksichtigt.

Richtig.

> Damit sollte es dann auch keine
> Wechselwirkungen mit dem defekten Teil geben.

Sagen wir mal so: es ist natürlich möglich, dass im nicht getesteten
Teil was defekt ist.  Einfach, weil es eben keiner getestet hat
(und aufgrund der kürzeren Testzeit sind die Bauteile damit ja sogar
wirklich billiger).

Aber was nicht gemacht wird ist, dass man nun einen Die für einen
ATtiny85 hat, aus dem man dann einen ATtiny45/1 oder einen ATtiny45/2
machen kann, je nach dem Ergebnis des Flash-Tests.  Wenn man das
macht, dann ist der ATtiny45 eben einer, bei dem die komplette obere
Hälfte des Flash brach liegt, logisch abgeklemmt, aber auch nie erst
getestet worden ist.

Die Ausbeuten der heutigen IC-Prozesse sind gut genug.

> Und die Gründe für einzelne Ausfälle analysiert heutzutage eh niemand.

Unterschiedlich.  Wenn man sich keinen Reim drauf machen kann, wird
zuweilen schon ganz schön Aufwand getrieben.  Man will ja künftige
Fehler vermeiden.

von Robert T. (robertteufel)


Lesenswert?

MarcVonWindscooting schrieb:
snip
> Ich kann mich noch an einen Robert Teufel
> erinnern, vor ein paar Jahren, der immer von den LPCs geschw"armt hat.
> Das hat aber offensichtlich nicht gefruchtet.
Ich nehme das mal als Kompliment und denke es hat schon etwas 
gefruchtet, wenn auch nicht im gewuenschten Ausmass. Nach STM32 ist der 
LPC wahrscheinlich der zweitmeist genannt ARM Cortex hier im Forum. 
(Nicht nachgezaehlt, nur mein Eindruck)

- snip
Die Forumteilnehmer zu beleidigen ist wenig hilfreich fuer deinen Zweck 
:(

> Ist das hier eine LPC-freie Zone? Sind die so unattraktiv?
>
> Steckbrett:
> Schon mal 'nen LPC810FN8 (DIP8) angeschaut? Nein?
> Einen LPC1114FN28 (DIP28) eines Blickes gew"urdigt? Nein?
>
> Oder vielleicht f"ur die 'modernen' unter euch: LPC812JD20 (20-SOIC-W),
> LPC1110FD20 (20-SOIC-W), LPC1112FD20 (20-SOIC-W), die kann 'man' schon
> noch ohne Probleme l"oten, wenn man was anderes als 'nen 80W
> Schweisskolben aus dem Baumarkt hat. Auch nicht?
>
> Brauchen zuviel Strom im aktiv-Modus z.B. 2mA@12MHz. Vermutlich. Und im
> (Nicht:Deep-) Power-Down sowieso (z.B. 3uA mit Ausgangsregistern aktiv,
> self-wakeup-timer laufend, 4 wakeup-pins aktiv). Und die 1.8V..3.6V sind
> auch so ungeschickt, wenn man nicht z.B. die ultra-low-level NXP
> PMVxxUP/UN MOSFET am Ausgang verwendet (z.B. PMV30UN, wenn's mal wieder
> etwas mehr Strom sein muss), sondern seine MOSFET-Restposten aus den
> 90er Jahren verbrauchen will (BUZ...). Und die Pins dieser Micros sind
> ja auch nicht Arme, sondern eher nur D"aumchen (Thumb2?) mit nicht mal
> 10mA, aber allerh"ochstens mal 20mA - l"acherlich f"ur jeden
> Bastler-Mindestanforderungskatalog. Dann wohl tats"achlich besser Finger
> weglassen, von dem neumodischen Kram.
>

Als ich noch bei NXP war, wurden die PLCC Varianten immer wieder 
rausgeschoben, die DIP (TSSOP) Varianten sind recht neu und es dauert 
hier im Forum SEHR LANGE bis neue Chips es in die Diskussionsrunden 
schaffen.
Ein anderes Beispiel waere der XMEGA, eine klare Verbesserung gegenueber 
dem urspruenglichen AVR aber anfagns sehr fehlerbehaftet und zu einer 
Zeit auf den Markt gekommen als Umsteiger auf dem Weg Richtung 32-bit 
waren.

Die LPCs bieten vieles fuers Geld aber auch andere Muetter haben schoene 
Toechter. ST war einfach schneller am Markt mit dem STM32. NXP blieb zu 
lange auf dem ARM7 als Core stehen.

Beitraege liefern und auch Fragen stellen zu den LPCs und vielleicht 
geschieht ein Wunder. :)

Have fun, Robert

von Stefan (Gast)


Lesenswert?

> die DIP (TSSOP) Varianten sind recht neu und es dauert
> hier im Forum SEHR LANGE bis neue Chips es in die Diskussionsrunden
> schaffen.

Nur wenn sie bereits verfügbar sind. Angekündigte Chips werden dagegen 
in den höchsten Tönen gelobt und sehnlichst erwartet ;).

von Tim  . (cpldcpu)


Lesenswert?

Jörg Wunsch schrieb:
> Aber was nicht gemacht wird ist, dass man nun einen Die für einen
> ATtiny85 hat, aus dem man dann einen ATtiny45/1 oder einen ATtiny45/2
> machen kann, je nach dem Ergebnis des Flash-Tests.  Wenn man das
> macht, dann ist der ATtiny45 eben einer, bei dem die komplette obere
> Hälfte des Flash brach liegt, logisch abgeklemmt, aber auch nie erst
> getestet worden ist.
>
> Die Ausbeuten der heutigen IC-Prozesse sind gut genug.

Darf ich dann auch fragen, woher diese, absolute und referenzlose, 
Aussage kommt?

Mir scheint dass in dem Fall eher die Margen der 
Microcontroller-Hersteller noch zu hoch sind. Wenn man sich die Preise 
der AVRs anschaut, könnte man so etwas bei Atmel vermuten.

: Bearbeitet durch User
von chris_ (Gast)


Lesenswert?

Gerade habe ich mal bei Mouser geschaut, was ein LPC800 kostet: <1 Euro
Das ist schon mal gar nicht schlecht.
Was nehmt Ihr als Spannungsregler? Bis jetzt habe ich variable LM317 
verwendet, weil die viel billiger sind als andere. Allerdings stört mich 
die Bestückung des Widerstandsteilers.

von Tim  . (cpldcpu)


Lesenswert?

chris_ schrieb:
> Gerade habe ich mal bei Mouser geschaut, was ein LPC800 kostet: <1
> Euro
> Das ist schon mal gar nicht schlecht.
> Was nehmt Ihr als Spannungsregler? Bis jetzt habe ich variable LM317
> verwendet, weil die viel billiger sind als andere. Allerdings stört mich
> die Bestückung des Widerstandsteilers.

1117-3.3 gibt es für cents.

: Bearbeitet durch User
von chris_ (Gast)


Lesenswert?

Bei Mouser kostet der 1,70€. Hast Du eine Quelle?

von Tim  . (cpldcpu)


Lesenswert?


: Bearbeitet durch User
von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Bei den 3,3V Spannungsregler-IC's muss man ein wenig aufpassen, viele 
haben nur einen Eingangsspannungsbereich bis 7 oder 10V!

auch der 2117-3.3 ist Pinkompatibel.

Wenn man bei 3,3V etwas mehr Strom benötigt und das ganze an USB 
angeschlossen wird, so kann es sich auch lohnen einen Step-Down Wandler 
zu nehmen.
LM2675-3.3
wäre so einer und braucht wenige Teile.

von Tim  . (cpldcpu)


Lesenswert?

Hier ein Tipp zum LPC810:

Die einfachste Art den LPC810 zu programmieren ist über den eingebauen 
seriellen Bootloader. Dazu muss der Controller lediglich mit einem 
billigen USB-RS232 Adapter mit dem Computer verbunden werden. Die 
meisten dieser Adapter haben auch einen 3.3V Ausgang, der zum Betrieb 
des LPC810 genutzt werden kann. Der CP2102 hat z.B. einen internen 
Spannungsregler, der bis 100mA belastbar ist.

z.B. hier für 1.50 EUR:

http://www.ebay.de/itm/400524497015

oder CP2104

Von den PL2xxx. würde ich die Finger lassen.

Eine Anleitung gibt es bei Adafruit. Den Spannungsregler kann man, wie 
gesagt, weglassen.

http://learn.adafruit.com/getting-started-with-the-lpc810/programming-the-lpc810-with-flash-magic

Hier gibt es auch schon ein Python-Script zum flashen der LPC800

Beitrag "Python Script: LPC810 flashen"

: Bearbeitet durch User
von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Bei Farnell gibt es Festspannungsregler mit 3,3V Stückweise ab ca. 10ct 
und LDO ab ca. 13ct.
2500-er Preise ab ca. 6ct.

Bei Reichelt kostet der 1117 29ct

von Cyblord -. (cyblord)


Lesenswert?

chris_ schrieb:
> Gerade habe ich mal bei Mouser geschaut, was ein LPC800 kostet: <1 Euro
> Das ist schon mal gar nicht schlecht.
> Was nehmt Ihr als Spannungsregler? Bis jetzt habe ich variable LM317
> verwendet, weil die viel billiger sind als andere. Allerdings stört mich
> die Bestückung des Widerstandsteilers.

LP2950 ist ein guter LDO für 3.3 Volt. Gibts aber nur als TO-92 oder 
SOIC8.
Dann gibts noch TS5204 im SOT23.
Ebenso der RT9058 auch im SOT23.
Alle bis 30 Volt Eingangsspannung.

gruß cyblord

von chris_ (Gast)


Lesenswert?

Vielen Dank für die vielen Hinweise. Das hilft mir weiter.
>LP2950 ist ein guter LDO für 3.3 Volt. Gibts aber nur als TO-92 oder
>SOIC8.
Den habe ich schon mal verwendet. TO92 ist ziemlich groß für kleine 
Platinen. Wenn ich mich recht erinnere, ist der ein wenig empfindlich, 
wenn die Glättungskondensatoren nicht stimmen.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Der 1117 hätte den Vorteil, dass der eine Übertemperatur sowie Überstrom 
Schutzbeschaltung drin hat. Ist vielleicht besser zum Experimentieren.
Andere haben das auch, muss man lesen im Datenblatt.

von (prx) A. K. (prx)


Lesenswert?

chris_ schrieb:
> Wenn ich mich recht erinnere, ist der ein wenig empfindlich,
> wenn die Glättungskondensatoren nicht stimmen.

Das gilt für alle LDOs. Entweder 78xx oder aufpassen.

von andy (Gast)


Lesenswert?

MarcVonWindscooting schrieb:
> Hier im Forum k"onnen anscheinend nur PICs, AVRs, 8051, MSP430 und im
> Ausnahmefall ein STM32 wurzeln und vor sich hindursten. So verdorrt und
> ausgelaugt ist hier der Boden. Und was darauf vor sich hin darbt, das
......

Nicht jammern, einfach mal selbst anfangen und nicht warten, bis andere 
was machen. Andererseits, wieso sollte man sich was neues antun, wenn 
man mit den PICs, AVRs, 8051, MSP430... fast alles erschlagen kann. 
Schön, dass es Cortex gibt, na und????

von MarcVonWindscooting (Gast)


Lesenswert?

Ich hab in einer aktuellen Platine einen STLQ015XG33 (3.3V) verbaut.
Deshalb: Iq < 1.5uA. Dann kann man auch low power modes verwenden, wenn 
die Versorgung "uber 3.3V ist.

Kennt jemand einen besseren? Geht noch weniger? Wer weiss was?

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Bei den kleinen Leck-Strömen wird es schon schwierig. Der MCP1702 ist 
auch nicht schlecht, 2µA.

von Walter Tarpan (Gast)


Lesenswert?

Kann ich einen LPC mit meinem ST-Link/V2 flashen und debuggen? Die JTAG- 
und SWD-Schnittstelle soll bei allen Cortex-M ja gleich sein. Aber geht 
es praktisch?

von Cyblord -. (cyblord)


Lesenswert?

chris_ schrieb:
> Wenn ich mich recht erinnere, ist der ein wenig empfindlich,
> wenn die Glättungskondensatoren nicht stimmen.
Das ist Blödsinn. Er benötigt zwingend einen Kondensator am Ausgang. Man 
nimmt einfach einen gängigen Kerko dafür. Es ist im Datenblatt ein 
Minimum dafür angegeben, welches bei 1-2µF liegt. Dann steht da noch 
"can be increased without limit", also größer geht immer. Natürlich 
sollte der ESR nicht extrem hoch sein, aber bei welchem Kerko ist das 
schon so.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Walter Tarpan schrieb:
> Kann ich einen LPC mit meinem ST-Link/V2 flashen und debuggen? Die JTAG-
> und SWD-Schnittstelle soll bei allen Cortex-M ja gleich sein. Aber geht
> es praktisch?

Bei einem ST-LINK/V2 soll es einen Open-Source Crack geben, damit kann 
man dann auch andere µC außer ST flashen.
Ob das tut weiß ich nicht, wenn man das tut gibt es kein zurück mehr.
Hingegen der Segger J-LINK kann alle Cortex-Mx Prozessoren.

von Walter Tarpan (Gast)


Lesenswert?

Danke für die Info.

Markus Müller schrieb:
> Hingegen der Segger J-LINK kann alle Cortex-Mx Prozessoren.

Zu spät :-). Bin mit dem ST-Link voll zufrieden. Wobei mit 
"Vendor-lock-in" ein weiterer Punkt für den Verbreitungsgrad einzelner 
MCUs genannt wäre.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Nun ja, der LPC-Link kann von Haus aus auch nur die LPC's - dafür bieten 
die µC Hersteller alle samt recht günstige* Debugging Tools

(*)außer einer

von (prx) A. K. (prx)


Lesenswert?

cyblord ---- schrieb:
> Das ist Blödsinn. Er benötigt zwingend einen Kondensator am Ausgang. Man
> nimmt einfach einen gängigen Kerko dafür.

Es ist wie bei anderen LDOs auch. Elko ist einfacher, weil Mindest-ESR.

"A ceramic output capacitor can be used if a series resistance is added 
(recommended value of resistance about 0.1Ω to 2Ω) to simulate the 
needed ESR."

: Bearbeitet durch User
von Ich (Gast)


Lesenswert?

MarcVonWindscooting schrieb:
> Hier im Forum k"onnen anscheinend nur PICs, AVRs, 8051, MSP430 und im
> Ausnahmefall ein STM32 wurzeln und vor sich hindursten.

Hauptsächlich AVR.

Wenn es für die ARMs einen  Peter Dannegger, K.-H.-Kübeler, Spess53 und 
andere gäbe, sähe die Welt sicher anders aus.

Leider fehlt bei deinen vermissten µC dieser erstklassige Support. Schau 
doch mal rein.
Die ARM sind für den Einstieg eben "komplizierter", weil viel 
Umfangreicher. Hilfe dafür gibt es fast keine.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Ich schrieb:
> Leider fehlt bei deinen vermissten µC dieser erstklassige Support. Schau
> doch mal rein.
> Die ARM sind für den Einstieg eben "komplizierter", weil viel
> Umfangreicher.

Was ist jetzt bei einem LPC800 so viel komplizierter? Weil die 3 statt 1 
UART haben? Oder weil das Datasheet unglaublich viele 74 Seiten hat?

von Reiner Geiger (Gast)


Lesenswert?

Ich schrieb:
> Hilfe dafür gibt es fast keine.

Gibt es schon ausreichend wenn man etwas Englisch beherrscht.
Viele Universitäten in EU und USA sowie Südamerika sind in diesem 
Bereich aktiv, bieten jede Menge Informationen und Hilfestellung.

Hier ein einfacher Einstiegspunkt in der Schweiz:
(Vom BLOG-Titel nicht täuschen lassen; es geht fast ausschließlich um 
kleinere ARM Cortex Cores)

www.mcuoneclipse.com

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Tim    schrieb:

> Darf ich dann auch fragen, woher diese, absolute und referenzlose,
> Aussage kommt?

Fragen darfst du.  Antworten darf ich nicht. ;-)

> Mir scheint dass in dem Fall eher die Margen der
> Microcontroller-Hersteller noch zu hoch sind.

Ah ja.  Klar, die Betriebswirschaftler bei den IC-Herstellern sind
alle auf der Wurschtbrühe hergeschwommen, oder wie meinst du das?

Die Kosten entstehen keineswegs allein durch die Chifläche.
Maskensatzkosten wurden ja schon genannt (sind nicht unerheblich),
Kosten für den Fertigungstest machen einen großen Anteil an den
laufenden Kosten (und skalieren, wenn ein größeres Bauteil als
kleineres verkauft wird, d. h. das Bauteil wird davon in der Tat
billiger).  Schließlich kommen noch Kosten für die Qualifizierung
(Lebensdauertests) der Bauteile hinzu: jedes Produkt mit einem neuen
Maskensatz muss diese neu durchlaufen.

Ist also alles in allem immer eine Abwägung, die auch ganz stark davon
beeinflusst wird, wie die Kundennachfrage dann tatsächlich ist.

> Wenn man sich die Preise
> der AVRs anschaut, könnte man so etwas bei Atmel vermuten.

Soso.  Arbeiten STM und NXP denn gern ohne Marge?

Aber mal Butter bei die Fische.  Auf zu Mouser, weil das oben schon mal
als Referenz genannt worden ist.  Mal einen ATxmega256A3U als Beispiel
für einen aktuellen AVR (256 KiB Flash, 16 KiB SRAM).  Kostet bei
Abnahme von 100 Stück reichlich EUR 3,23  Jetzt bei NXP über die
parametrische Suche einen mit vergleichbaren Daten gesucht (einfach
mal auf die 256 KiB beschränkt und Cortex-M3).  Der billigste
(LPC1763FBD100) ist für EUR 4,02 (bei 250 Stück) zu haben.  Ja, der
hat mehr SRAM (da machen sich die kleineren Strukturen bezahlt), aber
die Größenordnung der Marge dürfte sich da mit dem Xmega wohl nicht
viel nehmen.  (Die SAM3 von Atmel kommen ziemlich in der gleichen
Größenordnung wie die Cortex-M3 von NXP raus, bei 256/64 KiB ist man
dort auch mit 4 Euro dabei.)

von greg (Gast)


Lesenswert?

Markus Müller schrieb:
> Was ist jetzt bei einem LPC800 so viel komplizierter? Weil die 3 statt 1
> UART haben? Oder weil das Datasheet unglaublich viele 74 Seiten hat?

Naja, die Switch Matrix, SCT usw. sind schon komplexer als die typische 
Peripherie eines ATMega/ATTiny. Aber auch deutlich leistungsfähiger und 
flexibler! Der Verweis auf den Datasheet ist aber blödsinnig, da stehen 
keine Details drin. Das Manual, welches die Peripherie beschreibt, hat 
ca. 350 Seiten.

Ich glaube ich werde mir auch mal ein paar LPC812 bestellen.

von (prx) A. K. (prx)


Lesenswert?

Markus Müller schrieb:
> Was ist jetzt bei einem LPC800 so viel komplizierter? Weil die 3 statt 1
> UART haben? Oder weil das Datasheet unglaublich viele 74 Seiten hat?

Eher weil da noch mit 349 Seiten des User Manuals hinzu kommen.
Was aber auch nicht so arg viel ist.

von spess53 (Gast)


Lesenswert?

Hi

>Oder weil das Datasheet unglaublich viele 74 Seiten hat?

Ach, die 349 Seiten vom LPC800 User manual unterschlägst du 
geflissentlich. Da weiß man ja, was von deinen Aussagen zu halten hat.

MfG Spess

von Ich (Gast)


Lesenswert?

Reiner Geiger schrieb:
> Gibt es schon ausreichend wenn man etwas Englisch beherrscht.
> Viele Universitäten in EU und USA sowie Südamerika sind in diesem
> Bereich aktiv, bieten jede Menge Informationen und Hilfestellung.

Was nützt mir das?
Zum AVR-Problem stellt man hier seine Frage, und wenn die nicht gar zu 
blöd ist, hat man hier 5 Min später eine qualifizierte Antwort.

Als Nicht-Profi kann ich also vertrauen, dass ich hier echte Hilfe 
bekomme. Und wenn´s der Tritt in den Allerwertesten ist, kann auch 
helfen.

Wer die LPC, ARM etc aus dem FF beherrscht, lächelt da natürlich drüber.

greg schrieb:
> Naja, die Switch Matrix, SCT usw. sind schon komplexer als die typische
> Peripherie eines ATMega/ATTiny.

Zum Beispiel.
Was das ist, wie die zu nutzen sind, Beispiele in C und ASM dafür, 
erlernbare Anwendungen...???? Nichts!

Dafür soll ich mir aber irgend ein Geschreibsel einer Universität 
reinziehen?
Hilft mir nicht weiter.
Pädagogisch wertlos.

von Falk B. (falk)


Lesenswert?

@ spess53 (Gast)

>>Oder weil das Datasheet unglaublich viele 74 Seiten hat?

>Ach, die 349 Seiten vom LPC800 User manual unterschlägst du
>geflissentlich. Da weiß man ja, was von deinen Aussagen zu halten hat.

;-) Das böse Wort mit P********a.

von Reiner Geiger (Gast)


Lesenswert?

spess53 schrieb:
> Ach, die 349 Seiten vom LPC800 User manual unterschlägst du
> geflissentlich. Da weiß man ja, was von deinen Aussagen zu halten hat.
>
> MfG Spess

Meine Güte nochmal ...
auch ein ATMega128 hat eine User Manual mit 386 Seiten. Wo ist das 
Problem?
Umgekehrt würde ein Schuh draus. Seid doch froh dass es die Doku umsonst 
gibt.

von Lothar (Gast)


Lesenswert?

Ich schrieb:
> Die ARM sind für den Einstieg eben "komplizierter", weil viel
> Umfangreicher. Hilfe dafür gibt es fast keine.

Tutorial für LPC13xx und LPC11xx (gleiche Peripherie mit M3 oder M0):

http://www.microbuilder.eu/Projects/LPC1343ReferenceDesign/GettingStartedLPC1343.aspx

Tutorial für LPC8xx:

http://learn.adafruit.com/getting-started-with-the-lpc810/introduction

greg schrieb:
> Naja, die Switch Matrix, SCT usw. sind schon komplexer als die typische
> Peripherie eines ATMega/ATTiny.

Mal ganz ohne Libraries und Vorkenntnisse Blinky für den LPC810 - im 
Manual-PDF Suche nach Pin-Direction und Pin-Register:

#define DIR0            0xA0002000
#define PIN0            0xA0002100

void main(void)
{
  // P0_4 set to output
  *((unsigned long *) DIR0) |= 1<<(4);

  while (1)
  {
    // P0_4 toggle
    *((unsigned long *) PIN0) ^= 1<<(4);

    delay(500000);
  }
}

void delay(volatile unsigned long cycles)
{
  while (cycles) {cycles--;}
}

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Alle moderne* Prozessoren verfügen über eine Busmatrix. Nicht nur der 
LPC800, auch beispielsweise der PIC24 und STM32F4xx. Manche mehr und 
manche weniger Flexibel.

Man ist somit vom HW-Design viel entspannter wenn man weiß dass eine 
HW-Funktion an mehreren Stellen herausgeführt sind.
Somit kann man z.B. den UART Pin auch als Timer Pin verwenden und 
relativ leicht die Baudrate messen.

(*) Die AVR Technologie kommt bereits aus der Steinzeit, vor 15 Jahren 
und ist heute nicht mehr das Maß der Dinge. Viel zu teuer für die 
schwache Leistung. (Wobei es natürlich auch Applikationen gibt, bei 
denen die Leistung ausreicht und aus dem Grund werden 8-Bitter nicht so 
schnell ausgerottet sein. Oder ist es eher Nostalgie?)

von Reiner Geiger (Gast)


Lesenswert?

Ich schrieb:
> Dafür soll ich mir aber irgend ein Geschreibsel einer Universität
> reinziehen?
> Hilft mir nicht weiter.
> Pädagogisch wertlos.

Na ja, war schon immer so: wer lesen kann ist im Vorteil.

Und auch in den ARM Foren bekommt man vernünftige Antworten.

von Reiner Geiger (Gast)


Lesenswert?

Lothar schrieb:
> Mal ganz ohne Libraries und Vorkenntnisse Blinky für den LPC810 - im
> Manual-PDF Suche nach Pin-Direction und Pin-Register:

@Lothar
Danke das Du dir die Mühe gemacht hast!.

Hatte ich doch glatt recht, wer lesen kann ist doch im Vorteil ;-)

von greg (Gast)


Lesenswert?

Lothar schrieb:
> Mal ganz ohne Libraries und Vorkenntnisse Blinky für den LPC810 - im
> Manual-PDF Suche nach Pin-Direction und Pin-Register:

IOCON-Clock wird nicht aktiviert? Da blinkt dann doch nix? :)

von Ich (Gast)


Lesenswert?

Reiner Geiger schrieb:
> Na ja, war schon immer so: wer lesen kann ist im Vorteil.


Lothar schrieb:
> Tutorial für LPC13xx und LPC11xx (gleiche Peripherie mit M3 oder M0):
>
> 
http://www.microbuilder.eu/Projects/LPC1343ReferenceDesign/GettingStartedLPC1343.aspx
>
> Tutorial für LPC8xx:
>
> http://learn.adafruit.com/getting-started-with-the-lpc810/introduction

Wertlos. Da zeigt jemand, wie man die IDE installiert und eine LED mit 
Waitms() blinken lässt. Toll. Das 98987544. Blinky.

Ich mag das AVR Tutorium hier im Forum. Jede Funktionseinheit samt der 
zugehörigen Register des AVR wird darin für einen Einsteiger 
verständlich erläutert.

Und genau das fehlt für die ARM M0-M4 Kerne. Liebe Profis: Ihr versteht 
sicherlich die "Tutorien", die ihr hier verlinkt. Ich kann davon nichts 
lernen, ich will den GRUNDAUFBAU kennen lernen, nicht eine LED blinken 
lassen!

von Ich (Gast)


Lesenswert?

Reiner Geiger schrieb:
> Und auch in den ARM Foren bekommt man vernünftige Antworten.

Es ging um dieses Forum. Nicht um irgend ein ARM Forum.

von Ich (Gast)


Lesenswert?

Markus Müller schrieb:
> Man ist somit vom HW-Design viel entspannter wenn man weiß dass eine
> HW-Funktion an mehreren Stellen herausgeführt sind.
> Somit kann man z.B. den UART Pin auch als Timer Pin verwenden und
> relativ leicht die Baudrate messen.

Du magst ja Recht haben, und mit läuft das Wasser im Mund zusammen, wenn 
ich das lese.

ES gibt aber keine einfachen und motivierenden Einstieg in diese 
Technologie. Alles ist total verstreut, meist Englisch, bruchstückhaft, 
unverständlich, ohne Zusammenhang, nicht pädagogisch aufgearbeitet.

von chris_ (Gast)


Lesenswert?

Habe gerade noch dieses in der Codesammlung entdeckt:
Beitrag "Python Script: LPC810 flashen"

von greg (Gast)


Lesenswert?

Was ist an diesem Script der Vorteil zu lpc21isp? Das ist ein 
etabliertes Tool für diesen Zweck.

von Reiner Geiger (Gast)


Lesenswert?

Ich schrieb:
> ES gibt aber keine einfachen und motivierenden Einstieg in diese
> Technologie.

Genau, es gibt den "einfachen" Einstieg nicht, weil es keine "einfache" 
Technik ist; da muss man sich schon mit beschäftigen wollen oder 
eventuell auch müssen ;-)

Aber warum willst Du dich mit etwas beschäftigen was Du nicht benötigst. 
Niemand muss ARM Prozessoren einsetzen.

Solange Du alle Aufgaben mit 8-Bit Prozessoren erledigen kannst und 
dabei genügend Hilfe erhälst ist doch alles in Ordnung. Und das 
funktioniert hier im Forum ja wirklich bestens!

> Alles ist total verstreut, meist Englisch, bruchstückhaft,
> unverständlich, ohne Zusammenhang, nicht pädagogisch aufgearbeitet.

Ist aber doch nicht das Problem der Prozessoren; ist halt noch keiner 
auf die Idee gekommen das mal hier im Forum anzugehen. Kostet halt jede 
Menge Zeit und Energie. Mit ISBN-Nummer kann man das aber alles schon 
haben.

von Cyblord -. (cyblord)


Lesenswert?

Reiner Geiger schrieb:
> Ist aber doch nicht das Problem der Prozessoren; ist halt noch keiner
> auf die Idee gekommen das mal hier im Forum anzugehen. Kostet halt jede
> Menge Zeit und Energie. Mit ISBN-Nummer kann man das aber alles schon
> haben.

Nun, die Eingangsfrage war, warum niemand den LPC800 einsetzt. Und 
darauf gabs hier eine Antwort.

von Ich (Gast)


Lesenswert?

Reiner Geiger schrieb:
> Mit ISBN-Nummer kann man das aber alles schon
> haben.

Sag an :-)

von Lothar (Gast)


Lesenswert?

greg schrieb:
> IOCON-Clock wird nicht aktiviert? Da blinkt dann doch nix? :)

Lustigerweise braucht es diese Clock nur, wenn man mit den Pins etwas 
anderes machen möchte als die Default-Funktion, also z.B. Pin auf 2. 
Funktion umschalten oder Pin als Interrupt nutzen.

von greg (Gast)


Lesenswert?

Lothar schrieb:
> greg schrieb:
>> IOCON-Clock wird nicht aktiviert? Da blinkt dann doch nix? :)
>
> Lustigerweise braucht es diese Clock nur, wenn man mit den Pins etwas
> anderes machen möchte als die Default-Funktion, also z.B. Pin auf 2.
> Funktion umschalten oder Pin als Interrupt nutzen.

Hab mich da auch vertan. Ich meinte den GPIO-Clock. Im Manual steht 
jedenfalls man muss den aktivieren. Ist der nach dem Booten schon aktiv?

von Lothar (Gast)


Lesenswert?

Ich schrieb:
> Wertlos. Da zeigt jemand, wie man die IDE installiert und eine LED mit
> Waitms() blinken lässt. Toll.

Vielleicht mal umblättern! Nur mal als Beispiel: man weiss schon was PWM 
ist, aber nicht wie es mit LPC geht. Dann ein Blick ins Tutorial:

http://www.microbuilder.eu/Projects/LPC1343ReferenceDesign/LPC1343_LPC1114_PWM.aspx

Natürlich kann man jetzt noch anmerken, er hätte erwähnen sollen, warum 
er die Match Register 0 und 3 nimmt (nämlich weil 3 keinen rausgeführten 
Pin hat, und daher für die Periode genommen werden soll).

Ich schrieb:
> Ich mag das AVR Tutorium hier im Forum. Jede Funktionseinheit samt der
> zugehörigen Register des AVR wird darin für einen Einsteiger
> verständlich erläutert.

Das möchte ich doch bezweifeln. Es geht los mit einem unmotivierten 
Assembler-Programm. Wieso überhaupt mit Assembler anfangen? Und hätte 
man nicht erst mal die Befehle und Register erklären müssen? Dann die 
Ausführungen zum Stack, braucht man nicht unbedingt zu wissen (übrigens 
stackt der Cortex-M automatisch).

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Lothar schrieb:
> (übrigens stackt der Cortex-M automatisch).

Stack? Was ist das? g
Um den musste ich mich beim Cortex-Mx noch nie kümmern. Mach alles der 
C-Compiler und µC, ganz von alleine.

von greg (Gast)


Lesenswert?

Markus Müller schrieb:
> Lothar schrieb:
>> (übrigens stackt der Cortex-M automatisch).
>
> Stack? Was ist das? g
> Um den musste ich mich beim Cortex-Mx noch nie kümmern. Mach alles der
> C-Compiler und µC, ganz von alleine.

Den richtigen Startup-Code brauchst du auf jeden Fall, das macht der 
Compiler nicht für dich.

von Ich (Gast)


Lesenswert?

Lothar schrieb:
> Das möchte ich doch bezweifeln. Es geht los mit einem unmotivierten
> Assembler-Programm. Wieso überhaupt mit Assembler anfangen? Und hätte
> man nicht erst mal die Befehle und Register erklären müssen?

Weil ASM auf dem AVR einfach g*il ist.
Ich habe vor gut 20 Jahren Z80 Assembler gelernt. Dann den Beruf 
gewechselt. Mit Hilfe des Tutoriums ist es mir gelungen, innerhalb 
weniger Wochen den AVR zu begreifen und alles was ich will in Assembler 
zu programmieren. Ich brauche kein C dafür, wenn es auch einfach geht.

Nun möchte ich schon gern die einfachen ARM kennen lernen, aber nicht in 
C.
Problem: macht kaum einer.
Lösung: Entweder C lernen oder bei AVR bleiben und auf Xmega erweitern.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Lösung:Assembler für ARM lernen.

USB, SD-Card oder Ethernet machen wohl nicht wirklich spass die in 
Assembler zu proggen - auch nicht beim AVR.

von Peter Maier (Gast)


Lesenswert?

Hier gibt es ein Beispiel für ASM auf LPC800:
http://www.windscooting.com/softy/ramloader.html

Aber Vorsicht: Laut Webseite
"WARNING: The author is NOT your friendly neighbour.
He has harsh opinions and these opinions may be expressed here
or in the program's output."

Was immer das zu bedeuten hat...

von Lothar (Gast)


Lesenswert?

Ich schrieb:
> Weil ASM auf dem AVR einfach g*il ist. Ich habe vor gut 20 Jahren Z80 Assembler 
gelernt.

Und ich hab 1989 Assembler auf dem ARM2 gelernt :-) Also vor 25 Jahren 
und auf dem Acorn Archimedes :-)

Und von wegen geil, hier (wieder mal) der größte gemeinsame Teiler in 
ARM (ist in Assembler einfacher):

int gcd (int a, int b)
{ while (a != b)
  { if (a > b) a = a - b; else b = b - a; }
  return a; }

gcd
  CMPS R0, R1
  SUBGT R0, R0, R1  ; greater than >
  SUBLE R1, R1, R0  ; less or equal <=
  BNE gcd           ; not equal

von Tim  . (cpldcpu)


Lesenswert?

Lothar schrieb:
> CMPS R0, R1
>   SUBGT R0, R0, R1  ; greater than >
>   SUBLE R1, R1, R0  ; less or equal <=
>   BNE gcd           ; not equal

Tja, das gilt aber nicht für die Thumb-Befehle.

von Lothar (Gast)


Lesenswert?

Tim    schrieb:
> Tja, das gilt aber nicht für die Thumb-Befehle.

Es ging ja nur ums ARM Assembler lernen. Der M3 Assembler fügt einen 
fehlenden ITE automatisch ein. Beim M0 sollte man Assembler vielleicht 
doch bleiben lassen, zu sehr "optimiert".

von Falk B. (falk)


Lesenswert?

@ greg (Gast)

>> Um den musste ich mich beim Cortex-Mx noch nie kümmern. Mach alles der
>> C-Compiler und µC, ganz von alleine.

>Den richtigen Startup-Code brauchst du auf jeden Fall, das macht der
>Compiler nicht für dich.

Du hast noch nie C programmiert. Na logisch kümmert sich der Compiler / 
die IDE um den Startup Code. Wer den per Hand beackert ist selber 
Schuld. 99% aller Anwendungen brauchen NICHT in den Internas von 
Compiler und IDE rumoperieren. Gott sei Dank.

von Kindergärtner (Gast)


Lesenswert?

Falk Brunner schrieb:
> Wer den per Hand beackert ist selber
> Schuld. 99% aller Anwendungen brauchen NICHT in den Internas von
> Compiler und IDE rumoperieren. Gott sei Dank.
Außer man benutzt GCC und ARM :-/ der liefert nämlich keine 
Linkerscripte & Startupcode für 1000000 verschiedene Mikrocontroller 
mit...

von Franz (Gast)


Lesenswert?

Apropos: gibt es irgendwo ein Beispiel für "Blinky" from Sratch für den 
LPC800, also ohne große Lib wie z.B. CMCIS?
Register direkte einstellen etc.

von Tim  . (cpldcpu)


Lesenswert?

Franz schrieb:
> Apropos: gibt es irgendwo ein Beispiel für "Blinky" from Sratch für den
> LPC800, also ohne große Lib wie z.B. CMCIS?
> Register direkte einstellen etc.

Beitrag "Re: LPC800 existiert (fast) nicht in diesem Forum"

Ja, ein paar posts weiter oben.

Dieser Thread offenbart mal wieder die Probleme mit diesem Forum und 
vielen Postings. Etliche Dinge sind in diesem Thread mehrmals geposted 
worden.

von Marc P. (marcvonwindscooting)


Lesenswert?

Mannomann, der Thread "uberfordert mich langsam.

@mmvisual: Danke f"ur den Tip mit dem MCP1702 - der hat einen viel 
gr"osseren Eingangsspannungsbereich :)

greg schrieb:
> IOCON-Clock wird nicht aktiviert? Da blinkt dann doch nix? :)

Gut aufgepasst! ;-)
es geht ohne IOCON-clock, aber nicht ohne die GPIO-clock (die ist aus 
nach dem Reset).

Ganz schw"ammig will ich mal behaupten, das NXP versucht die 
RESET-Defaults sinnvoll zu setzten. Auf den gr"osseren MCUs ist viel 
nach dem RESET 'viel' Peripherie an, w"ahrend bei dem Stromsparern fast 
alles aus ist. Das macht ein Blinky auf einem LPC17 einfacher als auch 
dem 'Einsteiger-' LPC800 / LPC1100.

> sicherlich die "Tutorien", die ihr hier verlinkt. Ich kann davon nichts
> lernen, ich will den GRUNDAUFBAU kennen lernen, nicht eine LED blinken
> lassen!
Was meinst Du mit Grundaufbau?

Es gibt die Werkzeuge: Compiler, Assembler, Linker, Bibliothekswerkzeuge 
(=> info gcc  as  ld / ar).

Es gibt das Zusammenspiel der Werkzeuge: Makefile oder "ahnliches. (=> 
info make).

Es gibt die ARM-Cortex-M0 Architektur: Speicher, Exceptions, 
Befehlssatz, Stack(s) (=> "The Definitive Guide to the Cortex-M0, dto. 
f"ur Cortex-M3, ARM Architecture Reference Manual= 'ARM ARM' ).

Es gibt Aufrufkonventionen 'AEABI': (=> AAPCS), ...

Es gibt die Peripherieeinheiten (=> LPC800 user manual).

Es gibt x M"oglichkeiten die Peripherieeinheiten in 'C' abzubilden. 
CMSIS, und andere, wobei ich CMSIS plump finde und nicht nutze.

Es gibt Benutzerpr"aferenzen/Hardwareanforderungen und die muss man in 
Linker-Scripts und Startup-Code abbilden. y M"oglichkeiten.

Es gibt die M"oglichkeit Bibliotheken zu bauen und zu verwenden, aber 
lassen wir das mal vorerst weg.

Ich sch"atze Du meinst nicht die 15 Zeilen Code in der main.c mit 
Grundaufbau, richtig? DIE 15 Zeilen, von denen IDE-Benutzer oftmals 
glauben, dass sie DAS PROGRAMM AN SICH ausmachen w"urden... (neben der 
Auswahl eines Bausteins LPC8xx in einem Projektsetting). Tsss.

Ziemlich gut finde ich dieses hier (obwohl LPC17). Da ist sehr viel 
erkl"art:

http://pygmy.utoh.org/riscy/cortex/led-lpc17xx.html


(Falk):
> Du hast noch nie C programmiert. Na logisch kümmert sich der Compiler /
> die IDE um den Startup Code.
> ...
> Gott sei Dank.
Wenn Du schon das Christentum ins Spiel bringst, dann ist Adam der 
Programmierer, und die IDE der Apfel...
Wer hier im Forum die Schlange ist, das find ich auch noch raus...!
Ich hab schon einen Verd"achtigen... ;-)

(Kindergaertner):
> Außer man benutzt GCC und ARM :-/ der liefert nämlich keine
> Linkerscripte & Startupcode für 1000000 verschiedene Mikrocontroller
> mit...
und das ist auch gut so. Linker Scripts sind starker Tobak, aber die 
M"oglichkeiten sind gewaltig. Und der Startup-Code h"angt da eng mit 
zusammen. Momentan verwalte ich die Adressen der Peripherieeinheiten 
z.B. im Startup-Code. USART0, IOCON, GPIO, usw. das sind bei mir keine 
Makros, und keine Pointer, sondern (Struktur-) Variable. Das kann man so 
in 'C' nicht hinbekommen.
Das ist f"ur ein minimales Blinky gut:
1
    *((unsigned long *) PIN0) ^= 1<<(4);

Im sp"ateren Gebrauch will ich aber:
1
  GPIO.pin0 ^= 1<<4;

Besser noch (atomar):
1
  GPIO.not0 = 1<<4;

> Aber Vorsicht: Laut Webseite
> "WARNING: The author is NOT your friendly neighbour.
> ...
> Was immer das zu bedeuten hat...

Ein paar Beispiele:

1. dass der Autor Programme, z.T. ABSICHTLICH Programme so schreibt, 
dass sie nicht einfach auf ein Betriebssystem - nenne wir es einfach mal 
W - zu portieren sind.

2. dass der Autor in der Hilfestellung eines seiner Programme pr"aventiv 
schon mal einen potentiellen 'Helfer' beleidigt, der dem Programm eine 
GUI verpassen will.

3. dass der Autor es typischerweise nicht mehr als 2 mal duldet, wenn 
jemand Hilfe will und genau das tut wovon der Autor explizit abgeraten 
hat. Beim zweiten Male typischerweise in einer sehr 
unmissverst"andlichen Art und Weise. Beim dritten Male wird der Absender 
als SPAM markiert und seine Mails landen ungesehen in der Tonne.

4. dass der Autor auf das Wort IDE heftig mit der Aussch"uttung von 
Histamin und Adrenalin reagiert.

von Kindergärtner (Gast)


Lesenswert?

Marc P. schrieb:
> Momentan verwalte ich die Adressen der Peripherieeinheiten
> z.B. im Startup-Code. USART0, IOCON, GPIO, usw. das sind bei mir keine
> Makros, und keine Pointer, sondern (Struktur-) Variable.
Wie geht das denn?

von Marc P. (marcvonwindscooting)


Angehängte Dateien:

Lesenswert?

Kindergärtner schrieb:
> Marc P. schrieb:
>> Momentan verwalte ich die Adressen der Peripherieeinheiten
>> z.B. im Startup-Code. USART0, IOCON, GPIO, usw. das sind bei mir keine
>> Makros, und keine Pointer, sondern (Struktur-) Variable.
> Wie geht das denn?

z.B. so:
1
extern struct {
2
  ...
3
  volatile Uint32 clr0;
4
  ... 
5
} GPIO;
6
7
void main(void) {
8
  GPIO.clr0 = 1<<4;
9
}

Und GPIO ist in crt0 definiert durch #include lpc8Symbols.s aus der 
Anlage.
GPIO ist nur eine Addresskonstante. Wenn nicht benutzt, dann braucht sie 
auch keinen Platz.

von Kindergärtner (Gast)


Lesenswert?

Marc P. schrieb:
> Und GPIO ist in crt0 definiert durch #include lpc8Symbols.s aus der
> Anlage.
Mit anderen Worten du missbrauchst den Startup-Code um Linker-Symbole 
mit den entsprechenden Adressen in Assembler anzulegen? Okay, in 
Standard-C geht das nicht. Was aber geht ist:
1
struct GPIO_Type {
2
  ...
3
  volatile Uint32 clr0;
4
  ... 
5
};
6
volatile GPIO_Type* GPIO = (volatile GPIO_Type*) 0xA0000000;
7
8
int main () {
9
  GPIO->clr0 = 1<<4;
10
}
Braucht auch keinen extra Platz (Compiler-Optionen), braucht aber keine 
Assembler-Magic. Und man muss "->" statt "." schreiben. In C++ kann man 
"." haben:
1
struct GPIO_Type {
2
  ...
3
  volatile Uint32 clr0;
4
  ... 
5
};
6
volatile GPIO_Type& GPIO = *reinterpret_cast<volatile GPIO*>(0xA0000000);
7
8
int main () {
9
  GPIO.clr0 = 1<<4;
10
}

von Kindergärtner (Gast)


Lesenswert?

PS: Man sollte natürlich den Standard-Typ uint32_t verwenden.

von Lothar (Gast)


Lesenswert?

Marc P. schrieb:
> greg schrieb:
>> IOCON-Clock wird nicht aktiviert? Da blinkt dann doch nix? :)
>
> Gut aufgepasst! ;-)
> es geht ohne IOCON-clock, aber nicht ohne die GPIO-clock (die ist aus
> nach dem Reset).

Da das Programm ja blinkt hab es jetzt extra debugged mit:

#define SYSAHBCLKCTRL   0x40048080
volatile unsigned long temp = *((unsigned long *) SYSAHBCLKCTRL);

Ergebnis: 11011111

GPIO ist bit 6, Reset-Value ist also 1 und nicht 0 - Fehler im Manual

Aber ich muss zugeben: ich arbeite ohne Manual und schaue nur rein, wenn 
was nicht geht :-)

von Marc P. (marcvonwindscooting)


Lesenswert?

C++ kann ich nicht ;-)
'->' kann ich nicht, weil ich von Java verdorben bin.

Wie bekommst Du den Platz von GPIO (4-byte, Pointer) mit 
Compiler-Optionen weg? Welche? Warum volatile, nicht const (woanders):
1
GPIO_Type* const GPIO = (GPIO_Type*) 0xA0000000;

Der Charme der asm-L"osung ist auch die einfache zentrale Verwaltung der 
Peripherieadressen und die hinterh"altige aber kurze Umgehung 
s"amtlicher Typecasts f"ur diese Adressen.

von Kindergärtner (Gast)


Lesenswert?

Marc P. schrieb:
> C++ kann ich nicht ;-)
> '->' kann ich nicht, weil ich von Java verdorben bin.
Wenn du schon dank Java OOP beherrschst ist doch C++ naheliegend...
> Wie bekommst Du den Platz von GPIO (4-byte, Pointer) mit
> Compiler-Optionen weg? Welche?
-O2 sollte reichen. Vermutlich sollte man die Adresse noch konstant & 
static machen:
1
static volatile GPIO_Type* const GPIO = (volatile GPIO_Type*) 0xA0000000;
Dann müsste die Variable komplett verschwinden.
> Warum volatile, nicht const (woanders):
> GPIO_Type* const GPIO = (GPIO_Type*) 0xA0000000;
volatile wie immer damit der Compiler die Zugriffe nicht wegoptimiert. 
Das "const" hatte ich vergessen.
> Der Charme der asm-L"osung ist auch die einfache zentrale Verwaltung der
> Peripherieadressen und die hinterh"altige aber kurze Umgehung
> s"amtlicher Typecasts f"ur diese Adressen.
Naja mit C geht das auch zentral, einfach alles in eine Datei packen. 
Die asm-Lösung bedient sich aber bösartiger Linker-Magic und ist aus 
C-Sicht ziemlich undurchsichtig... Genausogut könntest du die Adressen 
im Linkerscript eingeben...

von Marc P. (marcvonwindscooting)


Lesenswert?

Lothar schrieb:
> GPIO ist bit 6, Reset-Value ist also 1 und nicht 0 - Fehler im Manual

Tats"achlich! Oh je, kann man sich nicht mal darauf verlassen...
Willst Du das nicht im LPCWare-Forum melden - wir wollen doch korrekte 
Manuals?!

von Lothar (Gast)


Lesenswert?

Marc P. schrieb:
> Lothar schrieb:
>> GPIO ist bit 6, Reset-Value ist also 1 und nicht 0 - Fehler im Manual
>
> Tats"achlich! Oh je, kann man sich nicht mal darauf verlassen...

Völlig normal, die Errata zum Manual sind ja inzwischen schon 2 Seiten 
:-)

Übrigens SWM ist bit 7, also auch Reset-Value 1 und nicht 0. Anderseits 
würde es ja keinen Sinn machen, dass man nach Reset keine I/Os und keine 
Switch-Matrix hat.

Wenn ich eine Bibliotheksfunktion mache, setze ich aber immer alle 
benötigten Bits, egal was im Manual steht.

von Ingo P. (Gast)


Lesenswert?

Lothar schrieb:
> Anderseits
> würde es ja keinen Sinn machen, dass man nach Reset keine I/Os und keine
> Switch-Matrix hat.

Das hätte etwas mit dem Stromverbrauch zu tun haben können.
Nicht jeder braucht gleich zu Anfang alle Features.
Derjenige der I/Os braucht, kann sie selbst aktivieren.
Welchen uC benutzt du genau? Welche Revision? Bootloader-Version?

Aber vielleicht Vorsicht: Hängst du mit JTAG drauf?
Oder kommst du aus dem seriellen Bootloader?
Da könnten die Bits anders sein, als wenn er Standalone bootet.
Auch die Ausgabe ist entscheidend.

Ich denke man müsste den Wert von SYSAHBCLKCTRL in einer Variablen
speichern, dann die Ausgabe (z.B. seriellen Port) initialisieren
und dort dann ausgeben.

von Lothar (Gast)


Lesenswert?

Ingo P. schrieb:
> Das hätte etwas mit dem Stromverbrauch zu tun haben können.
> Nicht jeder braucht gleich zu Anfang alle Features.
> Derjenige der I/Os braucht, kann sie selbst aktivieren.

Die Default-Funktion der Pins braucht man wohl immer. Und die weiteren 
Pin-Funktionen und Interrupts sind ja abgeschaltet.

> Welchen uC benutzt du genau? Welche Revision? Bootloader-Version?

LPC810 neueste Revision 4C

> Aber vielleicht Vorsicht: Hängst du mit JTAG drauf?
> Oder kommst du aus dem seriellen Bootloader?
> Da könnten die Bits anders sein, als wenn er Standalone bootet.

Es blinkt auch beim Standalone-Start, also ist das GPIO Bit gesetzt.

> Auch die Ausgabe ist entscheidend.

Das Programm bindet ja keine Library ein, der Startup-Code definiert 
nichts als die Vektortabelle, und es wird nur direkt auf DIR0 und PIN0 
zugegriffen.

Übrigens z.B. LPCxpresso versteckt die Default-Initialisierung im 
Startup-Code, das muss man natürlich raus machen.

von Falk B. (falk)


Lesenswert?

@ Lothar (Gast)

>Übrigens z.B. LPCxpresso versteckt die Default-Initialisierung im
>Startup-Code, das muss man natürlich raus machen.

Sehr sinnvoll, in den Eingeweiden der IDE rumzumurksen.

von Lothar (Gast)


Lesenswert?

Falk Brunner schrieb:
> Sehr sinnvoll, in den Eingeweiden der IDE rumzumurksen.

Bitte nachlesen, es ging um einen Test, ob beim uC Startup ein Bit 
defaultmäßig gesetzt ist oder nicht, und wenn nicht, wo das denn gesetzt 
wird. Kann der Normaluser gleich wieder vergessen.

von ätt (Gast)


Lesenswert?

Haha, dumm °~°

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Marc P. schrieb:
>> Außer man benutzt GCC und ARM :-/ der liefert nämlich keine
>> Linkerscripte & Startupcode für 1000000 verschiedene Mikrocontroller
>> mit...
> und das ist auch gut so. Linker Scripts sind starker Tobak, aber die
> M"oglichkeiten sind gewaltig. Und der Startup-Code h"angt da eng mit
> zusammen.

AVR-GCC / avr-libc machen vor, dass man in 99,99 % der Fälle prima
mit völlig allgemeingültigen Implementierungen dafür aufwarten und
diese mit ausliefern kann.  Mögliche Hooks für projektspezifische
Anpassungen kann man ja trotzdem problemlos vorsehen.

Es ist einfach hanebüchen, wie viele teilweise verbuggte Versionen
von ARM-Linkerscripts so durch das Internet geistern, nur, weil
Compiler und Bibliothek diese nicht von Haus aus mitbringen und sich
jeder sein eigenes Süppchen kocht.

Allerdings hätte sich dafür natürlich jemand den Hut aufsetzen müssen,
am besten wäre wohl ARM selbst.  Die Hersteller der einzelnen ARMs
haben ja kein großes Interesse an einer Standardisierung, denn die
sehen nur ihre eigene (aus ihrer Sicht perfekte) IDE und die Einbidung
der Tools in diese; an einer herstellerübergreifenden Austauschbarkeit
haben die doch rein gar kein Interesse.

Das kann aber durchaus auch jemand ganz anderes als ARM tun.  Beim
AVR-GCC/avr-libc stand ja auch nicht Atmel selbst hinter der 
Entwicklung.

von Marc P. (marcvonwindscooting)


Lesenswert?

Jörg Wunsch schrieb:
> AVR-GCC / avr-libc machen vor, dass man in 99,99 % der Fälle prima
> mit völlig allgemeingültigen Implementierungen dafür aufwarten und

Tja, vielleicht bin ich nicht repr"asentativ, das k"onnte ich mir gut 
vorstellen. Aber 99.99% sind's bei mir nicht mal ann"ahernd. Nur beim 
Schreiben von Programmen auf dem PC f"ur den PC brauch ich auch nie ein 
eigenes.
Ich habe unterschiedliche Linkerscipts f"ur unterschiedliche uCs, 
Entwichlungsverianten (RAM-Ausf"uhrung) und Releasevarianten (FLASH), 
'Viel' Stack und 'Wenig' Stack, C-Programme oder ASM-Programme, usw. ...
Man KANN mit weniger auskommen, aber dann verlagert man ein paar 
Funktionalit"aten in den C-Code, z.B. misbr"auchliche Verwendung von 
__attribute__((section("xyz"))) um was woanders hinzuschummeln.

Und woher das 99.99% LD-Script schon heute weiss, in welchem 
Adressbereich morgen der Hersteller X f"ur Chip Y einen Fetzen RAM 
f"ur die Peripherie Z legt w"urde ich gern wissen.

Eben geschaut in meinen Umgebungen:
LPC1700: 12 St"uck
LPC2100: 8 St"uck
LPC800: 4 St"uck

von greg (Gast)


Lesenswert?

Marc P. schrieb:
> Und woher das 99.99% LD-Script schon heute weiss, in welchem
> Adressbereich morgen der Hersteller X f"ur Chip Y einen Fetzen RAM
> f"ur die Peripherie Z legt w"urde ich gern wissen.

Ich glaube Jörg meint, dass man einmalig für einen bestimmten MCU-Typ 
ein allgemein verwendbares Linkerscript und allgemeinen Startup-Code 
verfassen kann. Genau das macht avr-libc doch. Dann braucht nicht jeder 
das Rad immer wieder neu zu erfinden.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Marc P. schrieb:
> einen Fetzen RAM f"ur die Peripherie Z legt w"urde ich gern wissen.

Sowas steht doch normalerweise als feste Adresse im device header
file drin.  Das ist ja auch kein RAM, den der Linker dann verwalten
muss.

von Lothar (Gast)


Lesenswert?

greg schrieb:
> Ich glaube Jörg meint, dass man einmalig für einen bestimmten MCU-Typ
> ein allgemein verwendbares Linkerscript und allgemeinen Startup-Code
> verfassen kann.

Selbstverständlich kommen alle relevanten ARM IDEs (Eclipse/LPCxpresso, 
Keil, IAR) mit Linkerscripten und Startup-Codes für alle uC und die sind 
in 99% der Fälle anwendbar. Es gibt nur wenige Ausnahmen für den Profi 
z.B.:

- Anschluss von externem RAM/Flash, muss natürlich ins Linkerscript

- Library-Objekt von anderer IDE, dann müssen im Startup-Code die 
eventuell Handler-Namen geändert werden

- Privileged-Aktionen (Software-Interrupts nutzen, Memory Protection, 
Fault Handler), dann muss der Startup-Code angepasst werden

Dann gibt es noch die kleine Problematik, dass NXP es dem User bequem 
machen möchte. So macht der CMSIS-Library-Call System_Init() auf einem 
100 MHz uC einfach 96 MHz, damit z.B. auch USB mit 48 MHz funktioniert. 
Wenn man da ran möchte, muss man tatsächlich selbst was machen, nämlich 
eine weitere PLL starten für 48 MHz und dann die Main-PLL auf 100 MHz. 
Wenn das daneben geht ist der uC aber nicht "verfused", der Bootloader 
startet immer noch mit dem internen Oszillator :-)

von greg (Gast)


Lesenswert?

Lothar schrieb:
> Selbstverständlich kommen alle relevanten ARM IDEs (Eclipse/LPCxpresso,
> Keil, IAR) mit Linkerscripten und Startup-Codes für alle uC und die sind
> in 99% der Fälle anwendbar.

Naja, IDE != Compiler. Mit der avr-libc ist man nicht auf die Hilfe 
irgendeiner IDE angewiesen, und das ist auch gut so. Ich würde mich über 
ein umfangreiches Repository an Linkerscripten & co für den GCC freuen. 
Momentan muss man immer ein Linkerscript und Startup-Code mitliefern, 
wenn man sich nicht auf eine Entwicklungsumgebung festlegen möchte. Oder 
übersehe ich etwas?

von MarcVonWindscooting (Gast)


Angehängte Dateien:

Lesenswert?

Seh ich auch so. Die paar .x - files die beim gcc dabei sind, mit denen 
hab ich noch nie was angefangen. Die sind sooo kompliziert und in 
keinster Weise auf den Speicher eines uC eingestellt.
Ich hab noch nie mit C++ f"ur den uC entwickelt, immer nur C, unter 
anderem weil ich mir's noch nie angetan habe genau zu schauen, wie ich 
den ganzen C++ Plunder (Konstruktoren, Destruktoren, ...) in der crt0 
verwurstet bekomme.

Anbei mal 'ein Vorschlag f"ur ein LD-Skript f"ur den LPC812, Ausf"uhrung 
im FLASH (der normale Fall: das 99.99%-Script).
crt0 kopiert __data_romimage ins .data Segment (RAM) mit memcpy.
Wir gesagt, f"ur C++ reicht das NICHT.

von Lothar (Gast)


Lesenswert?

MarcVonWindscooting schrieb:
> Wir gesagt, f"ur C++ reicht das NICHT.

Was ist hiermit: http://midibel.com/blink1.html

greg schrieb:
> Naja, IDE != Compiler.

Bei den genannten Keil und IAR sind IDE und Compiler ja "aus einer 
Hand".

Bei LPCxpresso ist es gcc, vielleicht mal das Linkerscript vom Meister 
ansehen:

https://github.com/microbuilder/LPC810_CodeBase

von Tim  . (cpldcpu)


Lesenswert?

Lothar schrieb:
> Was ist hiermit: http://midibel.com/blink1.html

Eigentlich sehr interessant. In der praktischen Umsetzung aber ziemlich 
"Stillos"
1
typedef unsigned int volatile * vp;
2
3
...
4
  // via UM-4.3.1
5
  *(vp)0x40048238 &= ~(1 << 7);         // PDRUNCFG - enable syspll
6
  *(vp)0x40048040 = 0;                  // SYSPLLCLKSEL - pll input to IRC
7
  *(vp)0x40048044 = 0;                  // SYSPLLCLKUEN - toggle pllenable
8
  *(vp)0x40048044 = 1;
9
  *(vp)0x40048008 = 0x24;               // SYSPLLCTRL - M=4+1,P=1 -> 12Mhz*5/1=60Mhz
10
...
11
 public:
12
    UART(int nr_)
13
      : nr(nr_) // addr + nr * 0x4000
14
    {
15
    }
16
    bool putChar(char c)
17
    {
18
      if (!(*(vp)0x40064008 & 0x4)) return -1;
19
      *(vp)0x4006401c = c;
20
      return c;
21
    }
22
    void putCharBlocking_(char c)
23
    {
24
      while (!(*(vp)0x40064008 & 0x4)) ;        // STAT
25
      *(vp)0x4006401c = c;                      // TXDAT
26
    }
27
    int getChar()
28
...
29
  extern unsigned int __data_end__;
30
  extern unsigned int __etext;
31
  unsigned int * f = (unsigned int *)(&__etext);
32
  unsigned int * t = (unsigned int *)(&__data_start__);
33
  unsigned int * e = (unsigned int *)(&__data_end__);

Damit das nocht jemand versteht, sollte man sich einfach die 
Basisaddressen der Peripheriemodule als #Define in einem headerfile 
definieren. Mit C-99 typen (uint32_t) sieht der Code dann auch noch 
einmal etwas besser aus.

von chris_ (Gast)


Lesenswert?

Himmel Hergott, ist das der 
Beitrag "schöner Code ?"

Eigentlich wäre es ganz einfach, Magic Numbers durch #defines zu 
ersetzen.
http://www.techrepublic.com/article/avoid-using-magic-numbers-and-string-literals-in-your-code/#.

von MarcVonWindscooting (Gast)


Lesenswert?

chris_ schrieb:
> Eigentlich wäre es ganz einfach, Magic Numbers durch #defines zu
> ersetzen.

Enums, wenn schon!
(Um die Debatte hier gleich mal bissl aufzuheizen :)

von Tim  . (cpldcpu)


Lesenswert?

MarcVonWindscooting schrieb:
> Enums, wenn schon!
> (Um die Debatte hier gleich mal bissl aufzuheizen :)

Dann kann man aber die Register nicht mehr mit

SYSCLKBASEPLLREGCTRL = 0

oder

SYSCLKBASEPLLREGCTRL->CLKDIVMUL = 1<<33

Ansteuern

von Marc P. (marcvonwindscooting)


Lesenswert?

Aber mit dem kryptischen *(vp) davor schon.

So, ich hab mal was geleistet und hab meinen Context-Switcher 
(Multitasking?) f"ur den LPC800 in die Code-Sammlung gestellt auf dass 
ihr ihn in Haut und Fetzen zerreissen k"onnt!

Um nicht so schnell marktschreierisch "uberboten zu werden, h"atte ich 
es yokto-OS taufen sollen (nano-OS, pico, usw. sind ja schon 
Alltagsbegriffe).

von Lothar (Gast)


Lesenswert?

Marc P. schrieb:
> So, ich hab mal was geleistet und hab meinen Context-Switcher
> (Multitasking?) f"ur den LPC800 in die Code-Sammlung gestellt auf dass
> ihr ihn in Haut und Fetzen zerreissen k"onnt!

Hättest für Dein tlYield wenigstens SVC nehmen können :-) Watchdog für 
abgerauchte Threads braucht auch nicht viel Platz, ebenso Memory Fault 
Handler für Stack-Überlauf.

von MarcVonWindscooting (Gast)


Lesenswert?

SVC?

Mich hat gestern jemand 'Sadist' genannt, daher bin ich eher f"ur
1
BKPT 0
 :o)

von Tim  . (cpldcpu)


Lesenswert?

Marc,

weisst Du was für Dein Anliegen wirklich nützlich wäre? Ein vernünftiger 
Basiscode für den LPC810.

Kevin Townsend hat mal mit diesem hier angefangen:
https://github.com/microbuilder/LPC810_CodeBase

Ich habe dort vor eine Weile schon einige Redundanzen herausoptimiert. 
Was aber toll ware:

- Startcode ohne CMSIS
- Includes für Registerzugriff ohne CMSIS
- Linkerscript für die GCC-Toolchain (z.B. vom ARM Launchpad)

LPCXpresso ist zwar gut, geht mir in der Geschwindigkeit und mit den 
ganzen zusätzlichen Kladderadatsch auf die Nerven. Und CMSIS ist nicht 
wirklich für ein Device mit 4kb Flash geeignet.

Ramloader und Multitasking sind tolle Fingerübungungen, zum Einstieg 
aber nur für sehr Abstrakt denkende Personen geeignet :)

Wenn das auf Github läuft, helfen sicherlich auch noch Leute mit (ich 
z.B.). Will mir aber selbst den Schuh gerade mal nicht anziehen.

Den 8 Pin LPC810 finden viele spannend. Und man kann sich die benötigte 
Hardware (Device, USBtoRS232) für unter fünf Eure besorgen. Nur mit dem 
Anfangen hapert es noch...

: Bearbeitet durch User
von chris_ (Gast)


Lesenswert?

> Den 8 Pin LPC810 finden viele spannend.
> Und CMSIS ist nicht
> wirklich für ein Device mit 4kb Flash geeignet.

Wie viel Speicher braucht der Multitasker?
4kB ist eine Grenze, die für viele Anwendungen zu knapp ist, da die 
C-Bibliotheken immer schon gleich einiges verbrauchen. 8kB wäre deutlich 
besser.

von Lothar (Gast)


Lesenswert?

chris_ schrieb:
> 4kB ist eine Grenze, die für viele Anwendungen zu knapp ist

Der LPC810 ist 8-bit-Ersatz und beim 8051 sind 1/2/4kB Standard.

Natürlich muss man sich als verschwenderischer ARM-Programmierer erst 
mal mit Speicher sparen befassen, aber z.B. ich habe schliesslich einen 
PID-Regler mit Farb-LCD-Treiber für ST7735 und grafischer Anzeige der 
Regelung für den LPC810 in 3.5kB untergebracht.

Ansonsten gibt es ja noch den LPC812 als SO-20 mit 16kB

von Wilhelm F. (Gast)


Lesenswert?

greg schrieb:

> Markus Müller schrieb:
>> Lothar schrieb:
>>> (übrigens stackt der Cortex-M automatisch).
>>
>> Stack? Was ist das? g
>> Um den musste ich mich beim Cortex-Mx noch nie kümmern. Mach alles der
>> C-Compiler und µC, ganz von alleine.
>
> Den richtigen Startup-Code brauchst du auf jeden Fall, das macht der
> Compiler nicht für dich.

Der Startup-Code für die LPC2000 war bei Keil in Assembler. Von den 
Jungs, die mit mir daran arbeiteten, schaute da niemand hinein, da gibts 
so eine Weigerung gegen Assembler. Das durfte dann ich machen, aber 
sowas macht mir auch Spaß. Tutorials für ARM-Assembler fand ich in der 
Anfangszeit nur bei Chinesen. Aber warum auch nicht bei denen mal was 
abschauen? Im Startup-Code habe ich dann in ARM-Assembler noch einiges 
angestrickt, z.B. an den Interruptvektoren. In C kommt man auch nicht 
weit, wenn man auf den Registersatz zugreifen muß. Im normalen Programm 
braucht man das aber nicht. Also es gibt durchaus solche Ausnahmen, wo 
man mal ein Schnipselchen Assembler braucht. Die Stacks für die 
verschiedenen Betriebsmodes mußte man auch manuell einstellen. Die muß 
man halt ermitteln.

von (prx) A. K. (prx)


Lesenswert?

ARM7 ohne ASM im Startup geht nicht. Cortex-M hingegen schon.

: Bearbeitet durch User
von Tim  . (cpldcpu)


Lesenswert?


von MarcVonWindscooting (Gast)


Lesenswert?

chris_ schrieb:
> Wie viel Speicher braucht der Multitasker?

86Bytes FLASH
8 Bytes RAM Context plus die Stackgr"osse >= 36 Bytes jeweils pro 
Thread.
Und nur 36Bytes auch bloss, wenn Du keine lokale Variable auf'm Stack 
haben wirst.
Du kriegst schon paar Threads unter, in den mickrigen 1k ;-)

> ARM7 ohne ASM im Startup geht nicht. Cortex-M hingegen schon.
Wie geht das denn?
Ich meine mit 'C' ?
Man verwendet 'C' + __attribute__((...)) um die ersten 4 Pointer 
dahinzubekommen, wo sie sein m"ussen, nur um keinen ASM zu verwenden. 
_attribute_ ist f"ur mich nicht sch"oner als ASM.
Oder "ubersehe ich was?

von (prx) A. K. (prx)


Lesenswert?

MarcVonWindscooting schrieb:
> Man verwendet 'C' + __attribute__((...)) um die ersten 4 Pointer
> dahinzubekommen, wo sie sein m"ussen, nur um keinen ASM zu verwenden.
> _attribute_ ist f"ur mich nicht sch"oner als ASM.

Ich schrieb nicht davon, was du als schön empfindest - wie könnte ich 
das? - sondern von ASM und non-ASM. Und Attributes sind kein ASM.

Aber wo wir nun einmal schon bei Ästhetik sind: Ich finde Attributes 
schöner als deine Umlaute. ;-)

: Bearbeitet durch User
von Marc P. (marcvonwindscooting)


Lesenswert?

Okay, dann will ich's anders formulieren: __attribute__(()) hat ein 
Aroma, das stark an Assembler erinnert.
Es ist sogar eine nicht-Standard Compiler-Erweiterung. Dann haette man 
auch gleich dem Compiler eine Option 
-fauto-generate-that-nasty-startup-code geben koennen und dann 
behaupten, da geht alles in 'C'. Und mit einem anderen Flag geht's dann 
ploetzlich f"ur den ARM7 auch.

von Wilhelm F. (Gast)


Lesenswert?

Marc P. schrieb:

> Okay, dann will ich's anders formulieren: __attribute__(()) hat ein
> Aroma, das stark an Assembler erinnert.

Die C-Fraktion scheint so einen Mist mehr zu lieben, als wirklich 
Assembler.

von (prx) A. K. (prx)


Lesenswert?

Wilhelm F. schrieb:
> Die C-Fraktion scheint so einen Mist mehr zu lieben, als wirklich
> Assembler.

Steht irgendwo geschrieben, dass die Assembler-Fraktion partout nicht 
ihren heiss geliebten Assembler verwenden darf? Oder warum seid ihr so 
sauer?

: Bearbeitet durch User
von MarcVonWindscooting (Gast)


Lesenswert?

Tim    schrieb:
> weisst Du was für Dein Anliegen wirklich nützlich wäre? Ein vernünftiger
> Basiscode für den LPC810.
> ...
> Wenn das auf Github läuft, helfen sicherlich auch noch Leute mit (ich
> z.B.). Will mir aber selbst den Schuh gerade mal nicht anziehen.
> ...
Das mit dem Schuh anziehen kenn ich.

Mit Basiscode meinst Du eine einfache Bibliothek f"ur die Peripherie?
Und vielleicht noch einige Routinen zum Formatieren von Zahlen usw.?
Wenn dass einfach bedeutet: einfache *.h und einfache "Ubersetzung 
eines Programms und (fast) einfache crt0 und (fast) einfache 
Linkerscripts und kein C++, dann hab ich das in der Schublade!

Ich hatte mir eigentlich mehr erhofft, von dem ROM-Routinen im LPC800. 
I2C, ja die benutz ich - Platzersparnis! Beim UART hab ich das Gef"uhl, 
es ist einfacher direkt das Register-Interface zu benutzen.

von Tim  . (cpldcpu)


Lesenswert?

MarcVonWindscooting schrieb:
> Mit Basiscode meinst Du eine einfache Bibliothek f"ur die Peripherie?
> Und vielleicht noch einige Routinen zum Formatieren von Zahlen usw.?
> Wenn dass einfach bedeutet: einfache *.h und einfache "Ubersetzung
> eines Programms und (fast) einfache crt0 und (fast) einfache
> Linkerscripts und kein C++, dann hab ich das in der Schublade!

Im Grunde genau das. Und es muss natülich auch irgendwie dokumentiert 
sein.

Das mit Problem mit den LPCXpresso Standardeinstellungen:

-Selbst die harmlose CMSIS SystemInit() frisst etliche hundert Bytes, 
obwohl sie nichts nützliches macht. (Der IRC ist sowieso schon 
initialisiert). Ich habe in dem oben verlinkten code SystemCoreClock 
schon einfach durch ein Define ersetzt. Da kann man aber CMSIS auch 
gleich weglassen. NXP empfielt sowieso die ROM-Routinen für die 
Clock-Settings.
-Die LPC libs sind übel dokumentiert. Selbst im Source gibt es keine 
Funktionsbeschreibungen. Oder habe ich da etwas übersehen?
-cr_startup ist für einen größeren Prozessor gedacht.
-Es gibt einen Haufen von undurchsichtigen Abhängigkeiten.

MarcVonWindscooting schrieb:
> Ich hatte mir eigentlich mehr erhofft, von dem ROM-Routinen im LPC800.
> I2C, ja die benutz ich - Platzersparnis! Beim UART hab ich das Gef"uhl,
> es ist einfacher direkt das Register-Interface zu benutzen.

Vor allem gab es zum ROM ein komisches Erratum, dass es nicht mit null 
waitstates betrieben werden soll?

: Bearbeitet durch User
von Uli.R (Gast)


Lesenswert?

Fer T. schrieb:
> Oder was ist mit den XMC von Infinion? Super Chips aber nirgends
> erhältlich da die Autoindustrie da schon die ganze Produktion aufkauft
> ;)

Also zumindest sind die XMC Eval-Boars durchaus erhältlich:

http://shop.myavr.de/ARM-Produktlinie/XMC4500%20Relax%20Lite%20Kit.htm?sp=article.sp.php&artID=200120

http://shop.myavr.de/ARM-Produktlinie/XMC1100%20Boot%20Kit.htm?sp=article.sp.php&artID=200119

und die Controller gibts auch:

http://www.digikey.de/product-search/de?x=0&y=0&lang=de&site=de&KeyWords=XMC4500

Uli

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

MarcVonWindscooting schrieb:
> Man verwendet 'C' + __attribute__((...)) um die ersten 4 Pointer
> dahinzubekommen, wo sie sein m"ussen, nur um keinen ASM zu verwenden.

Ist keineswegs nötig.  Die Objektdateien werden vom Linker in der
Reihenfolge ihres Auftretens auf der Kommandozeile eingebunden.  Solange
die Startup-Datei also als erste steht (was der Compilertreiber immer
so macht), wird der darin enthaltene Code auch am Anfang der fertigen
Objektdatei platziert.  Da diese Datei lediglich eine einzige Tabelle
enthalten muss, gibt's da auch nichts umzuschichten durch den Linker.

Die Leutchen bei ARM haben sich schon was gedacht bei ihrem Konzept.
Es war ein Design-Ziel der Cortex-M-Produkte, dass man nicht mehr
zwinged Assembler benutzen muss.

von Uwe Bonnes (Gast)


Lesenswert?

Fer T. schrieb:
> Oder was ist mit den XMC von Infinion? Super Chips aber nirgends
> erhältlich da die Autoindustrie da schon die ganze Produktion aufkauft

Und dazu muss man für das Herunterladen der Datenblätter, User Manuals 
und Schaltpläne eine NDA abnicken. Würg...

von Marc P. (marcvonwindscooting)


Lesenswert?

Uli.R schrieb:

> und die Controller gibts auch:
>
> http://www.digikey.de/product-search/de?x=0&y=0&lang=de&site=de&KeyWords=XMC4500

aber halt bloss die GROSSEN, nicht die XMC1100. Kann man die eigentlich 
ohne 'DAVE' benutzen. Wie flasht man die? Vielleicht sogar unter Linux? 
Hab schon 2 mal im Manual gesucht, war jedesmal so schlau wie vorher...

von chris_ (Gast)


Lesenswert?

Die Parallax Propeller Leute haben es geschafft, mit nur einem I/O-Pin 
einen Sigma-Delta Wandler zu bauen.
Da der LPC800 keine ADC hat: gibt es so was?

von Lothar (Gast)


Lesenswert?

chris_ schrieb:
> Da der LPC800 keine ADC hat: gibt es so was?

Google: AN11329: Implementing sigma-delta ADC with LPC800 comparator

Fürs Grobe kann man es aber auch so machen: die Voltage-Ladder hat 32 
Stufen, also kann man direkt einen 5-bit ADC realisieren (für ein Poti 
reicht das):

    #define CMP_LAD_MAX     31

    for (n=CMP_LAD_MAX; n>0; n--)
    {
      // CMP voltage ladder value change
      *((unsigned long *) CMP_LAD) = (n<<(CMP_VAL_POS)) |
                                     1<<(CMP_LAD_ENABLE_BIT);

      // CMP result
      val = *((unsigned long *) CMP_CTRL);

      // CMP <> threshold ?
      if (val & (1<<(CMP_STATUS_BIT)))
      {
        d = n;
        break;
      }
    }

von chris_ (Gast)


Lesenswert?


von greg (Gast)


Lesenswert?

Naja, zum Poti auslesen reichen diese Hacks... aber sonst? Der fehlende 
ADC ist durchaus unschön.

von Lothar (Gast)


Lesenswert?

greg schrieb:
> Naja, zum Poti auslesen reichen diese Hacks... aber sonst? Der fehlende
> ADC ist durchaus unschön.

Du schreibst doch sonst immer man soll den minimalen uC nehmen. Der ist 
eben für Anwendungen die keinen ADC benötigen, gibt ja genügend. Die 
kleinen 8051 haben auch keinen.

von Cyblord -. (cyblord)


Lesenswert?

Lothar schrieb:
> greg schrieb:
>> Naja, zum Poti auslesen reichen diese Hacks... aber sonst? Der fehlende
>> ADC ist durchaus unschön.
>
> Du schreibst doch sonst immer man soll den minimalen uC nehmen. Der ist
> eben für Anwendungen die keinen ADC benötigen, gibt ja genügend. Die
> kleinen 8051 haben auch keinen.

Darum greifen die meisten dann zum Tiny85, der hat das alles. Darum ist 
der LPC800 auch so tot. Heute brauchen die typischen 
"Bastler-Controller" viel Peripherie.

von Tim  . (cpldcpu)


Lesenswert?

>> Du schreibst doch sonst immer man soll den minimalen uC nehmen. Der ist
>> eben für Anwendungen die keinen ADC benötigen, gibt ja genügend. Die
>> kleinen 8051 haben auch keinen.
>
> Darum greifen die meisten dann zum Tiny85, der hat das alles. Darum ist
> der LPC800 auch so tot. Heute brauchen die typischen
> "Bastler-Controller" viel Peripherie.

Das ist aber eine ziemlich unfundierte Aussage. Außer dem ADC hat der 
LPC800 deutlich bessere Peripherie als z.B. ein ATtiny85. Da liegen 
Welten dazwischen. Dank SCT und internem DAC ist der Aufbau von einem 
Sigma-Delta ADC  auch recht effizient.

Es war m.E. geplant, die LPC800 Serie auch mit ADC zu erweitern.

von greg (Gast)


Lesenswert?

Lothar schrieb:
> Du schreibst doch sonst immer man soll den minimalen uC nehmen.

Kann mich nicht dran erinnern. Ich hab nur behauptet, dass die Switch 
Matrix die Flexibilität erhöht und man so in manchen Fällen nur einen 
kleineren Controller benötigt.

von Marc P. (marcvonwindscooting)


Lesenswert?

cyblord ---- schrieb:
> Darum greifen die meisten dann zum Tiny85, der hat das alles. Darum ist
> der LPC800 auch so tot. Heute brauchen die typischen
> ...

Und ein paar andere greifen halt zu einem LPC1110/LPC1112. Gibt's 
ebenfalls in SOIC20 und hat den ADC (aber keine Switchmatrix, keinen 
SCT). Ich springe zwischen LPC800 und LPC1100 hin und her - die haben 
einiges gemeinsam.

von chris_ (Gast)


Lesenswert?

Oder wenn man DIP mag eben den LPC1114FN28 ;-)

Hier habe ich mal mit einem ein wenig experimentiert:
http://www.hobby-roboter.de/forum/viewtopic.php?f=5&t=140


>Fürs Grobe kann man es aber auch so machen: die Voltage-Ladder hat 32
>Stufen, also kann man direkt einen 5-bit ADC realisieren (für ein Poti
>reicht das):
>
>    #define CMP_LAD_MAX     31
>
>    for (n=CMP_LAD_MAX; n>0; n--)

Um auch bei einem ARM ein wenig Rechenzeit zu sparen:
Via SAR ( http://www.vias.org/mikroelektronik/adc_succapprox.html ) 
sollte es in 5 Schritten gehen.

von Lothar (Gast)


Lesenswert?

chris_ schrieb:
> Um auch bei einem ARM ein wenig Rechenzeit zu sparen: Via SAR

Gute Lösung :-)

von Martin M. (capiman)


Lesenswert?

Hinweis noch auf diesen Fehler:
(falls jemand noch alte Sourcen in Verwendung hat)

http://www.lpcware.com/content/bugtrackerissue/lpc800-acmp-ladder-selection-value-misaligned

: Bearbeitet durch User
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.