Forum: Mikrocontroller und Digitale Elektronik ARM in DIP: CM0 lpc1114fn28 ist da und blinkt!


von Roland H. (batchman)


Lesenswert?

Ich hatte kürzlich bei Arrow ein paar bestellt,
und nun sind die Dinger tatsächlich da.

Bei dem Aufbau auf dem Steckbrett bin ich nach folgender Anleitung 
vorgegangen: 
http://www.meatandnetworking.com/tutorials/lpc1114fn28-with-open-source-tools/

Beim Aufbau auf dem Steckbrett wurden folgende Dinge geändert:

- Sicherheitshalber 1x 100nF zwischen VDD und VSS.

- Außerdem wurde der "boot loader pin" PIO0_1 per Pull up auf VDD 
geschaltet, ein Taster zieht ihn dann für den Eintritt in den "boot 
loader mode" auf GND. Die oben genannte Beschreibung zieht den Pin auf 
GND, so dass der Widerstand für das normale Ablaufen gezogen werden 
muss.

Hält man nun den Taster für den "boot loader pin" gedrückt, und betätigt 
den Reset-Taster, dann wird der "boot loader mode" gestartet.

Das Blink-Programm aus lief sofort,
mit dem lpc21isp hatte ich ein paar Probleme, irgendwie wollte der keine 
Dateien einlesen.

Folgende Stelle habe ich geändert:
1
@@ -1962,17 +1974,28 @@ static int LoadFiles1(ISP_ENVIRONMENT *IspEnvironment, const FILE_LIST *file)
2
 {
3
     int ret_val;
4
 
5
-    if(!file || !file->prev)
6
+    if(!file)
7
     {
8
-        return -1;
9
+      printf("rh Load files 1 a: return 0\n");
10
+      return 0;
11
     }
12
+    printf("rh File name: [%s]\n", file->name);
13
 
14
-    DebugPrintf( 3, "Follow file list %s\n", file->name);
15
-
16
-    ret_val = LoadFiles1( IspEnvironment, file->prev);
17
-    if( ret_val != 0)
18
+#ifdef rh_excluded
19
+    if(!file->prev)
20
     {
21
-        return ret_val;
22
+      printf("rh Load files 1 b: return 0\n");
23
+      return 0;
24
+    }
25
+#endif
26
+
27
+    if (file->prev != NULL) {
28
+      DebugPrintf( 3, "Follow file list %s\n", file->name);
29
+      ret_val = LoadFiles1( IspEnvironment, file->prev);
30
+      if( ret_val != 0)
31
+       {
32
+         return ret_val;
33
+       }
34
     }
35
 
36
     DebugPrintf( 3, "Attempt to read File %s\n", file->name);

Damit lädt er auf alle Fälle zumindest genau eine Datei richtig.

Im Vergleich zu einem atmega328p ist der Chip viel breiter, der interne 
RC mit 12 MHz funktioniert, der "boot loader" mit 115200 ebenso.

von ansel (Gast)


Lesenswert?

Pics or it didn't happen :-)

Sobald sie bei meinen üblichen Quellen auftauchen, gibt's im Markt-Forum 
zwei Stangen DIP-Atmegas mehr...

von Lothar (Gast)


Lesenswert?

Bild ist z.B. hier:

Beitrag "DIP-ARM Samples von Arrow"

Aber was soll ich mit "zwei Stangen DIP-Atmegas" machen :-)

von Roland H. (batchman)


Angehängte Dateien:

Lesenswert?

ansel schrieb:
> Pics or it didn't happen :-)

You're so damned right :-)

Zwei Beweise im Anhang, die Auflösung sollte genügen, um die 
Beschriftung entziffern zu können.

Im Vergleich zu einem atmega328p gibt es folgende Vor- und Nachteile:

- Breiteres Gehäuse; wird dadurch evtl. kompensiert, da der intern RC 
mit 48 MHz betrieben werden kann. Für die UART-Ausgabe war die 
Genauigkeit ausreichend. U. u. entfällt somit die Notwendigkeit für 
einen externen Quarz.

- Fünf Timer: Systick, 2x16-Bit, 2x32-Bit

- 4kb RAM statt 2kb; m. E. selbst unter Berücksichtung des Alignments 
bleibt da mehr übrig.

- In die 32kb Flash sollte wesentlich mehr thumb2-Code passen, 
verglichen mit der AVR-Variante. Beim CM3 ist es definitiv so, für CM0 
muss ich noch Zahlen ermitteln.

- 48 MHz mit internem RC

Und irgendwie geht das noch weiter: Es soll einen ARM in DIP8 geben.

Beitrag "Cortex-M0+ im DIL8 von NXP."

von troll (Gast)


Lesenswert?

> 3,6 MB, 53 Downloads
> 3,8 MB, 70 Downloads

Waak! Bildformate!

von Roland H. (batchman)


Lesenswert?

troll schrieb:
> Waak! Bildformate!

Nix Waak.

Das war bewusst. Wie willst Du sonst die Beschriftung erkennen?

Troll Dich :-)

von Martin K. (maart)


Angehängte Dateien:

Lesenswert?

Roland H. schrieb:
> troll schrieb:
>> Waak! Bildformate!
>
> Nix Waak.
>
> Das war bewusst. Wie willst Du sonst die Beschriftung erkennen?
>
> Troll Dich :-)

DAS ist jetzt bitte nicht dein Ernst, oder?
Man soll die Beschriftung und nicht deine tolle Tapete erkennen.
HONK!

von Roland H. (batchman)


Lesenswert?

Noch ein paar Daten zur heutigen Portierung einer SW auf den CM0:

- Innerhalb der lpc-Reihe (1114, 1343, 1769, 2103) sind die 
UART-Register für "Standard-UART" async 8N1 gleich.

- GPIO, Timer, ADC sind nahezu 1:1 zum lpc1343 (zumindest für meine 
Belange).

Die größten Änderungen betreffen die "Hard fault"-Behandlung, da hier 
der CM0 deutlich weniger als ein CM3 oder CM4 zu bieten hat.

> - In die 32kb Flash sollte wesentlich mehr thumb2-Code passen,
> verglichen mit der AVR-Variante. Beim CM3 ist es definitiv so, für CM0
> muss ich noch Zahlen ermitteln.

... die wie folgt aussehen (gleiche Applikation, gleiche GCC-Version):
1
  text     data      bss      dec      hex  filename
2
  28260       44     1204    29508     7344  build/lpc1114-4.6.2.elf
3
  28448       40     1368    29856     74a0  build/lpc1343-4.6.2.elf
4
  46388      229     1114    47731     ba73  build/atmega644-4.6.2.elf

Schon etwas dramatisch.

von klausr (Gast)


Lesenswert?

Roland H. schrieb:
> Schon etwas dramatisch.

Allerdings. Da scheinen die 32 bit Register + 32 bit Operationen doch 
gewaltig im Vorteil zu sein. Zumal die Chips deutlich billiger sind als 
die AVRs.
http://components.arrow.com/part/detail/0323_04861371
Wenn man 105 nimmt, kostet einer excl. 1,04 €, mit Versand und Steuer ca 
1,40 €. Wir sollten eine Sammelbestellung organisieren, ich würde 10 
nehmen!
Liefert Arrow auch an Leute ohne UStID?

von sample (Gast)


Lesenswert?

Roland H. schrieb:
> Das war bewusst. Wie willst Du sonst die Beschriftung erkennen?
>
> Troll Dich :-)

Du Vollmond
selten so was dummes im Forum gelesen.

von Steffen H. (Firma: www.shotech.de) (mc_sho) Benutzerseite


Lesenswert?

@ klausr :

ich habe mir diese Woche den LPC1114FN28 bei Arrow bestellt. Die müssten 
nächste Woche bei mir sein. Ich könnte noch welche abgeben, wenn wer 
Interesse hat. Ich hatte eine etwas größere Menge, da ich für Bekannte 
mitbestellt habe. Ich gebe die für 1,35 EUR/Stück ab.

Bei Interesse, einfach eine PN an mich.

Gruss
Steffen

von lpc1114Bastler (Gast)


Angehängte Dateien:

Lesenswert?

LPC1114FN28 läuft bei mir mit SWD-Adapter. Verwende ein STM32F4 
Discovery Board (ca. 15 Euro) und ein leicht gepatchtes Openocd (0.6.1). 
Kann darüber sehr schnell flashen und mit gdb debuggen. Tolles Spielzeug 
für wenig Geld!

Konfigurationsdatei für Openocd im Anhang.

Openocd Patch (notwendig, da LPC114 nur 4k RAM hat):

--- openocd-0.6.1/src/flash/nor/lpc2000.c  2012-10-07 10:15:36.000000000 
+0200
+++ openocd-0.6.1.patch/src/flash/nor/lpc2000.c  2012-11-14 
21:22:58.243814835 +0100
@@ -217,6 +217,7 @@
   } else if (lpc2000_info->variant == lpc1700) {
     switch (bank->size) {
       case 32 * 1024:
+        lpc2000_info->cmd51_max_buffer = 1024;
         bank->num_sectors = 8;
         break;
       case 64 * 1024:

von Steffen H. (Firma: www.shotech.de) (mc_sho) Benutzerseite


Lesenswert?

die LPC1114FN28 sind heute bei mir eingetroffen. Ich hätte noch welche 
abzugeben, wenn Interesse besteht. Der Preis von 1,35 EUR/Stück bleibt.
Alle die mir schon geschrieben haben, bekommen noch eine Info.

Gruss
Steffen

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.