|
|
View previous topic :: View next topic |
Author |
Message |
help Guest
|
m25p80 driver |
Posted: Fri Feb 16, 2007 3:35 pm |
|
|
Is there anyone has a driver of m25p80 chip? I need one to catch up schedule. Please help.
Thanks,
Tom |
|
|
PCM programmer
Joined: 06 Sep 2003 Posts: 21708
|
|
Posted: Fri Feb 16, 2007 4:10 pm |
|
|
Do a web search using Goggle. Put in the name of the chip, and
then put in some line that is unique to CCS code. Example:
M25P80 "#use delay"
I ran a Google search on that and got two hits. The 2nd hit is a large
PDF file with nicely formatted code. It's for a M25P16 which has 2x
the amount of memory as the M25P80, but it's a similar chip. |
|
|
Tom_On_PIC Guest
|
M25p80 driver |
Posted: Tue Feb 20, 2007 1:13 pm |
|
|
Hi PC programmer,
Thanks for help. I did find two drivers as you mentioned. with minor changes, the driver is not working. I have put together a testing code. It saves 231 into address 100, but reading from same address is always 0:
[ Code: |
#include <18F452.h>
#device *=16 ADC=10
#include <string.h>
#fuses HS,NOPROTECT,NOOSCSEN,BROWNOUT,PUT,NOWDT,CCP2C1,STVREN,\
NODEBUG,LVP,NOWRT,NOWRTD,NOWRTB,NOWRTC,NOCPD,NOCPB,NOEBTR,NOEBTRB
#nolist
#use delay(clock=12352000)
#use rs232(baud=19200, xmit=PIN_C6, rcv=PIN_C7, ERRORS)
//m25p20 chip
void init_flush()
{
BYTE theInt;
output_high(MEM_CLK); // Start CLK high
output_high(MEM_CS); // Start CS high
// setup SPI with master and rising edge transmit
setup_spi(SPI_MASTER | SPI_CLK_DIV_16 | SPI_L_TO_H | SPI_XMIT_L_TO_H );
delay_ms(500);
write_byte(100, 231);
theInt = read_Byte(100);
printf("read frm addr 100(231):%x\r", theInt);
}
void main ( )
{
init_flush();
while (1);
}
|
PCM programmer wrote: | Do a web search using Goggle. Put in the name of the chip, and
then put in some line that is unique to CCS code. Example:
M25P80 "#use delay"
I ran a Google search on that and got two hits. The 2nd hit is a large
PDF file with nicely formatted code. It's for a M25P16 which has 2x
the amount of memory as the M25P80, but it's a similar chip. |
|
|
|
ckielstra
Joined: 18 Mar 2004 Posts: 3680 Location: The Netherlands
|
|
Posted: Tue Feb 20, 2007 3:12 pm |
|
|
Please post a complete compilable test program. How are we to know what is in read_byte() and write_byte()? Especially since you say you have made some modifications to the original program.
Code: | #device *=16 ADC=10 | The PIC18 processor is always using 16 bit pointers, the *=16 directive is doing nothing and can be left out.
You are setting the LVP fuse, do you really need this? Only home made programmers are using that programming method. For all other situations you want to set it to NOLVP as this fuse can cause erratic behaviour when no pull-up is connected. |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|