1. Все ли я правильно описал (ошибка даташит, не туда посмотрел, и пр.)?
1. Существует ли хоть како-то стандарт на NAND Flash (или че хочу то и творю..)?
2. Какие еще особенности организации обмена характерны для разных производителей?
P.S. Извиняюсь за небольшой оффтоп. Пазбираю код Micron-а nand_low_level_drivers (скачал с их сайта). Там в NAND_LLD.h такое вот:
Код
#define CLE_OFFSET 0xFFFFF /*The offset value is for example purpose only */
#define ALE_OFFSET 0xFFFFE /*The offset value is for example purpose only */
#define RW_OFFSET 0xFFFFD /*The offset value is for example purpose only */
#define WRITE_NAND_CLE(command)(nand_Write_Cmd(CLE_OFFSET, command))
#define WRITE_NAND_ALE(address)(nand_Write_Addr(ALE_OFFSET, address))
//#define WRITE_NAND_BYTE(data) (nand_Write_byte(RW_OFFSET, 1))
#define WRITE_NAND_ARRAY(data,n) (nand_Write(RW_OFFSET, data, n))
#define READ_NAND_BYTE(data)(nand_Read_byte(RW_OFFSET, &(data), 1))
#define READ_NAND_ARRAY(data,n) (nand_Read(RW_OFFSET, data, n))
#define ALE_OFFSET 0xFFFFE /*The offset value is for example purpose only */
#define RW_OFFSET 0xFFFFD /*The offset value is for example purpose only */
#define WRITE_NAND_CLE(command)(nand_Write_Cmd(CLE_OFFSET, command))
#define WRITE_NAND_ALE(address)(nand_Write_Addr(ALE_OFFSET, address))
//#define WRITE_NAND_BYTE(data) (nand_Write_byte(RW_OFFSET, 1))
#define WRITE_NAND_ARRAY(data,n) (nand_Write(RW_OFFSET, data, n))
#define READ_NAND_BYTE(data)(nand_Read_byte(RW_OFFSET, &(data), 1))
#define READ_NAND_ARRAY(data,n) (nand_Read(RW_OFFSET, data, n))
Что это за смещение (CLE_OFFSET, ALE_OFFSET, RW_OFFSET) используется в функциях? Точнее не "используется", а "предполагается использовать" - функции эти (nand_Write_Cmd и пр.) должен написать сам разработчик под конкретную реализацию. Может кто пользовал, знает...