chipKIT® Development Platform

Inspired by Arduino™

Various questions about ChipKit

Created Sat, 14 Jul 2012 21:37:32 +0000 by skyjumper


skyjumper

Sat, 14 Jul 2012 21:37:32 +0000

Hi All...

I'm sorry or the vague title of this post, but I have some questions that may seem unrelated. I have been Googling Chipkit stuff all day, but still have a few questions.

I have a product that uses an Atmel 1284p. The hardware is Arduino compatible, but the product is a special purpose data processor. Its pretty much at the end of its string running at 16 MHz. So I am looking for a more powerful solution to enhance it.

I see that the 23 bit PIC used on the MAX-32 is much faster than the 8 bit AVR chips, but I wonder how they compare to an ARM Cortex M3? I had been considering doing the enhancement with either a Cortex-M3 or an Atmel UC3 family processor. That would probably be overkill.

Can the Max-32 be programmed as an I2C slave? Can it be an SPI slave? I would need this board to act as a slave to the Arduino compatible board.

If I program it using the MPIDE and GCC, can the programs be debugged? or do I have to use the Microchip environment for that? If i do use the Microchip environment, does it offer any libraries like SD/FAT, I2C, SPI, UART access and so on?

Thanks very much!


skyjumper

Sat, 14 Jul 2012 21:41:42 +0000

Oh, I forgot! Can the flash space on the uC be expanded, perhaps to 2MB or 4MB?


Jacob Christ

Sat, 14 Jul 2012 21:56:09 +0000

I have a product that uses an Atmel 1284p. The hardware is Arduino compatible, but the product is a special purpose data processor. Its pretty much at the end of its string running at 16 MHz. So I am looking for a more powerful solution to enhance it.

I see that the 23 bit PIC used on the MAX-32 is much faster than the 8 bit AVR chips, but I wonder how they compare to an ARM Cortex M3? I had been considering doing the enhancement with either a Cortex-M3 or an Atmel UC3 family processor. That would probably be overkill.

I don't know anything about the ARM Cortex M3, but a quick search reveals a benchmark of 1.25 Drystone MIPS where the PIC32 is 1.5 Drystone MIPS.

Can the Max-32 be programmed as an I2C slave? Can it be an SPI slave? I would need this board to act as a slave to the Arduino compatible board.

Yes it can be an SPI slave. It should work as an Arduino compatible, but I personally have not tested this feature.

If I program it using the MPIDE and GCC, can the programs be debugged? or do I have to use the Microchip environment for that? If i do use the Microchip environment, does it offer any libraries like SD/FAT, I2C, SPI, UART access and so on?

They can be debugged using MPLAB and an ICD, I again have never tried. I believe you can use the chipKIT libraries while debugging with MPLAB. There are several posts on this message board regarding this topic.

Oh, I forgot! Can the flash space on the uC be expanded, perhaps to 2MB or 4MB?

You should look at the Retro BSD project. The PIC32 can run code out of RAM so you can use an SD card for program space (think 2GB to 4GB for $10). To use this environment I imagine you will not be using MPIDE for application development but rather a gcc cross compiler.

Thanks very much!

No problem, any time.

Jacob


skyjumper

Sat, 14 Jul 2012 23:20:01 +0000

Hi Jacob and thank you very much. Do you also know if the NAX-32 can be programmed as an I2C slave?

That's interesting about the benchmark info for the OCI32 vs Cortex-Mx. I'll look into that a bit more. Same with everything else you pointed out. My biggest concern about using the Microchip dev environment is whether or not it has library support. If it has library support and supports debugging, I can live without the C++ features and program in straight C.

Thanks again! I think I'll order one this weekend.

Best, Jim


majenko

Sat, 14 Jul 2012 23:38:48 +0000

If it has library support and supports debugging, I can live without the C++ features and program in straight C.

The Arduino-esque libraries are simple C++ and header files. If you're not using the MPIDE then you will have to link these in to your program manually. Having said that, you will require C++ for them (or most of them) as they mainly use C++ classes for the major part.


skyjumper

Sun, 15 Jul 2012 00:15:22 +0000

The Arduino-esque libraries are simple C++ and header files. If you're not using the MPIDE then you will have to link these in to your program manually. Having said that, you will require C++ for them (or most of them) as they mainly use C++ classes for the major part.

Oh thats right, good point...


Jacob Christ

Sun, 15 Jul 2012 01:51:16 +0000

Hi Jacob and thank you very much. Do you also know if the NAX-32 can be programmed as an I2C slave?

My guess is yes that hardware supports its, but worse case it can be bit banged. I2C is only 400kHz.

Jacob