реклама на сайте
подробности

 
 
> STM32F103 + M95080 чтение запись всего массива, некорректно работает запись/чтение , если писать с 256 адреса
Artos5
сообщение Jan 22 2018, 16:53
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 124
Регистрация: 21-07-13
Из: Украина, Ахтырка
Пользователь №: 77 613



Доброго времени суток уважаемые.
Пытаюсь написать программу , которая будет писать / читать SPI eeprom M95080
Написал функции чтения и записи данных с / в еепром. Если с 0 адреса пишу / читаю - работает , если уже пишу читаю с 256 адреса 256 байт , то есть по 512 адрес - то полная фигня считывается ...

Вот функции чтения и записи :

Код
void flash_mas_read( uint16_t y, uint16_t addr, uint8_t s)
{
uint16_t z=0, x=0;
        
read_cmd_M95080();
soft_spi_write_addr(addr);
   HAL_Delay(1);
for(x=0; x<y; x++) // читаем данные
   {
  if(s==0)buff_text1[x] = soft_spi_read();
    else buff_text2[x] = soft_spi_read();
                                
    }
    SPI_CS_SET;
  HAL_Delay(8);
}


Код
void flash_write_arr(char *data, uint16_t size, uint16_t addr)
{
    uint16_t x=0, y=0;
    data+=0;
    
for(y=addr; y<=addr+size/32; y++) // page
{
write_status_reg_M95080();
write_enable_M95080();            
while((read_status_M95080()&0x00)!=0x00);
    
SPI_CS_SET;
soft_spi_write_instruct(SPI_FLASH_INS_PAGE_PROGRAM);
soft_spi_write_addr(y*32);

for(x=y*32; x<(y*32+32); x++)
{
soft_spi_write_instruct(data[x-addr*32]);
}

SPI_CS_SET;
HAL_Delay(70);
}
}


SPI у меня программный , он работает хорошо . Проверял так:
1000 раз читал статус регистр . И этот код у меня работал на флешке EN25T80

Сообщение отредактировал Artos5 - Jan 22 2018, 17:24
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 21:57
Рейтинг@Mail.ru


Страница сгенерированна за 0.01337 секунд с 7
ELECTRONIX ©2004-2016