En temps réel OS / LCD à bord de Discovery 12 $ (3 / 6 étapes)

Étape 3: Hardware Hacking Style LCD

Temps pour certains matériels.  Ne vous inquiétez pas, ce que cela va être facile de trop.

Il faut seulement sept fils d’interfacer un LCD de SPI à la Commission de la découverte.  Les signaux sont données SPI, horloge SPI, au sol, puissance, puce, sélectionnez, commande / données et reset.  Si seulement un seul appareil est sur le bus SPI alors la puce, sélectionnez pourrait toujours être câblé pour le sélectionner.

Blow est un listes les broches de découverte qui sont utilisés dans mon code source.

Microcontrôleur STM32F100RBT6B
Flash de 128 Ko, 8 Ko de RAM

P1 Fonction nom
-------------------------------------------------
Analog PC0 11 à 1 (0 à 3,0 Volts)
PC1 12 analogique à 2
Analog PC2 13 à 3
14 PC3 analogique à 4
PA0 15 bouton utilisateur découverte
20 PA5 SPI1 SClk pour LCD
PA6 21 LCD données = 1 / Cmd = 0
22 PA7 SPI1 MOSI pour LCD (SDA)
PC4 23 LCD Reset
PC5 24 LCD SCE (CS0)
PB0 25 BTN_UP

P2 Fonction nom
-------------------------------------------------
1 PB10 USART3 Tx (Port de débogage)
PB11 2 USART3 Rx (Port de débogage)
PB12 3 BTN_LEFT
PB13 4 BTN_CENTER
5 PB14 BTN_RIGHT
PB15 6 BTN_DOWN

P3 Fonction nom
-------------------------------------------------
4 LED PC8 bleu sur Discovery (TIM3_CH3 100Hz)
5 PC9 vert allumée découverte
24 PB8 RC Servo moteur Out1 (TIM4_CH3 50Hz)
25 PB9 RC Servo moteur Out2 (TIM4_CH4 50Hz)

J’ai eu deux types différents de LCD branchez sur la carte de découverte jusqu'à présent.  Un seul affichage provient de Sparkfun et est appelé un Nokia 5110.  Le deuxième écran vient de Mouser / assemblage électronique.  Liens pour les deux affiche suivre :

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

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

Mon but était de trouver un LCD graphique vraiment peu coûteux.  Le Sparkfun / LCD Nokia est de 84 x 48 pixels et coûte 10 millions de dollars.  Le Mouser / affichage EA est de 102 x 64 pixels et est disponible en trois saveurs - l’affichage EA coût 12,36 $.

Le Sparkfun / Nokia semble vieux trucs excédentaires.  De plus, il y avait beaucoup de commentaires négatifs au sujet des problèmes avec l’écran LCD / montage de la société.  L’écran du Nokia utilise une chose de caoutchouc de zèbre à la vitre au CCP.  La chose de zèbre semble poser des problèmes.  L’affichage EA, d’autre part, est tout neuf, a plus de pixels (mais utilise une mise en page mémoire goofy), et coûte plus cher.  Mais, pour moi, le LCD bleu translucide est tellement sexy.  Les deux types d’affichage sont en lecture seule. Il n’y a aucun retour d’information de l’affichage possible. Semble une restriction en utilisant l’interface SPI à l’écran LCD.  Mon vote va avec l’affichage de l’ÉE, même si ça coûte un peu plus.

Le code source attaché peut conduire soit le type d’affichage.  Il y a un #define près du sommet en lcd.h qui définit de quelle manière de construire la source.  Il suffit de correctement réglé le #define et reconstruire / reflasher pour basculer entre les affichages.

Conduire un petit écran LCD montre vraiment certains de la capacité de la micro de bras.

  • Tampon de RAM dans le micro contient toutes les données de pixel.  Pensez-y comme un tampon de shadow RAM.
  • La tâche de l’écran LCD du système d’exploitation gère l’envoi du tampon de RAM d’ombre à l’écran LCD.
  • L’écran entier est réécrite à une fréquence de 10Hz.  Peut être n’importe quel taux vraiment.  La fréquence de rafraîchissement écran LCD matériel de base du verre LCD est autour de 50Hz.
  • La tâche de LCD envoie une page (une page correspond à un octet / 8 pixels de haut par X octets / pixels long où X est la largeur en pixels de l’écran) à la fois.  Ainsi, un écran de 102 x 64 pixels a huit pages où chaque page est 102 octets de long.
  • Envoi d’une page à la fois permet à la ram de l’ombre à « manipuler » avant d’être envoyé à l’écran LCD.  À titre d’exemple, l’affichage peut être interverti 180 degrés dans le logiciel si nécessaire.  Noter que certains écrans peuvent faire dans matériel - mais, chaque affichage semble le faire différemment.  Pourrait aussi flip noir sur blanc à blanc sur noir à l’aide de logiciels.  C’est juste cool d’être en mesure d’injecter des changements comme les pixels s’apprêtent à voler hors de la port SPI.  Note, toutes les images de LCD dans ce sont instructible en utilisant la fonction invert de logiciel.
  • La tâche de LCD utilise le DMA pour transférer les données sur l’écran LCD.  Alors que la tâche est en attente pour le DMA de l’achever appels « taskYIELD() », alors que d’autres tâches de priorité inférieur peuvent ne fonctionnent.  C’est énorme, le micro est libre de faire d’autres choses alors que le canal DMA est crachant des données SPI à pleine vitesse.  Notez que les tâches prioritaires plus vont préempter la tâche lcd automatiquement.
  • Le bus SPI est cadencé à 3MHz (affichage Sparkfun ne peut gérer 4 MHz).  Ainsi, une page 102 octets soit transférée en un peu plus de 300 microsecondes !  L’affichage de l’EA peut traiter beaucoup plu horloge SPI.  Mais, il n’y a pas d’urgence - une horloge plus élevée est plus sensible au bruit.
  • En utilisant le transfert DMA désigne que tous les 102 octets (une page) sont transférées sans une seule interruption du micro bras.  Les DMA lectures du tampon de RAM et maintient le SPI port 100 % coincé emballé occupé jusqu’au fait - tout cela sans harceler le micro un peu.  Les octets SPI sont emballés ainsi parfaitement parce que tout cela est fait au niveau du matériel.  Logiciel ne serait jamais capable de faire aussi bien un travail.
  • Une fois le transfert DMA page est fait, la tâche de LCD ajuste le pointeur DMA sur la page suivante et le processus se répète jusqu'à ce que toutes les pages sont transférés.
  • L’écran LCD de EA a 8 pages et prend un peu moins de 10ms à transférer.  Voir l’intrigue portée ci-dessous.
  • Compte tenu de l’évaluation environnementale affichage a 6528 pixels et nous leur envoyons 10 fois par seconde, la largeur de bande SPI à l’écran tourne à plus de 65 Ko/s.  Avec le DMA faisant le gros du travail il n’y a pratiquement aucune charge sur le micro pour garder l’affichage mis à jour à ce rythme !  Me surprend.  Ce genre de xfer pour un LCD serait étouffer un petit Pic ou Atmel puce.  Doubler le la fréquence de rafraîchissement de 20Hz ajouterait qu’une légère augmentation dans la charge CPU, à titre d’exemple.

Articles Liés

La température sur écran LCD 16 x 2

La température sur écran LCD 16 x 2

Dans mon précédent post, j'ai affiché la température sur serial monitor. Aujourd'hui, je vais vous montrer comment afficher la température de la sonde thermique à un WC1602A0 de LCD 16 x 2. Hier, j'ai pensé que mon écran est cassé, mais je lui ai don
Arduino Nano : BMP180 la pression barométrique et la température I2C afficheur LCD 2 X 16 avec Visuino

Arduino Nano : BMP180 la pression barométrique et la température I2C afficheur LCD 2 X 16 avec Visuino

Le BMP180 est un capteur de température et Arduino de pression barométrique combiné très populaire. J'ai déjà fait Instuctable avec BMP180. Un certain nombre de personnes a toutefois demandé comment vous pouvez connecter un autre périphérique I2C sur
Affichage température sur écran LCD à l’aide de STS-21(I2C)

Affichage température sur écran LCD à l’aide de STS-21(I2C)

SalutSalutations bonnes..!! J'ai (Somanshu Choudhary) pour le compte d'entreprises de technologie Dcube va pour mesurer la température à l'aide d'Arduino nano et affichage sur 16 X 2 LCD c'est l'une des applications de I2C protocole pour lire des don
Affichage de la température sur écran LCD

Affichage de la température sur écran LCD

J'ai réunira deux projets dans ce instructable.Je démontrerai comment mesurer la température à l'aide d'une sonde de température LM35 et un Arduino, puis affichez la température sur une série LCD 16 X 2 en Celsius et Fahrenheit.Vous pouvez trouver le
PICAXE - capteur de température DS18B20 pour LCD

PICAXE - capteur de température DS18B20 pour LCD

ceci est mon premier dessin Picaxe, projet de programme et de la construction. Ce projet connecte un capteur DS18B20 à un LCD parallèle en utilisant un PICAXE 20 X 2. Il mesure la température de la pièce et lit les à l'écran chaque seconde ou deux. C
Arduino alimenté par sonde de température avec écran LCD sortie première fois auteur entrée

Arduino alimenté par sonde de température avec écran LCD sortie première fois auteur entrée

Jamais été un gars un peu de concours, mais j'ai avancé et entré dans pour le premier concours d'auteur de temps, si vous aimez mon intructable ou même d'apprendre quelque chose de nouveau et je pense j'ai gagné votre vote s'il vous plaît ! =]Bonjour
La température DHT11 distance Wi-Fi une humidité I2C afficheur LCD 2 X 16 avec deux ESP8266 et Visuino

La température DHT11 distance Wi-Fi une humidité I2C afficheur LCD 2 X 16 avec deux ESP8266 et Visuino

ESP8266 modules sont contrôleurs seul grand peuplement faible coût avec construit en Wi-Fi, et j'ai déjà fait un clin d'oeil simple instructable avec module ESP8266 NodeMCU.L'avantage de ESP8266 sur l'Arduino et autres contrôleurs est le builtin Wi-F
Temp. Capteur affichage sur écran LCD w / Arduino

Temp. Capteur affichage sur écran LCD w / Arduino

Ce qu'il fait essentiellement :Ce projet arduino détecte la température de la sonde de température. Lorsqu'il détecte la température, il affiche sur le moniteur série, que j'ai personnellement pense est évidemment très gênant. Maintenant pour résoudr
ATTiny84 + LCD + température LM35 capteur

ATTiny84 + LCD + température LM35 capteur

Il s'agit d'un capteur de température simple construit avec un ATtiny84, LM35 et un écran LCD 16 x 1 caractère. Il est fait pour courir sur 3 piles AA ou 4,5 volts. Je l'ai fait comme un projet pour savoir comment transférer des projets Arduino dans
Arduino temps & Temp affichage bouclier

Arduino temps & Temp affichage bouclier

un autre projet, je travaille sur requis une minuterie bonne, mais plus je lis sur l'Arduino, j'ai réalisé que je ne pouvais pas faire un temporisateur précis en utilisant un Arduino qui était déjà consacré à d'autres tâches. L'Arduino perdra toujour
ORP / pH / température Data Logger

ORP / pH / température Data Logger

comme un professionnel de la qualité de l'eau travaillant dans le domaine de l'eau potable, je sais combien il est important de surveiller avec précision les niveaux de désinfectant dans l'eau potable qui obtient a servi au public.  Habituellement, c
Conseil développement Atmega16/32 avec écran LCD

Conseil développement Atmega16/32 avec écran LCD

cette instructable montre, comment faire votre propre Conseil développement pour processeurs Atmega16 ou Atmega32. L'Internet est plein de conseils de développement faits maison, mais je pense qu'il n'y a place à gauche pour un autre. Ce Conseil d'ad
Tweetez votre température environnante et surveiller n’importe où !

Tweetez votre température environnante et surveiller n’importe où !

Salut tout le monde !Je suis Geeve George un MAKER fièrement de l'Inde! J'ai commencé à faire à l'âge de 10 ans et mon zèle pour faire encore continue comme je suis fascinée par les possibilités infinies et les possibilités qu'offre la technologie !C
Utiliser twitter et le temps de poster des notes et la température de la porte du Bureau

Utiliser twitter et le temps de poster des notes et la température de la porte du Bureau

Synopsis========L'objectif de ce projet est d'utiliser un compte Twitter pour envoyerNotes de la porte de votre bureau, qui est équipé d'un 20 x 4 LCD(affichage). Ce projet présente essentiellement une mise en œuvre del'idée abordée dans cet article