EmbeddedRelated.com
Forums
Memfault Beyond the Launch

comparing 9S12 and S12X to Microchip PIC18

Started by Carl Ungvarsky April 16, 2009
Hi,

I have a design that currently uses a Microchip PIC18 MCU. I need to do a major revision of the design and I have the choice to go to the next larger PIC series, the PIC24, or another chip. I want to consider Freescale again.



I'll look at Freescale's parts selection matrix... but if someone is familiar with how the latest 9S12 or S12X chips stack up against these features, please comment.



PIC18

Vcc as low as 2V

low power modes, sleep current < 10uA

single chip system available

up to 96K internal flash

a few K of RAM

some EEPROM

CAN controller available

in-circuit program and debug using ICSP port and debugger such as ICD2

(ICSD requires 2 signal pins and a Vpp pin)

Internal 10-bit ADC

up to 40 MHz ext osc, 10 MIPS max





The best devices in this family for my application are the PIC18F4680 - PIC18F4685.

These have

64K program flash (4680) or

96K program flash (4685)

3328 bytes RAM ---> rather small, would prefer say 8K

CAN engine (works well)

single USART (like SCI port) ---> would prefer two

single SPI

single I2C

about 36 I/O ---> I need 8 or 16 more

44 pin TQFP package

$6.50 (4680, qty 1), or $9.00 (4685, qty 1)





The PIC24 has enough differences that the transition from PIC18 to PIC24 is non-trivial. That's why I'm willing to consider another chip maker.

Thanks for your comments

Carl

_________________________________________________________________
Windows Live: Life without walls.
http://windowslive.com/explore?ocid=TXT_TAGLM_WL_allup_1b_explore_042009



Hi,

I use 9s12XDP512CAL (112 pins), with Imagecraft ICC12 compiler, and NoIce
debugger with USB BDM.
Very nice configuration.
Very easy to write very big programs with it in C or assembly (I prefer C
!!!).
Very easy to download program into flash with NoIce, then debug in C or
assembly language, put breakpoint, looking at datas, arrays, structs, ...

Very nice processor :
- XGate co-processor, very interesting for background routines (I use it for
real time clock, transmit/receive on serial SCI). Funny to write an XGate
thread and to see that thread running even in step-by-step debugging !
- 512 K Flash, with page system
- 12 K RAM directly used by the main CPU, 32 K by using Ram page system (32
K full used by XGate)
- PLL
- 6 serial communication interface (asynchronous interface). I use one of
them at 375 KBauds with XGate receiving at that rate
- 16 analog inputs
- timers, PWM
- serial peripheral interface
- some CAN bus, but I don't use them
- 2 I2C bus
- and I'm afraid I forgot some things...

Imagecraft and NoIce is a very good configuration, not expensive.
I use this processor with a 12 Mhz quartz, and, using PLL, at 24 Mhz without
problem.

Hope this help.

Joel

-----Message d'origine-----
De: 6... [mailto:6...] De la part de
Carl Ungvarsky
Envoy jeudi 16 avril 2009 17:40
: 6...
Objet: [68HC12] comparing 9S12 and S12X to Microchip PIC18
Hi,

I have a design that currently uses a Microchip PIC18 MCU. I need to do a
major revision of the design and I have the choice to go to the next larger
PIC series, the PIC24, or another chip. I want to consider Freescale again.



I'll look at Freescale's parts selection matrix... but if someone is
familiar with how the latest 9S12 or S12X chips stack up against these
features, please comment.



PIC18

Vcc as low as 2V

low power modes, sleep current < 10uA

single chip system available

up to 96K internal flash

a few K of RAM

some EEPROM

CAN controller available

in-circuit program and debug using ICSP port and debugger such as ICD2

(ICSD requires 2 signal pins and a Vpp pin)

Internal 10-bit ADC

up to 40 MHz ext osc, 10 MIPS max





The best devices in this family for my application are the PIC18F4680 -
PIC18F4685.

These have

64K program flash (4680) or

96K program flash (4685)

3328 bytes RAM ---> rather small, would prefer say 8K

CAN engine (works well)

single USART (like SCI port) ---> would prefer two

single SPI

single I2C

about 36 I/O ---> I need 8 or 16 more

44 pin TQFP package

$6.50 (4680, qty 1), or $9.00 (4685, qty 1)





The PIC24 has enough differences that the transition from PIC18 to PIC24 is
non-trivial. That's why I'm willing to consider another chip maker.

Thanks for your comments

Carl

_________________________________________________________________
Windows Live: Life without walls.
http://windowslive.com/explore?ocid=TXT_TAGLM_WL_allup_1b_explore_042009



Joel,

thank you for this information.

I used the Imagecraft ICC11 and ICC12 for years and I liked them.



The XGate could be very useful for me. Some questions:

1) How much program memory is on a single page?



2) Does the XGate have its own program memory, separate from the main MCU?



3) I would like to do this with the XGate:

a. main core develops messages, and passes messages to the XGate

b. XGate handles sending message out SCI port and checking for errors

c. XGate handles recognizes SCI RX interrupt, and receives & stores incoming serial message

d. XGate passes complete received serial message to main core

Is this possible to do using the XGate?



4) How do you debug the XGate? Using the same debugger as is used for the main core?



Thanks

Carl

To: 6...
From: j...@free.fr
Date: Thu, 16 Apr 2009 18:53:57 +0200
Subject: RE: [68HC12] comparing 9S12 and S12X to Microchip PIC18

Hi,

I use 9s12XDP512CAL (112 pins), with Imagecraft ICC12 compiler, and NoIce
debugger with USB BDM.
Very nice configuration.
Very easy to write very big programs with it in C or assembly (I prefer C
!!!).
Very easy to download program into flash with NoIce, then debug in C or
assembly language, put breakpoint, looking at datas, arrays, structs, ...

Very nice processor :
- XGate co-processor, very interesting for background routines (I use it for
real time clock, transmit/receive on serial SCI). Funny to write an XGate
thread and to see that thread running even in step-by-step debugging !
- 512 K Flash, with page system
- 12 K RAM directly used by the main CPU, 32 K by using Ram page system (32
K full used by XGate)
- PLL
- 6 serial communication interface (asynchronous interface). I use one of
them at 375 KBauds with XGate receiving at that rate
- 16 analog inputs
- timers, PWM
- serial peripheral interface
- some CAN bus, but I don't use them
- 2 I2C bus
- and I'm afraid I forgot some things...

Imagecraft and NoIce is a very good configuration, not expensive.
I use this processor with a 12 Mhz quartz, and, using PLL, at 24 Mhz without
problem.

Hope this help.

Joel

-----Message d'origine-----
De : 6... [mailto:6...] De la part de
Carl Ungvarsky
Envoy: jeudi 16 avril 2009 17:40
: 6...
Objet : [68HC12] comparing 9S12 and S12X to Microchip PIC18

Hi,

I have a design that currently uses a Microchip PIC18 MCU. I need to do a
major revision of the design and I have the choice to go to the next larger
PIC series, the PIC24, or another chip. I want to consider Freescale again.

I'll look at Freescale's parts selection matrix... but if someone is
familiar with how the latest 9S12 or S12X chips stack up against these
features, please comment.

PIC18

Vcc as low as 2V

low power modes, sleep current < 10uA

single chip system available

up to 96K internal flash

a few K of RAM

some EEPROM

CAN controller available

in-circuit program and debug using ICSP port and debugger such as ICD2

(ICSD requires 2 signal pins and a Vpp pin)

Internal 10-bit ADC

up to 40 MHz ext osc, 10 MIPS max

The best devices in this family for my application are the PIC18F4680 -
PIC18F4685.

These have

64K program flash (4680) or

96K program flash (4685)

3328 bytes RAM ---> rather small, would prefer say 8K

CAN engine (works well)

single USART (like SCI port) ---> would prefer two

single SPI

single I2C

about 36 I/O ---> I need 8 or 16 more

44 pin TQFP package

$6.50 (4680, qty 1), or $9.00 (4685, qty 1)

The PIC24 has enough differences that the transition from PIC18 to PIC24 is
non-trivial. That's why I'm willing to consider another chip maker.

Thanks for your comments

Carl

__________________________________________________________
Windows Live: Life without walls.
http://windowslive.com/explore?ocid=TXT_TAGLM_WL_allup_1b_explore_042009



Carl,

About XGate :
You can use Flash or RAM for XGate. If in RAM, your S12 code have of course
to copy code from flash to RAM. I use XGate in flash. The 2 threads I wrote
are on a single page... I don't understand your question...

For me, Xgate uses pages 0xE0 and 0xE1, and the code for S12 begins at page
0xE2. Compiler options do that for me. The CPU I use is 9S12XDP512CAL.

Be careful, because XGate works when S12 accesses RAM, so a S12 code like
this:
while (cond) ; // just wait the end of condition
freeze the XGate, because there are to few RAM access. I saw that with my
RTI thread.

The threads I wrote for XGate are
- RTI thread, in order to maintain a real time clock calendar,
chronometer...
- SCI thread at 38400 bauds
- SCI thread, in order to receive (just receive) data at 375 KBauds

In my projects, I use SCI in 2 cases :
- 38.4 KBauds between main CPU and display CPU
- 375 KBauds between 2 main CPUs
- 31.5 KBauds (Midi interface)
I plan in a next future to write threads for these SCIs, so, it seems be the
same project for you.
Just, for me, it seems transmit at 375 KBauds needs the all power of the
XGate or S12. Fortunately, I don't transmit all the time at that speed.

All you say is possible with XGate. Xgate was designed for that !
Be careful, for the moment, ICC12 V7 doesn't directly support XGate
assembly. Richard is working for that.
I use macros written by Edward Karpicz (Hi, Edward !).
Linker doesn't recognize XGate too...
So, I have some things to do "by hand" before to obtain a program OK.
That means I've to:
- build my project
- look for addresses used by XGate in the .MP file produced by ICC12,
- report them in the XGate threads
- then build again with the new addresses
- flash the code with NoIce
But I know what to do, and it's OK.

Note than NoIce doesn't allow you to debug XGate code... So you have to be
very very careful when you write threads.
Note it's funny to see XGate running (flashing led for example, or receiving
datas at 375 KBauds) when you are debugging step-by-step S12 code !!!

I can give you (of list) the little project I wrote to understand XGate.
Give me your mail.

Best regards.
Joel
-----Message d'origine-----
De: 6... [mailto:6...] De la part de
Carl Ungvarsky
Envoy jeudi 16 avril 2009 20:21
: 6...
Objet: RE: [68HC12] comparing 9S12 and S12X to Microchip PIC18
Joel,

thank you for this information.

I used the Imagecraft ICC11 and ICC12 for years and I liked them.



The XGate could be very useful for me. Some questions:

1) How much program memory is on a single page?



2) Does the XGate have its own program memory, separate from the main MCU?



3) I would like to do this with the XGate:

a. main core develops messages, and passes messages to the XGate

b. XGate handles sending message out SCI port and checking for errors

c. XGate handles recognizes SCI RX interrupt, and receives & stores
incoming serial message

d. XGate passes complete received serial message to main core

Is this possible to do using the XGate?



4) How do you debug the XGate? Using the same debugger as is used for the
main core?



Thanks

Carl

To: 6...
From: j...@free.fr
Date: Thu, 16 Apr 2009 18:53:57 +0200
Subject: RE: [68HC12] comparing 9S12 and S12X to Microchip PIC18

Hi,

I use 9s12XDP512CAL (112 pins), with Imagecraft ICC12 compiler, and NoIce
debugger with USB BDM.
Very nice configuration.
Very easy to write very big programs with it in C or assembly (I prefer C
!!!).
Very easy to download program into flash with NoIce, then debug in C or
assembly language, put breakpoint, looking at datas, arrays, structs, ...

Very nice processor :
- XGate co-processor, very interesting for background routines (I use it for
real time clock, transmit/receive on serial SCI). Funny to write an XGate
thread and to see that thread running even in step-by-step debugging !
- 512 K Flash, with page system
- 12 K RAM directly used by the main CPU, 32 K by using Ram page system (32
K full used by XGate)
- PLL
- 6 serial communication interface (asynchronous interface). I use one of
them at 375 KBauds with XGate receiving at that rate
- 16 analog inputs
- timers, PWM
- serial peripheral interface
- some CAN bus, but I don't use them
- 2 I2C bus
- and I'm afraid I forgot some things...

Imagecraft and NoIce is a very good configuration, not expensive.
I use this processor with a 12 Mhz quartz, and, using PLL, at 24 Mhz without
problem.

Hope this help.

Joel

-----Message d'origine-----
De : 6... [mailto:6...] De la part de
Carl Ungvarsky
Envoy: jeudi 16 avril 2009 17:40
: 6...
Objet : [68HC12] comparing 9S12 and S12X to Microchip PIC18

Hi,

I have a design that currently uses a Microchip PIC18 MCU. I need to do a
major revision of the design and I have the choice to go to the next larger
PIC series, the PIC24, or another chip. I want to consider Freescale again.

I'll look at Freescale's parts selection matrix... but if someone is
familiar with how the latest 9S12 or S12X chips stack up against these
features, please comment.

PIC18

Vcc as low as 2V

low power modes, sleep current < 10uA

single chip system available

up to 96K internal flash

a few K of RAM

some EEPROM

CAN controller available

in-circuit program and debug using ICSP port and debugger such as ICD2

(ICSD requires 2 signal pins and a Vpp pin)

Internal 10-bit ADC

up to 40 MHz ext osc, 10 MIPS max

The best devices in this family for my application are the PIC18F4680 -
PIC18F4685.

These have

64K program flash (4680) or

96K program flash (4685)

3328 bytes RAM ---> rather small, would prefer say 8K

CAN engine (works well)

single USART (like SCI port) ---> would prefer two

single SPI

single I2C

about 36 I/O ---> I need 8 or 16 more

44 pin TQFP package

$6.50 (4680, qty 1), or $9.00 (4685, qty 1)

The PIC24 has enough differences that the transition from PIC18 to PIC24 is
non-trivial. That's why I'm willing to consider another chip maker.

Thanks for your comments

Carl

__________________________________________________________
Windows Live: Life without walls.
http://windowslive.com/explore?ocid=TXT_TAGLM_WL_allup_1b_explore_042009



Hi Joel,

I'm also interested in using the Xgate coprocessor with ICCV7 and would
love to see your demo too.

-rob

jpdi wrote:
> Carl,
>
> About XGate :
> You can use Flash or RAM for XGate. If in RAM, your S12 code have of
> course
> to copy code from flash to RAM. I use XGate in flash. The 2 threads I
> wrote
> are on a single page... I don't understand your question...
>
> For me, Xgate uses pages 0xE0 and 0xE1, and the code for S12 begins at
> page
> 0xE2. Compiler options do that for me. The CPU I use is 9S12XDP512CAL.
>
> Be careful, because XGate works when S12 accesses RAM, so a S12 code like
> this :
> while (cond) ; // just wait the end of condition
> freeze the XGate, because there are to few RAM access. I saw that with my
> RTI thread.
>
> The threads I wrote for XGate are
> - RTI thread, in order to maintain a real time clock calendar,
> chronometer. ..
> - SCI thread at 38400 bauds
> - SCI thread, in order to receive (just receive) data at 375 KBauds
>
> In my projects, I use SCI in 2 cases :
> - 38.4 KBauds between main CPU and display CPU
> - 375 KBauds between 2 main CPUs
> - 31.5 KBauds (Midi interface)
> I plan in a next future to write threads for these SCIs, so, it seems
> be the
> same project for you.
> Just, for me, it seems transmit at 375 KBauds needs the all power of the
> XGate or S12. Fortunately, I don't transmit all the time at that speed.
>
> All you say is possible with XGate. Xgate was designed for that !
> Be careful, for the moment, ICC12 V7 doesn't directly support XGate
> assembly. Richard is working for that.
> I use macros written by Edward Karpicz (Hi, Edward !).
> Linker doesn't recognize XGate too...
> So, I have some things to do "by hand" before to obtain a program OK.
> That means I've to :
> - build my project
> - look for addresses used by XGate in the .MP file produced by ICC12,
> - report them in the XGate threads
> - then build again with the new addresses
> - flash the code with NoIce
> But I know what to do, and it's OK.
>
> Note than NoIce doesn't allow you to debug XGate code... So you have to be
> very very careful when you write threads.
> Note it's funny to see XGate running (flashing led for example, or
> receiving
> datas at 375 KBauds) when you are debugging step-by-step S12 code !!!
>
> I can give you (of list) the little project I wrote to understand XGate.
> Give me your mail.
>
> Best regards.
> Joel
>
> -----Message d'origine--- --
> De : 68HC12@yahoogroups. com

























&










































'

'










'
















''







<














































''












Memfault Beyond the Launch