En tiempo real OS / LCD a bordo de Discovery $12 (3 / 6 paso)

Paso 3: Hardware Hacking estilo LCD

Tiempo para algún hardware.  No te preocupes, este va a ser demasiado fácil.

Se tarda sólo siete cables para un LCD de SPI a la Junta de descubrimiento.  Las señales son potencia, tierra, reloj SPI, datos SPI, chip seleccionar, comando / datos y reset.  Seleccione si sólo hay un dispositivo en el bus SPI y chip select podría ser hardwired para siempre.

Blow es una listas de los pasadores de descubrimiento que se utilizan en mi código fuente.

STM32F100RBT6B microcontrolador
128 Kbytes Flash, RAM de 8 Kbyte

P1 Función de nombre
-------------------------------------------------
Análogo de la PC0 11 en 1 (0 a 3,0 voltios)
Análogo de 12 PC1 en 2
Análogo de la PC2 13 en 3
Analógicas del PC3 14 en 4
PA0 15 usuario botón en descubrimiento
PE5 20 SPI1 SClk para LCD
PA6 21 LCD datos = 1 / Cmd = 0
22 PA7 SPI1 MOSI a LCD (SDA)
PC4 23 LCD Reset
PC5 24 LCD SCE (CS0)
PB0 25 BTN_UP

P2 Función de nombre
-------------------------------------------------
1 PB10 USART3 Tx (puerto de depuración)
PB11 2 USART3 Rx (puerto de depuración)
PB12 3 BTN_LEFT
4 PB13 BTN_CENTER
PB14 5 BTN_RIGHT
PB15 6 BTN_DOWN

P3 Función de nombre
-------------------------------------------------
4 PC8 Blue LED en Discovery (TIM3_CH3 de 100Hz)
5 PC9 verde LED en descubrimiento
24 PB8 RC Servo Motor Out1 (TIM4_CH3 de 50 Hz)
25 PB9 RC Servo Motor Out2 (TIM4_CH4 de 50 Hz)

He tenido dos tipos de LCD conectar a la tarjeta de descubrimiento hasta ahora.  Una pantalla proviene de Sparkfun y se llama un Nokia 5110.  La segunda pantalla viene de perro ratonero / montaje electrónico.  Enlaces para ambos muestran siga:

http://www.Mouser.com/productdetail/Electronic-Assembly/EA-DOGS102B-6/?QS=XoD1gVtqLQulaqATGATNqA%3D%3D

http://www.Sparkfun.com/products/10168

Mi objetivo era encontrar un LCD gráfico realmente barato.  El Sparkfun LCD de Nokia es de 84 x 48 píxeles y cuesta $10 dólares.  El perro ratonero / EA es de 102 x 64 píxeles y viene en tres sabores - la pantalla EA costo $12,36.

El Sparkfun / Nokia parece viejo cosas sobra.  Además, había un montón de comentarios negativos acerca de los problemas con la pantalla LCD / Montaje del tablero.  La pantalla del Nokia utiliza una cosa de goma de cebra para el vidrio en el PCB de la interfaz.  Lo de cebra parece estar causando problemas.  La pantalla EA, por el contrario, es nuevo, tiene más píxeles (aunque utiliza un diseño de memoria goofy), y cuesta más.  Pero, para mí, es tan sexy el LCD azul translúcido.  Ambos tipos de pantalla son de sólo lectura. No es posible ninguna valoración de la pantalla. Parece alguna restricción utilizando una interfaz SPI para la pantalla LCD.  Mi voto va con la pantalla EA aunque cuesta más un poco más.

El código fuente adjunto puede conducir cualquier tipo de pantalla.  Hay un #define cerca de la cima en lcd.h que establece de qué manera de construir la fuente.  Solo configura correctamente el #define y reconstruir reflash para cambiar entre pantallas.

Conducir un pequeño LCD realmente muestra algunas de la capacidad del micro de brazo.

  • La memoria RAM del micro tiene todos los datos de píxeles.  Pensar como un búfer de RAM de sombra.
  • La tarea de LCD en el sistema operativo encarga de enviar el búfer de RAM de sombra a la pantalla LCD.
  • La pantalla entera se reescribe a un ritmo de 10Hz.  Podría ser cualquier tipo de realidad.  La frecuencia de actualización de hardware básico de LCD del vidrio LCD es de alrededor de 50Hz.
  • La tarea de LCD envía una sola página (una página es un byte / 8 píxeles de alto por X bytes / píxeles de largo donde X es el ancho de píxel de la pantalla) a la vez.  Por lo tanto, una pantalla de 102 x 64 pixeles tiene ocho páginas donde cada página es 102 bytes de longitud.
  • Enviar una página a la vez permite que la ram de sombra a "manipular" antes de ser enviado a la LCD.  Por ejemplo, la pantalla puede ser invertida 180 grados en el software si es necesario.  Tenga en cuenta, algunas pantallas pueden hacerlo en hardware - pero cada pantalla parece hacer esto de manera diferente.  Podría también tirón en blanco y negro a blanco sobre negro utilizando software.  Es solo frio para poder inyectar cambios como los píxeles se preparan volar en el puerto SPI.  Nota, todas las fotos en este instructible son LCD con la función de inversión de software.
  • La tarea de LCD utiliza DMA para transferir los datos a la pantalla LCD.  Mientras que la tarea está esperando el DMA para completar llamadas "taskYIELD()" así que otras tareas de prioridad baja pueden trabajar.  Esto es enorme, el micro es libre de hacer otras cosas mientras que el canal DMA es escupir datos SPI a toda velocidad.  Tenga en cuenta que las tareas de prioridad más alto se preferencia la tarea lcd automáticamente.
  • El autobús SPI está funcionando a 3MHz (pantalla de Sparkfun sólo puede manejar 4 MHz).  Así, una página 102 bytes obtiene transferida en poco más de 300 microsegundos!  La pantalla EA puede manejar mucho mayor reloj SPI.  Pero, es - un reloj más alto es más susceptible al ruido.
  • Con la transferencia DMA significa que todos 102 bytes (una página) se transfieren sin una sola interrupción del micro de brazo.  El Lee DMA el buffer de la RAM y mantiene el SPI Puerto 100% atascado lleno ocupado hasta hace - todo sin poner pegas el micro un poco.  Los bytes SPI se embalan tan perfectamente porque todo esto se hace a nivel de hardware.  Software nunca sería capaz de hacer buen trabajo.
  • Una vez que se realiza una transferencia de la página DMA, la tarea del LCD ajusta el puntero de la DMA a la página siguiente y el proceso se repite hasta que todas las páginas se transfieren.
  • La pantalla de EA tiene 8 páginas y lleva poco menos 10ms para transferir.  Ver la trama de ámbito más abajo.
  • Dada la EA pantalla tiene 6528 pixeles y estamos enviándoles 10 veces por segundo, el ancho de banda SPI a la pantalla se está ejecutando en más de 65kb/seg.  Con el mercado haciendo la mayor parte de la obra no hay casi carga en el micro para mantener la pantalla actualizada a este ritmo!  Me sopla lejos.  Este tipo de transferencia a un LCD ahogar un poco de Pic o Atmel chip.  Duplicando el refresco a 20Hz añadir sólo un ligero aumento en la carga de la CPU, por ejemplo.

Artículos Relacionados

Movimiento sensible LCD en tiempo real reloj/alarma/temporizador (programa actualizado)

Movimiento sensible LCD en tiempo real reloj/alarma/temporizador (programa actualizado)

necesitaba un reloj para mi oficina en casa (donde me paso las mañanas del fin de semana construyendo robots y tal) y quería que encajen en la decoración de mi banco de trabajo electrónica. Me decidí a construir uno con todas las "entrañas" expu
Rastreador de vuelos en tiempo Real de ADS-B y dispositivo de monitorización utilizando Intel Edison

Rastreador de vuelos en tiempo Real de ADS-B y dispositivo de monitorización utilizando Intel Edison

Vigilancia dependiente automática-Broadcast (ADS-B) es un sistema de vigilancia satelital precisa. ADS-B utiliza tecnología GPS para determinar la ubicación de la aeronave, velocidad y otros datos y difunde que estaciones de información a una red de
Reloj en tiempo real con PIC18F452

Reloj en tiempo real con PIC18F452

Bienvenido a usted. Aquí estoy diseñado un reloj de tiempo Real utilizando el microcontrolador PIC18F452. Voy a explicar cómo diseñar el reloj en tiempo Real utilizando el microcontrolador PIC. RTC usando PIC18F452PIC es avance microcontrolador serie
Reloj de tiempo real utilizando AT89s52

Reloj de tiempo real utilizando AT89s52

WELCOME BACK, esto es shubham Trivedi y hoy voy a diseño de reloj en tiempo Real utilizando el microcontrolador At89s52. El microcontrolador AT89S52 es el corazón de este proyecto. DS1307 IC se utiliza como RTC. Necesaria de este IC DS1307 I2C interf
Monitor en tiempo real Web basado hogar energía uso

Monitor en tiempo real Web basado hogar energía uso

un monitor de uso de energía del hogar basado en la web en tiempo real detalles de este Instructable. El resultado final es un cuadro vivo de una página web que se actualiza cada 10 segundos con el uso de potencia instantánea para toda mi casa. La co
Reloj de tiempo Real de Arduino con alarma y sensores ambientales

Reloj de tiempo Real de Arduino con alarma y sensores ambientales

Reloj de Arduino, con respaldo de batería (reloj en tiempo real), tiempo, fecha, alarma, temperatura, humedad, presión, LCD, salida, entrada de teclado, dormir modo, blanco de iluminación (4 X) LED LCD con control de intensidadPaso 1: Lista de piezas
Arduino Aquaponics: reloj de tiempo Real parte I

Arduino Aquaponics: reloj de tiempo Real parte I

necesidad fundamental de AA de cualquier sistema de control es la capacidad de registrar el tiempo.  Como lo que somos conscientes, el Arduino tiene tres métodos que puede emplear:1. serie.  Varias veces superar el tiempo de la conexión en serie.2. e
Trazado de ECG en tiempo real de Pi frambuesa

Trazado de ECG en tiempo real de Pi frambuesa

trazado de ECG en tiempo real de Raspberry PiTL084 x3 tarjeta de señal de ECGFrambuesa Pi MCP3008 ECG señal lector y servidor webservidor Web de Apache tomcathttp://www.youtube.com/watch?v=sBC65qsSEkU&feature=youtu.beañadir a bordo: Junta de bricolaj
Noteu: Dispositivo de notificación en tiempo real USB

Noteu: Dispositivo de notificación en tiempo real USB

¿Qué es Noteu?Por favor haga clic abajo para visitar nuestra página de Kickstarter para obtener más información y si su interés para usted pre-ordenar un modelo de producción. https://www.Kickstarter.com/projects/Jackt/noteu-...Noteu es uno de los pr
Dispositivo de notificación en tiempo real USB

Dispositivo de notificación en tiempo real USB

¿Qué es Noteu?Por favor haga clic abajo para visitar nuestra página de Kickstarter para obtener más información y si su interés para usted pre-ordenar un modelo de producción.https://www.Kickstarter.com/projects/Jackt/noteu-u...Noteu es una de las pr
Monitor en tiempo real de BitCoin Price con matriz de LED Arduino y 1Sheeld

Monitor en tiempo real de BitCoin Price con matriz de LED Arduino y 1Sheeld

Básicamente, estos proyectos ilustran cómo actualizar el precio del BitCoin en USD en tiempo real y el precio que se muestra en una gran matriz de LED que hemos hackeado para dejarla comunicarse con Arduino en lugar de la PC.Hemos enfrentado algunos
Módulos de reloj en tiempo Real compatible con Arduino #5 (DS1307 y DS3231)

Módulos de reloj en tiempo Real compatible con Arduino #5 (DS1307 y DS3231)

Un módulo de reloj en tiempo Real (RTC) es que un RTC es un RTC. ¿Verdad? Mal!Mientras estos dos ECA muy común, compatible con Arduino un aspecto muy similar y están conectados a través del I2C (pronunciado ojo cuadrado, u ojo ojo) bus de comunicacio
Berlín reloj, Arduino Nano, DS1307 reloj en tiempo Real. 74HC595N 8 Bit Shift Register.

Berlín reloj, Arduino Nano, DS1307 reloj en tiempo Real. 74HC595N 8 Bit Shift Register.

Hace algún tiempo he querido construir un reloj de Berlín. ¿Realmente no sé por qué? Igual lo "diferente" a la hora.¿Cómo funciona?A partir de la parte inferior hay 4 amarillo enciende cada luz representa 1 minuto, así que si no hay ninguno en e
Montar un Kit de reloj de tiempo Real Adafruit DS1307

Montar un Kit de reloj de tiempo Real Adafruit DS1307

Sería justo decir que las industrias Adafruit ya ha hecho un gran trabajo de documentación de su Kit de reloj de tiempo Real DS1307. De hecho, sus instrucciones son mucho mejores que nada que tengo que ofrecer ya que incluye a todo tipo de archivos,