LPC11Cxx: C_CAN für "normales" CAN nutzbar?

Gast #2652165
Lesenswert?

Hallo, sind die LPC11Cxx als vollwertiger Ersatz für z.B. die 
Kombination ATMEGA, MCP2515 und MCP2551 nutzbar? Hätte ja einen enormen 
Charme, alles in einem Chip. Unter C_CAN-Beschreibungen konnte ich mir 
das nun leider nicht rauslesen. CANopen driver sind mit drin; das Ganze 
scheint ja eine eigene Protokolldefinition zu sein. Aber kann man das 
auch wie oben gefragt nutzen?

Der Hit wäre ja noch, wenn auch der Transceiverteil mit 3.3 V auskommen 
würde.
Gast #2652242
Lesenswert?

A. K. schrieb:
> Man sollte nur beachten, dass ein zerblitzter 8-beiniger MCP2551
> leichter austauschbar ist als ein LQFP48.

Ja, dass stimmt natürlich.
Ist aber fast immer der Nachteil wenn man es kompakt haben möchte.
LQFP finde ich noch gut von Hand zu löten, ab QFN wirds eklig.

Ich denke mal die 2 Punkte, Platz und Preis, sind allerdings ein 
wichtiger Punkt. Ein Atmega alleine kostet ja schon so viel wie ein 
LPC11C.
Der MCP2515 und MCP2551 sind dann auch nochmal 1,50EUR.
Vom Platz ganz zu schweigen.
Hätte ich gerade was mit CAN vor, würde ich mir die echt mal näher 
anschauen.
#2652343
Lesenswert?

die Dinger haben einen CAN- und CANOpen-Treiber im Rom. Muss man aber 
nicht nutzen. Es geht auch über normales Register setzen.
Die Rom-Routinen werden in etwa so angesprochen:
1
  /* Send a simple one time CAN message */
2
  msg_obj.msgobj  = 0;
3
  msg_obj.mode_id = 0x345;
4
  msg_obj.mask    = 0x0;
5
  msg_obj.dlc     = 4;
6
  msg_obj.data[0] = 'T';  //0x54
7
  msg_obj.data[1] = 'E';  //0x45
8
  msg_obj.data[2] = 'S';  //0x53
9
  msg_obj.data[3] = 'T';  //0x54
10
 (*rom)->pCAND->can_transmit(&msg_obj);

Der Transciverteil möchte aber seine 5V haben.

Unter Beitrag "Re: Problem mit der Beschaltung eines CAN-Knoten" habe ich mal 
eine kleine Platine entwickelt die ich hier zum Basteln verwende. Falls 
jemand an den Eagle-Dateien interesse hat bitte pm.
Gast #2653087
Lesenswert?

Die LPC11Cxx sind mir auch schon als äußerst interessant aufgefallen. 
Mit 32 kB Flash, 8 kB RAM, integriertem Transceiver, bis zu 50 MHz, 
relativ kleinem Gehäuse LQFP 48 und dem Preis (zumindest bei 
Futureelectronics, bei den Standarddistributoren eher nicht) echt gut. 
Mit Adapterplatine wären die auch noch ganz gut einsetzbar, sofern man 
keine eigenen Platinen ätzen oder Einzelstücke bauen will.

Was ich beim Überfliegen des User Manuals allerdings noch nicht 
verstanden hatte war das GPIO-Handling. Das scheint (zumindest auf den 
ersten Blick) ganz anders als sonst zu sein; irgendwas mit MASK-register 
in einem Addressraum ...?
#2653129
Lesenswert?

Das habe ich so auch noch nirgends wo anders gesehen.

Man kann das Portregister wie bei den AVRs auch ganz normal beschreiben
1
LPC_GPIO0->DATA|=(1<<bitPos);

Durch folgenden Aufruf kann man den Pin am Port unabhängig vom Zustanbd 
der anderen Pins setzen und rücksetzen in einem Rutsch. Dafür haben die 
LPC17xx bzw. STM32 SET und CLR Register.
1
// Set 
2
LPC_GPIO0->MASKED_ACCESS[(1<<bitPosi)] = (1<<bitPosi);
3

4
// Clr 
5
LPC_GPIO0->MASKED_ACCESS[(1<<bitPosi)] = (0<<bitPosi);
Gast #2655648
Lesenswert?

Lord Helmchen schrieb:
> Schade nur, daß die LPC11Cxx keine sleep-modes haben.

Hm, wenn ich aber in die Manuals reinschaue, heißt es da:
1
 Power control:
2
* Integrated PMU (Power Management Unit) to minimize power consumption
3
during Sleep, Deep-sleep, and Deep power-down modes.
4
* Three reduced power modes: Sleep, Deep-sleep, and Deep power-down.
5
* Processor wake-up from Deep-sleep mode via a dedicated start logic using
6
13 of the GPIO pins

http://www.nxp.com/documents/leaflet/75017050.pdf
http://www.nxp.com/documents/data_sheet/LPC11CX2_CX4.pdf


Stromverbrauch wird auch für die verschiedenen Modi angegeben:
1
system clock = 12 MHz
2
VDD = 3.3 V
3
- 3 mA
4
system clock = 50 MHz
5
VDD = 3.3 V
6
- 9 mA
7
Sleep mode; 
8
system clock = 12 MHz
9
VDD = 3.3 V
10
- 2 mA
11
Deep-sleep mode; 
12
VDD = 3.3 V
13
- 6 uA
14
Deep power-down mode; 
15
VDD = 3.3 V
16
- 220 nA

Grüße
Gast #2655669
Lesenswert?

In der Parametric Search:
http://www.nxp.com/ps/#71499
Bin ich einfach mal auf ein Datenblatt des LPC11C22 bzw. 24 gegangen.
Nur die haben ja den Tranciever schon drin.

Und da steht das mit den Sleepmodes:
http://www.nxp.com/documents/data_sheet/LPC11CX2_CX4.pdf
1
 Power control
2
The LPC11Cx2/Cx4 support a variety of power control features. There are three special 
3
modes of processor power reduction: Sleep mode, Deep-sleep mode, and Deep 
4
power-down mode. The CPU clock rate may also be controlled as needed by changing 
5
clock sources, reconfiguring PLL values, and/or altering the CPU clock divider value. This 
6
allows a trade-off of power versus processing speed based on application requirements. 
7
In addition, a register is provided for shutting down the clocks to individual on-chip 
8
peripherals, allowing fine tuning of power consumption by eliminating all dynamic power 
9
use in any peripherals that are not required for the application. Selected peripherals have 
10
their own clock divider which provides even better power control.

Grüße
Gast #2655683
Lesenswert?

Ich hab vor lauter Schreck auch mal schnell den Keil mit dem 
LPC11C14-Example angeworfen; und dort git es auch deep-sleep etc.
Also scheint es die sleep-modes dort zu geben. Wäre ja eigentlich auch 
ein Hammer, wenn nicht.
Dann müssen diese Power Profiles was anderes sein als ich dachte. Puh!
#2655726
Lesenswert?

Da habt ihr sicher was falsch verstanden. Da wo die C-Typen den 
CAN-Treiber im Rom haben, wird der Platz bei den Normalen Typen für 
Rom-Routinen in der Art:
1
    (*rom)->pPWRD->set_power(command,result);   //set system power
2
    (*rom)->pPWRD->set_pll(command,result);     //set the PLL

benutzt. Eine nette Zugabe aber nichts was nicht auch mit den Registern 
geht.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren