Estoy jugando con la conexión de varios dispositivos flash de configuración al Altera Cyclone 3. En particular, quiero reemplazar el EPCS16 (2MB) por W25Q128 (16MB), tanto por su tamaño como por su costo.
Parece que a Altera / Intel no le gusta que la gente haga esto; y hay poca información sobre el conjunto de comandos aceptado por los dispositivos EPCS. Sospecho que hay más comandos que los que figuran en datasheet . También leí en algún otro lugar que los dispositivos EPCS son solo dispositivos con una nueva marca que Altera no fabrica (ya que no hacen dispositivos flash desde hace bastante tiempo).
De todos modos, la hoja de datos sería muy útil cuando desee desarrollar su propia interfaz de configuración flash IP; en este momento estoy usando ALTASMI_PARALLEL , que Parece que funcionan correctamente con el chip W25Q.
Sin embargo, esta megafunción solo permite leer el ID de silicio (comando 0xAB, read_sid
) y la identificación del dispositivo (comando 0x9F, la parte de "ID de capacidad", read_rdid
). Ambas solicitudes funcionan para mí usando ALTASMI, con SID que devuelve 0x14 (EPCS16) y RDID que devuelve 0x15 (2 ^ 21 = 2MB).
Comparando EPCS y W25Q , veo que ambos chips informan 3 bytes para el comando 0x9F (el comando se llama JEDEC ID) , pero la hoja de datos EPCS dice que los dos primeros bytes son "ficticios". Se espera que estos bytes contengan el ID del fabricante y los 8 bits superiores del ID del dispositivo.
Sospecho que el dispositivo EPCS devuelve algo dentro de estos bytes; pero Altera no se molestó en implementarlos obteniendo de la megafunción ASMI como esperan (o quieren / forzar) a los desarrolladores que usan sus dispositivos EPCS de marca.
Al mirar los archivos creados por megafunction veo la instancia de asmi_altasmi_parallel_pio2_component
, solo 8 bits de los cuales se usan como RDID, y no puedo encontrar más información (por ejemplo, , ¿puede este submódulo devolver un vector de 24 bits, no solo 8 utilizados por el módulo ALTASMI? ) este módulo en el mismo archivo "asmi" creado por el megafunction :).
¿Alguien había estado tratando con tal problema? Leer la ID completa de JEDEC ayudaría a identificar definitivamente el chip flash adjunto.
Lo bueno es que, con la implementación actual, todavía tengo un ID de capacidad devuelto por el comando RDID, por lo que al menos puede saber el tamaño de la memoria flash (lo necesito porque su primer 512K debe estar protegido contra escritura). Cualquier otra información que identifique el chip exacto no es crítica y es una especie de "cosmético" solo para mostrarlo en la pantalla (al menos no veo cómo puedo usarlo / aplicarlo en el entorno actual).
P.S. Alteraforum migró a los foros de Intel. Hubo personas más o menos independientes que compartieron sus conocimientos, ahora recibo respuestas de protección empresarial como "no es compatible" o "eres un tonto cliente". ¡Es por eso que formulo una pregunta aquí con la esperanza de que todavía haya expertos independientes!