I am looking a designing a system with a PIC16F54 or PIC16F57 microcontroller. I need to have some large external memory, at least 32 MB. What kind of memory would be best for something like this? I would like to use as few pins as possible. What are some good options?
Just to clarify, are you looking for 32MB or 32MBit's (4MB) or storage? For the smaller size, serial data flash would be a good option. For the larger size, using an external MMC card or eMMC flash would be an option. However, the extra overhead of the MMC/eMMC interface would not be trivial to implement on these two particular PIC microcontroller. If you really want to store 32MB's of data, you really need to look at a much more powerful microcontroller with atleast a dedicate external SPI bus.
I am looking for 32 MB or 256Mb. If I choose a different device with a SPI bus will I be able to easily connect to an eMMC device. Do they support SPI? Also do you have a part you would recommend?
Actually looking over the spec notes, they dropped the older SPI compatibility mode in the eMMC.
Since any simple spi based flash memory is hard to find over 8MB, using a standard SD/MMC might be the cheapest/easiest solution to implement.
Microchip has a PICtail Board for SD/MMC:
Software Libs and supported microcontrollers:
I read an app note from Microchip sometime back, AN869, that explains interfacing external memory to a PIC18FXXX microchip up to a 2Mbyte () limit. That would be flash memory. Microchip's app-note AN778 also explains how to expand to external memory (Flash) for the PIC18C601/801, but it also has a limit of 2Mbytes. What kind of memory are you looking to add externally, DRAM or FLASH?
It should be noted that there are 2 modes of operation that can be thought of when saying, "external memory" with w PIC.
Some PIC's have an external memory bus that allows PROGRAM FLASH expansion beyond the internal flash memory. The PIC18F97J60 is a good example of this.
From there, we can talk about external memory devices NOT intended to really execute code, but more likely store data like MMC/SD-CF and chip based FLASH (like the SST devices).
MMC/SD can operate with SPI and a lot of PIC's come with a built in SPI (MSSP) port.
CF could be hooked up via the PMP (parallel master port) bus. (I haven't tried this, but I think I saw a app-note/SCH somewhere)
It should also be noted that when operating in SPI mode on an SD card, that you are only tapping 1/4 of the total possible bandwidth for an SD device. In the (license requied) 4wire mode, 4 times the datarate can be read/written to the device.
It should also be noted (I read somewhere) that mini-SD and micro-SD are not (for some reason) required to support the 1wire-SPI mode. So be warned.
It should be noted too if your planning to sell the device SD has a 7500$ liscensing fee. You might consider using USB host , and a usb thumb drive. This will move you to PIC24 |> so it might not be the right path, but do consider that liscensing fee either way. #TWiPad
i was looking for a help with trying to communicate with the PIC18F4520 with SD card.I want to thank you, really helped me ...
pcb assembly services
just buy a microSD socket board from mikroelektronika, it is i think for 9 dollars, then you can use SPI protocol and and enjoy huge external memory.
You can use Microchip Memory Disk Drive (MDD) librairies which support FAT16/FAT32 for PIC18/PIC24/PIC32.
They can be downloaded here : http://www.microchip.com/MLA
Another alternative is to use NAND FLASH memory (very large sizes are available ).
An exemple is given for PIC32 here which includes NAND FLASH driver.