Forum: Mikrocontroller und Digitale Elektronik LPC2106 + Silabs CP2200


von Nik B. (nikbamert)


Lesenswert?

Hallo,

ich möchte demnächst mal auf ARM umsteigen, da ich ordentlich mehr Ram 
benötige, als die AVRs bieten.
Der LPC2106 bietet sich geradezu an mit seinen 64kbRam und dennoch 
kleinem Gehäuse. Er bietet keinen externen Daten/Adressbus  und auch 
keine Fast GPIOs, und darauf bezieht sich auch meine Frage.

Denkt ihr, dass ich dank den 32bits und dem grossen internen Ram einen 
grossen Geschwindigkeitsvorteil habe zu sagen wir mal ATmega2561 + 
CP2200?
(Der mega2561 bietet einen externen Adressbus.)

Es ist mir klar, dass man einen TCP Stack auch für 8bitter wie einen 
Atmega mit wenig Sram schreiben kann, aber die Geschwindigkeit leidet 
schon ziemlich.

Da TCP viele 16 und 32 bit Operationen benötigt, denke ich eigentlich, 
dass es schneller als die Atmega Lösung werden müsste, bin mir aber 
nicht sicher.

Leider finde ich nirgends Befehlsausführzeiten oder eine Angabe darüber, 
wie schnell man über die langsamen GPIOS des LPC2106 denn Daten 
rausschieben kann. Wie lange bräuchte ich also konkret um ein Byte 
anzulegen und es per /WR Puls in den Ethernetcontroller zu befördern?

Noch eine Bemerkung am Rande: Das Projekt ist rein privat, es geht nicht 
darum, dass ich in irgendeiner Arbeit einen möglichst hohen 
Datendurchsatz hinkriegen MUSS(aber ich möchte natürlich:-).
Wäre dem so, dann würde ich einen Controller mit integriertem MAC 
nehmen. Nun haben aber ebendiese LPCs dann ziemlich viele Pins und die 
benötigten externen PHYs muss man auch erst mal irgendwo besorgen 
können. Ich möchte das ganze aber zu Hause ätzen+aufbauen, also wäre ich 
mit einem kleinen Gehäuse glücklicher als mit einem TQFP144-Monster :-)

Nik

von Andreas K. (a-k)


Lesenswert?

Entscheidend für die Performance von TCPIP ist zunächst der TCPIP-Stack 
selbst. Mit uIP und TCP ist das beispielsweise hoffnungslos, egal mit 
welcher CPU.

Die GPIO-Performance der ältesten LPC2000 lässt zu wünschen übrig, der 
I/O-Bus bremst sie aus. Nur Devices mit FIOxxx Portadressen sind 
wirklich schnell, d.h. der LPC2106 fällt dafür schonmal aus.

Der CP2200 kann nur 10Mbps, also mehr als 1MB/s ist damit ohnehin nicht 
drin. Mit DM9000 (Olimex-Modul) geht mehr.

von Nik Bamert (Gast)


Lesenswert?

Der CP2200 ist in der Tat nur zu 10Mbps fähig, aber die möchte ich 
zuerst einmal überhaupt hinbringen ;-).
Auf dem AVR schaffe ich im Moment so etwa 80kb/sec mit TCP. Allerdings 
habe ich gerade mal soviel implementiert, damit es läuft. Packet 
Retransmission ginge zwar auch, aber dann kann ich beim AVR nur arg 
kleine Paketchen verschicken...

Ich glaube ich hole mir vorerst mal den 2106 und hänge über SPI den 
altbekannten enc28j60 dran. Später kann ich dann immer noch auf einen 
Controller mit DMA oder dem DM9000 umsteigen. Aber ich denke kaum, dass 
mein TCP Stack von Anfang an 100mbit bringen wird, daher beginne ich 
lieber klein ;-)

von Nik Bamert (Gast)


Lesenswert?

Wenns einen kleinen ARM( < TQFP100) mit integriertem MAC+PHY gäbe, den 
ich als Normalsterblicher auch beziehen kann, wäre sowas natürlich auch 
toll,
aber ich finde nur welche mit integriertem MAC.
Weshalb wird das PHY eigentlich nicht auch gleich immer integriert?

von Andreas K. (a-k)


Lesenswert?

> Weshalb wird das PHY eigentlich nicht auch gleich immer integriert?

Traditionell wohl auch, weil dieser Teil medienabhängig ist, Kupfer vs. 
Glas. Mag auch mit unterschiedlicher Technik zusammenhängen, immerhin 
taktet ein 100Mbps MAC mit 25MHz, der PHY dazu mit 125MHz.

Mit ENC28J60 und UDP habe ich einen 16MHz Mega32 zu ca. 150KB/sec 
überreden können, wobei der dafür seine Daten dazu aus einem SPI-Flash 
holt. Mit TCP waren es nur um die 5KB/sec, was am Verfahren von uIP 
liegt, nicht an der Hardware.

von Andreas K. (a-k)


Lesenswert?

> Ich glaube ich hole mir vorerst mal den 2106 und hänge über SPI den
> altbekannten enc28j60 dran.

Achte aber drauf, dass du die aktuelle Chip-Revision vom ENC kriegst. 
Vorgängerversionen (in meinen beiden Olimex-Modulen aus dem hiesigen 
Shop) benötigen für zuverlässigen Betrieb offiziell einen SPI-Takt von 
mindestens 8MHz. Das SPI vom LPC2109 kann aber nur maximal 7,5MHz.

von Nik Bamert (Gast)


Lesenswert?

>Das SPI vom LPC2109 kann aber nur maximal 7,5MHz.

Ach, die NXP Datenblätter...habe ich übersehen :-) Vielleicht wirds doch 
gleich etwas grösseres...ich schau mich mal weiter um. Eigentlich 
brauche ich "nur" 16-32kb Flash, schnelles SPI und vielleicht DMA. Und 
das ganze in einem kleinen Gehäuse. Vielleicht ist der SAM7S128 von 
Atmel was für mich, ich les mich mal schlau.

>Traditionell wohl auch, weil dieser Teil medienabhängig ist,
>Kupfer vs. Glas. Mag auch mit unterschiedlicher Technik
>zusammenhängen, immerhin taktet ein 100Mbps MAC mit 25MHz,
>der PHY dazu mit 125MHz.

Schade eigentlich, irgendwie müsste doch intern mit PLL lösbar sein.(?)

>Mit ENC28J60 und UDP habe ich einen 16MHz Mega32
>zu ca. 150KB/sec überreden können, wobei der dafür seine
>Daten dazu aus einem SPI-Flash holt.

Das SPI-Flash bremst aus! (Glaube ich ;-) Ich benutze im Moment die 
selbe Kombination(enc+mega32+UDP) allerdings schreibe ich paralell auf 
eine Harddisk. Momentan sind so etwa 370kByte/s drin, mit dem 
ATmega644@20Mhz warscheinlich noch mehr :-)

von Andreas K. (a-k)


Lesenswert?

LPC2103. 32KB Flash, 48 Pins, vielleich sogar mal im schon lang 
versprochenen PLCC44 Gewand. Das neue SPI-Modul scheint recht fix zu 
sein, mit FIFO, und kann kurz quergelesen anscheinend bis PCLK/2.

von Nik Bamert (Gast)


Lesenswert?

Upps, eigentlich wollte ich oben 16-32kB Ram schreiben. Ich denke 64kB 
Flash / 32kB Ram sollten es schon sein.
Ich denke, der LPC2136 wäre nicht schlecht. Vom Flash her leider völlig 
überdimensioniert, soviel bräuchte ich eigentlich nicht. Aber das LQFP64 
Gehäuse sollte ich noch löten können. :-)

Heute Mittag wälze ich nochmal die Datenblätter...

 -schnelles SPI (20Mhz reicht aber, mehr kann der ENC eh nicht)
 -32kb Ram oder mehr
 -64kb Flash oder mehr
 -maximal LQFP64
 -DMA für RAM<->SPI
 -(bugfreie) schnelle I/O's
  oder stattdessen: Ein externer Datenbus,
  aber das haben die "kleinen" tqfp64 ja nicht.
  Für eine Festplatte wär das schon ganz praktisch...

von opacer (Gast)


Lesenswert?

Was hällst du vom AT91SAM7X... ? Da hast du dann auch direkt Ethernet 
integriert. Ok ist LQFP 100, aber auch das ist handhabbar. Es gibt an 
sonsten ja auch noch SMD-Adapter den du nutzen könntest.

ARM mit externem Bus fängt bei LQFP128 an ... (soweit ich weis)

von Michael (Gast)


Lesenswert?

Oder was hältst du von einem ARM Cortex M3 von Luminary?
z.B. den  LM3S6753:

"The Stellaris® LM3S6753 microcontroller is based on the ARM® Cortex™-M3 
controller core operating at 50 MHz, with 128 kB single-cycle flash, 64 
kB single-cycle SRAM, 10/100 Ethernet MAC/PHY,..."

Viele Grüße
Michael

von Michael (Gast)


Lesenswert?

Achja,

das Gehäuse ist PQFP100, dafür brauchst du aber auch keinen externen 
Ethernet-Controller. Andere Varianten (weniger/mehr Flash und RAM, ADC 
usw.) gibt es ebenfalls, das Gehäuse bleibt aber immer gleich.

von Andreas K. (a-k)


Lesenswert?

Controller TQFP64/0,50 mit internem Ethernet gibt es schon, sogar der 
PHY ist da drin. Nur beim RAM wird's dünner, 8KB für Ethernet. Ich trau 
mich nur nicht zu schreiben wo (Tip: in der Nähe des ENC28J60).

von Nik Bamert (Gast)


Lesenswert?

>mich nur nicht zu schreiben wo
Hmmm welche MICROCHIP könnte das bloss sein... ;-)

Prinzipiell habe ich nichts gegen Microchip, aber leider gibts dafür ja 
keinen GCC...

@Michael

Die Cortex M3 sehen sehr interessant aus! Farnell hat den leider nicht, 
ich frage mal bei CSD, aber warscheinlich wird es schwierig den einfach 
mal so zu bekommen.

Werden die Cortex M3 eigentlich von irgendeinem Compiler unterstützt,
der nichts kostet?...Das wär ideal.

von Michael (Gast)


Lesenswert?

Ich hab den ARM Cortex bei Digikey gekauft, da gibts den auf jeden Fall. 
IN Deutschland wüsste ich jetzt spontan nicht.

Als Compiler kannst du neben den ganzen Kommerziellen auch WinARM 
einsetzten. Hier sind einfache Beispiele dazu zu finden:
http://www.siwawi.arubi.uni-kl.de/avr_projects/arm_projects/index_cortex.html

Michael

von Michael (Gast)


Lesenswert?


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.