Память M25PE40 помогите разобратся
- Denis-d20
- Открыл глаза
- Сообщения: 52
- Зарегистрирован: Сб ноя 24, 2007 10:06:53
- Откуда: Украина,хмельницкий
- Контактная информация:
Память M25PE40 помогите разобратся
Добрый день. Нарисовалась проблемка начал использовать внешнюю память M25PE40 в принципе с инструкциями разобрался пишется читается но не коректно мож кто сней разбирался и чего подскажет 
- Реклама
Re: Память M25PE40 помогите разобратся
Ты вокруг да около не ходи, пиши сразу в чем проблема.
- Denis-d20
- Открыл глаза
- Сообщения: 52
- Зарегистрирован: Сб ноя 24, 2007 10:06:53
- Откуда: Украина,хмельницкий
- Контактная информация:
Re: Память M25PE40 помогите разобратся
не могу точно сказать толи с адресацией проблема толи с чем другим но байты заисываются через один
- Denis-d20
- Открыл глаза
- Сообщения: 52
- Зарегистрирован: Сб ноя 24, 2007 10:06:53
- Откуда: Украина,хмельницкий
- Контактная информация:
Re: Память M25PE40 помогите разобратся
Вот код
void WP(unsigned long int adres) {
char add[3];
WREN(); // инструкция разрешения записи
add[0]=adres;
add[1]=adres>>8;
add[2]=adres>>16;
CS=0; // s вниз
spi(0x0A);
spi(add[2]);
spi(add[1]);
spi(add[0]);
for (i=0;i<b.m;i++) {
if (cc|=0)
{
spi(getchar());
cc--;
}
else
{
spi(0);
};
};
CS=1;// s вверх
}
void WP(unsigned long int adres) {
char add[3];
WREN(); // инструкция разрешения записи
add[0]=adres;
add[1]=adres>>8;
add[2]=adres>>16;
CS=0; // s вниз
spi(0x0A);
spi(add[2]);
spi(add[1]);
spi(add[0]);
for (i=0;i<b.m;i++) {
if (cc|=0)
{
spi(getchar());
cc--;
}
else
{
spi(0);
};
};
CS=1;// s вверх
}
Re: Память M25PE40 помогите разобратся
с какой то похоже spi флешкой, вроде sst25fv32, пол дня тупил с такой проблемой - там сигнал CE не должен сниматься не только при передачи одного байта, а на всю операцию целиком, или все сбрасывается. такую тему проверь.
- Реклама
- Denis-d20
- Открыл глаза
- Сообщения: 52
- Зарегистрирован: Сб ноя 24, 2007 10:06:53
- Откуда: Украина,хмельницкий
- Контактная информация:
Re: Память M25PE40 помогите разобратся
в смысле пока не запишу все сообщение а не страницу?
Re: Память M25PE40 помогите разобратся
Смотря как пишешь - по байту или кусками.Denis-d20 писал(а):в смысле пока не запишу все сообщение а не страницу?
у меня запись примерно так происходит
void Write_Cont(unsigned long Dst, unsigned char *buf, unsigned long no_bytes)
{
unsigned long bytes_to_write;
unsigned char *ptr;
bytes_to_write = (no_bytes & 0xFFFFFFFE) - 2;
ptr = buf + 2;
WREN();
Auto_Add_IncA(Dst, buf[0], buf[1]);
while(bytes_to_write)
{
Wait_Busy_AAI();
Auto_Add_IncB(ptr[0], ptr[1]);
ptr += 2;
bytes_to_write -= 2;
}
Wait_Busy_AAI();
WRDI();
}
void Auto_Add_IncA(unsigned long Dst, unsigned char byte1, unsigned char byte2)
{
CE_Low(); /* enable device */
Send_Byte(0xAD); /* send AAI command */
SendAddress(Dst);
Send_Byte(byte1); /* send 1st byte to be programmed */
Send_Byte(byte2); /* send 2nd byte to be programmed */
CE_High(); /* disable device */
}
void Auto_Add_IncB(unsigned char byte1, unsigned char byte2)
{
CE_Low(); /* enable device */
Send_Byte(0xAD); /* send AAI command */
Send_Byte(byte1); /* send 1st byte to be programmed */
Send_Byte(byte2); /* send 2nd byte to be programmed */
CE_High(); /* disable device */
}
void Wait_Busy_AAI()
{
while ((SST25VF32_Read_Status_Register() & 0x43) == 0x43); /* waste time until not busy */
}
unsigned char SST25VF32_Read_Status_Register()
{
unsigned char byte = 0;
CE_Low(); /* enable device */
Send_Byte(0x05); /* send RDSR command */
byte = Get_Byte(); /* receive byte */
CE_High(); /* disable device */
return byte;
}
inline void WREN()
{
CE_Low(); /* enable device */
Send_Byte(0x06); /* send WREN command */
CE_High(); /* disable device */
}
void WRDI()
{
CE_Low(); /* enable device */
Send_Byte(0x04); /* send WRDI command */
CE_High(); /* disable device */
}
- Denis-d20
- Открыл глаза
- Сообщения: 52
- Зарегистрирован: Сб ноя 24, 2007 10:06:53
- Откуда: Украина,хмельницкий
- Контактная информация:
Re: Память M25PE40 помогите разобратся
ну в sst25vf немного по другому запись идет на сколько я понял пишется или один бит или команда auto address increment а в моей пишется сразу страничка в 256 байт
- Denis-d20
- Открыл глаза
- Сообщения: 52
- Зарегистрирован: Сб ноя 24, 2007 10:06:53
- Откуда: Украина,хмельницкий
- Контактная информация:
Re: Память M25PE40 помогите разобратся
спасибо разобрался принимал неправильно с spi проблема была


