Diseño con memoria Flash SPI discreta (5 / 7 paso)

Paso 5: Código código código!

Escribí un esbozo que me permite comunicar con la ONU vía comunicación serial TTY el Serial monitor (o incluso un sistema Unix, como se ver bien). Este es un método útil para la depuración de hardware nuevo, como puedo emitir comandos interactivamente.

La función de "serialEvent()" es una devolución de llamada incorporado, siempre que pasa algo en el objeto Serial por defecto. Usar esta devolución de llamada para construir una cadena de comando y un indicador booleano (la construcción de byte por byte de la cadena completa cuando la devolución de llamada lee como punto y coma ";" de la corriente; Usar esto en vez de un salto de línea ya que no es posible emitir una nueva línea del serial monitor). Cuando la devolución de llamada construye la cadena y establece la bandera, la función de "loop()" ejecuta un decodificador. El decodificador determina que función a llamar basado en la cadena de mando, analiza los parámetros adicionales de la cadena de comando y llama a esa función.

Cada función es esencialmente una envoltura alrededor de una implementación de bajo nivel de un diagrama de sincronización funcional WinBond SPI. He utilizado un contenedor para que las funciones de bajo nivel siguen siendo genéricas: yo puedo usar otra vez en otros bocetos con un cortar y pegar simple. Además, la envoltura imprime información para el usuario, que es muy útil para depurar.

La imagen de arriba muestra una sesión interactiva con el Monitor serie. Yo he publicado cuatro comandos, "get_jedec_id;", "read_page 0;", "write_byte 0 2 8;" y "read_page 0;" Realmente no puede ver los comandos (el monitor serial no tiene eco, y no imprime el comando exacto... Probablemente debo tengo), pero ver la respuesta. Debe ser más claro al leer/escribir/leer página 0. El "read_page"; comando simplemente vuelca la página especificada (en decimal). El "write_byte"; la función es un poco rara, como los parámetros especifican un número de página, un desplazamiento en esa página y luego el byte. Desde no hay registro de 32 bits nativo en el Atmega 16-bit, no molestaba haciendo lógica traducción física, pero tendrás que tener en cuenta esta traducción en algún momento. De todos modos, observe que el tercer byte de la página cero ahora es "08h".

Yo pude también emitieron "chip_erase;" y luego "read_page 0;" para ilustrar un ciclo de borrado, pero esperemos que usted consigue el cuadro.

Las funciones de bajo niveles comienzan con '_' y se denominan "_read_page" o "_write_page" o "_erase_chip". Estas funciones explícitamente la secuencia de los comandos de SPI en los diagramas de tiempo hoja de datos. Cada función se termina con una llamada a "not_busy()" para evitar la ejecución del procedimiento antes de que el chip ha completado su operación interna.

Editar (11 de marzo de 2014): hubo un problema con la función de bajo nivel de _read_page, me había olvidado tirar CS alta antes de que se baja al comienzo de la función, como las otras funciones. Esto significa que si _read_page es la primera función que se llame, CS puede ya no ser alta, sin una válida /CS 1-> _read_page 0 transición no funcionará correctamente, la primera vez que se llama. La segunda vez que funcionaría bien porque deja /CS 1. Pequeño pero molesto error.

Artículos Relacionados

Convertir su iPod generación 5 de Video con memoria Flash!

Convertir su iPod generación 5 de Video con memoria Flash!

Usted puede han visto mi Instructables otros sobre cómo convertir tu iPod Mini y 4G iPods con CF y se preguntaba si usted podría hacer lo mismo con el iPod Video. Bien puede!Nota: Algunas de las instrucciones son muy similares (si no es lo mismo) com
Actualice su iPod Mini con memoria Flash - No más disco!

Actualice su iPod Mini con memoria Flash - No más disco!

En lugar de un disco duro, el iPod actualizado nuevo utilizará memoria flash sin partes móviles para arranque rápido y tiempos de acceso y menor consumo de energía.(Corrí mi iPod continuamente durante más de 20 horas en una carga!).Usted también tend
Convertir iPod 4 Gen para utilizar memoria Flash

Convertir iPod 4 Gen para utilizar memoria Flash

que todos tienen o saben de alguien que tiene un iPod con un disco duro muerto. Por supuesto usted puede simplemente comprar otra unidad pero tienes a los hambrientos de poder mismo, propensos a fallas, frágiles rotación media. Por el contrario, actu
Memoria Flash en Audio Casette

Memoria Flash en Audio Casette

esta tarde fui curioso stick cuántas cintas realmente está envuelto en un casette de audio, es mucho, y durante el proceso de limpiar el desorden destruyó la cubierta de mi vieja memoria 128 de Meg.Así que me quedé con una memoria USB sin ninguna cub
Conversión de imágenes a memoria Flash iconos/imágenes para TFT (sin tarjeta SD)

Conversión de imágenes a memoria Flash iconos/imágenes para TFT (sin tarjeta SD)

Muchas veces hacer cualquier usuario interfaz o bien Mostrar contenido, que utilizamos los iconos/imágenes. En este Instructable, que va ser mostrando los iconos o logos o imágenes en su pantalla TFT de Arduino con el uso de ATmega (utilizado en Ardu
Memoria Flash steampunkish

Memoria Flash steampunkish

se trata de una memoria Flash de 8 gig que convertido en un palo de madera con bandas de cobre asegurando juntos... Pensé que era cool...
USB memoria Flash Tic Tac disfraz

USB memoria Flash Tic Tac disfraz

no hace mucho tiempo en instructables, hubo un concurso para nada que ver con un puerto USB. Lamentablemente, yo no consiguió a haciendo de este instructable por lo que estoy haciendo esto para concurso de suministros de oficina. Por favor voten por
Memoria Flash oculto en la expo

Memoria Flash oculto en la expo

En este instructable voy a mostrarle cómo esconder una unidad flash en un marcador expoPaso 1: materialesExpo u otro similar tamaño de marcadorimpulsión del flash delpinzasbarra de la pluma o la espigaPaso 2: Abrir expousted necesita tomar las pinzas
Arduino - pantalla TFT de iconos e imágenes de memoria FLASH

Arduino - pantalla TFT de iconos e imágenes de memoria FLASH

En este Instructable encontrará una biblioteca y bosquejo para trazar imágenes almacenadas en la memoria FLASH de Arduino en una pantalla TFT.Aquí utilizamos mi favorito 2.2" 320 x 240 pixel ILI9341 base de TFT. Esta pantalla es un buen tamaño para A
Memoria flash USB en el adaptador de pared. ¡ Es un USB datos seguro!"

Memoria flash USB en el adaptador de pared. ¡ Es un USB datos seguro!"

que pasó por mis armarios y encontré la vieja impulsión del flash del usb, adaptador de pared y ratón por cable roto.Me aburría así que hice una memoria flash usb que se parece a adaptador de la pared.Se necesita:* Cuchillo* Pegamento* Tijeras (opcio
¿Cómo convertir Flash a PSP con ANVSOFT Flash to PSP Converter?

¿Cómo convertir Flash a PSP con ANVSOFT Flash to PSP Converter?

allscreensavertools.com ( http://www.allscreensavertools.com ) ANVSOFT Flash to PSP Converter es una potente utilidad que convierte archivos SWF de Macromedia Flash a archivos MPEG-4, incluyendo los clips de película, scripts de acción y el audio en
Hacer su propio diseño con iluminación LED DIY

Hacer su propio diseño con iluminación LED DIY

Hacer su propio diseño con bombillas LED iluminación bricolaje utilizando partes básicas de la tienda de mejoras para el hogar! Se trata de una forma económica y flexible para crear iluminación brillante que se adapta a tu espacio, no importa si uste
TfCD: Bookmarker / lámpara con aleación con memoria inteligente de lectura

TfCD: Bookmarker / lámpara con aleación con memoria inteligente de lectura

(Este proyecto fue creado para el curso TfCD en la TU Delft)La idea era crear un marcador que puede también funcionar como una lectura pequeña luz. Hemos querido utilizar el 'material inteligente' SMA (aleación con memoria de forma) para el cable aut
Controlador seguro para un palo roto de la memoria flash.

Controlador seguro para un palo roto de la memoria flash.

Controlador seguro para un palo roto de la memoria flash,Fijación por un pequeño trozo de sugru amarillo en el cairo hackerspace sugru construcción de noche.