Благодарю. A15 был поправлен на этапе рисования платы. А плату я вчера всю вызвонил. Впрочем дело пошло. Я вставил ваш код и случилось чудо - правильно считалась сигнатура - F9220100. Вчера видно что-то не так сделал. А родные дрова оказались кривые:
Допустим альтернатива вашему cmd_identify:
Код
unsigned int lld_GetDeviceId
(
FLASHDATA * base_addr /* device base address in system */
)
{
unsigned int id;
FLASH_WR(base_addr, LLD_UNLOCK_ADDR1, NOR_UNLOCK_DATA1);
FLASH_WR(base_addr, LLD_UNLOCK_ADDR2, NOR_UNLOCK_DATA2);
FLASH_WR(base_addr, LLD_UNLOCK_ADDR1, NOR_AUTOSELECT_CMD);
id = (unsigned int)(FLASH_RD(base_addr, 0x0001) & 0x000000FF) << 16;
id |= (unsigned int)(FLASH_RD(base_addr, 0x000E) & 0x000000FF) << 8;
id |= (unsigned int)(FLASH_RD(base_addr, 0x000F) & 0x000000FF) ;
lld_ResetCmd(base_addr);
return(id);
}
Адреса и данные - верно, а вот получение данных - не так.