Table des matières:

Carte adaptateur HD44780 LCD vers I2C pour Bus Pirate : 9 étapes
Carte adaptateur HD44780 LCD vers I2C pour Bus Pirate : 9 étapes

Vidéo: Carte adaptateur HD44780 LCD vers I2C pour Bus Pirate : 9 étapes

Vidéo: Carte adaptateur HD44780 LCD vers I2C pour Bus Pirate : 9 étapes
Vidéo: Демонстрация и обзор ЖК-адаптера Bus Pirate 2024, Novembre
Anonim
Carte adaptateur HD44780 LCD vers I2C pour le bus Pirate
Carte adaptateur HD44780 LCD vers I2C pour le bus Pirate
Carte adaptateur HD44780 LCD vers I2C pour le bus Pirate
Carte adaptateur HD44780 LCD vers I2C pour le bus Pirate

Les écrans LCD à caractères bon marché basés sur le chipset HD44780 sont disponibles dans une variété de tailles: 2x16, 4x20, etc. Ces écrans ont deux modes d'interface standard, 4 bits et 8 bits parallèle. 8 bits nécessite un total de 11 lignes de données, 4 bits en nécessite 7 (6 pour l'écriture seule). Certains écrans LCD prennent en charge un mode de données série supplémentaire, comme le VFD que j'ai couvert à Hack a Day. Les écrans LCD HD44780 sont généralement des pièces de 5 volts avec une alimentation séparée pour le rétro-éclairage. Le Bus Pirate n'a que cinq broches d'E/S tolérantes à 5 volts, nous avons donc fabriqué une petite carte adaptateur avec suffisamment de broches pour contrôler l'écran LCD. Le Bus Pirate contrôle la carte adaptateur via sa bibliothèque d'interfaces LCD. Continuez à lire sur la carte adaptateur LCD Bus Pirate HD44780 et la bibliothèque d'interfaces. Je peux avoir des PCB, des kits ou des kits assemblés produits par Seeed Studio pour environ 15 $, y compris l'expédition dans le monde entier, plus ici. Blog.

Étape 1: Matériel

Matériel
Matériel
Matériel
Matériel
Matériel
Matériel

PrésentationDans cet article, nous décrivons une carte adaptateur I2C pour les écrans LCD basés sur HD44780. Nous le démontrons avec une interface série universelle Bus Pirate. Le code source de Bus Pirate pour la bibliothèque d'interface HD44780 basée sur I2C est du domaine public, il est donc libre de s'adapter à vos propres projets. MatérielImage de circuit pleine taille [PNG]. Le circuit et le PCB ont été conçus avec la version gratuite de Cadsoft Eagle. Les fichiers de conception peuvent être téléchargés à partir de Bus Pirate SVN. Avant d'utiliser la carte adaptateur, assurez-vous de vérifier la fiche technique de votre écran LCD par rapport au brochage de l'adaptateur. Tous les écrans LCD ne sont pas identiques. Circuit intégré d'extension d'E/S PCF8574 Il s'agit d'une simple puce d'extension d'E/S contrôlée via l'interface I2C à deux fils. L'interface I2C est accessible depuis le header JP1. Le PCF8574 fonctionne de 2,5 à 5 volts. Les broches d'E/S fonctionnent à la tension d'alimentation, donc si nous l'alimentons en 5 volts, elle interface l'écran LCD à 5 volts. C1 (0,1 uF) découple le circuit intégré des fluctuations de l'alimentation. Une broche du PCF8574 contrôle une LED de 3 mm (LED1) via la résistance de limitation de courant R2 (1000 ohms). La LED s'allume pour indiquer une communication réussie entre le Bus Pirate et l'adaptateur. Le PCF8574 ne peut pas fournir suffisamment de courant pour alimenter la LED, nous alimentons donc la LED à partir de l'alimentation 5 volts et commutons la terre. LCD La carte adaptateur communique avec un écran LCD à caractères HD44780 en mode d'interface parallèle 4 bits. Les broches d'interface 4 bits - RS, RW, EN et D4-D7 - sont connectées à sept des broches d'E/S PCF8574. Nous aimons utiliser un en-tête de broche mâle de 0,1" pour connecter l'adaptateur à un écran LCD, vous pouvez généralement appuyer l'écran LCD contre les broches pour créer un contact suffisant pour un test rapide. La résistance de coupe R1 (10K) fournit une tension de réglage du contraste à la broche 3 de l'en-tête LCD. Nous n'avons pas connecté les broches de rétroéclairage car il y a tellement de styles de rétroéclairage différents. Fournir de l'énergie pour un rétroéclairage LED peut endommager un écran qui nécessite une alimentation en tension négative. Alimentation La plupart des écrans LCD nécessitent 5 volts, fournissent une alimentation externe via en-tête JP2. Nous avons fourni une deuxième broche d'alimentation pour connecter les résistances pull-up du Bus Pirate. PCB Le circuit et le PCB ont été conçus avec la version gratuite de Cadsoft Eagle. Les fichiers de conception peuvent être téléchargés à partir du Bus Pirate SVN. Le PCB est une conception à un seul côté à trous traversants avec un seul fil de connexion (indiqué en rouge). Nous pouvons avoir des PCB, des kits ou des kits assemblés produits par Seeed Studio pour environ 15 $, y compris l'expédition dans le monde entier, plus ici. tout e rugueux) C10.1uF/10volts+R110000 (10K) ohm monotour trimmer/potentiomètre, 6mmR21000 (1K) ohm résistance, 1/4 wattLED13mm (T1) LED, redJP1+JP20.1" mâle en-tête, 5 brochesIC1PCF8574N, 8bit I2C I/O expander DIP16ICS116 broches DIP socket pour IC1I n'a pas pu inclure certains éléments de mise en forme et tableaux HTML dans un Instructable, vous pouvez voir le message original sur le blog Dangerous Prototypes.

Étape 2: Connexions

Connexions
Connexions

Appareil: LCD à caractères HD44780. Bus: parallèle 4 bits, avec carte adaptateur PCF8574 I2C. Alimentation requise: 5 volts. Références:exemple de fiche technique [PDF], référence de commande HD44780, uber-site LCD HD44780. Log complet de session Bus Pirate pour cette démonstration. Nous a conçu l'adaptateur pour la bibliothèque LCD de l'interface série universelle Bus Pirate, mais il fonctionnera avec tout ce qui peut parler le protocole I2C. Jetez un œil au code source du Bus Pirate pour un exemple d'implémentation I2C->HD44780. Connectez le Bus Pirate à la carte adaptateur comme indiqué dans le tableau. Le tableau montre également les connexions brutes au circuit intégré PCF8574 si vous suivez sans carte adaptateur. Connectez l'adaptateur à une alimentation suffisante pour l'écran LCD, généralement 5 volts. La connexion I2C entre l'adaptateur et le Bus Pirate nécessite des résistances de rappel entre 2 et 10K. Voici plus d'informations sur l'interfaçage à tension mixte avec les pull-ups et les résistances de pull-up embarquées de Bus Pirate..

Étape 3: Étape 1. Configurer la bibliothèque

Étape 1. Configurer la bibliothèque
Étape 1. Configurer la bibliothèque

Interfaçage Nous avons couvert la conception de l'adaptateur et comment le connecter au Bus Pirate, maintenant il est enfin temps d'écrire quelque chose sur l'écran LCD. HiZ>m <<11 <<1 <<W <

p <<2 <<v <<<obtenir le rapport de tensionMONITEUR DE TENSION: 5V: 4,9 | 3,3 V: 3,3 | UPULLUP: 5,0 <<Appuyez sur 'm' dans le terminal Bus Pirate et choisissez la bibliothèque LCD. Il ne prend actuellement en charge que les écrans LCD à caractères HD44780 à l'aide de l'adaptateur PFC8574 décrit dans la première moitié de cet article (option 1). Activez les alimentations (grand 'W') et les résistances pull-up (menu 'p'). Vérifiez le moniteur de tension (menu 'v') et assurez-vous que la tension de rappel (Vpullup) est d'environ 5 volts.

Étape 4: Étape 2. Réinitialisation et initialisation

Étape 2. Réinitialisation et initialisation
Étape 2. Réinitialisation et initialisation
Étape 2. Réinitialisation et initialisation
Étape 2. Réinitialisation et initialisation

Ce tableau décrit les commandes à un octet qui contrôlent un écran LCD HD44780, voici une référence détaillée. Ces commandes peuvent être saisies à partir de la ligne de commande Bus Pirate, mais nous avons créé des macros pour la plupart d'entre elles pour gagner du temps. LCD>(0) <<<show macro menu0. Macro menu <<<this menu1. LCD Reset << <réinitialiser le LCD2. Init LCD <<<réinitialiser et initialiser le LCD3. Clear LCD <<<effacer l'écran LCD, remettre le curseur à 04. Position du curseur ex:(4:0) <<<définir la position du curseur5. Écrire le texte de test <<La macro 0 affiche le menu des macros pour n'importe quel mode Bus Pirate. LCD>(2) <<<initialiser la macro LCD Lignes d'affichage:1. 1 <<<affichage à une ligne2. Multiple <<2' RESET <<<la macro 2 comprend une séquence de réinitialisationINIT <<La macro d'initialisation LCD (2) configure l'écran pour le mode d'interface 4 bits, active l'affichage du curseur et définit quelques autres options utiles. Configurez le nombre de lignes d'affichage, choisissez 1 pour un affichage à une seule ligne ou 2 pour tous les autres affichages. Après l'initialisation, l'écran doit être clair avec un curseur visible dans le coin. Si cela ne fonctionne pas, vérifiez la connexion I2C, les résistances de rappel et l'alimentation, puis réessayez. Les écrans LCD HD44780 doivent être réinitialisés avec une séquence de signaux spéciale avant de pouvoir être initialisés pour le mode d'interface 4 bits ou 8 bits. La macro 1 crée cette séquence. La macro 2 inclut la séquence de réinitialisation, il n'est donc pas nécessaire d'utiliser la macro 1 avant la macro 2.

Étape 5: Étape 3. Écrire des caractères de test

Étape 3. Écrire des caractères de test
Étape 3. Écrire des caractères de test
Étape 3. Écrire des caractères de test
Étape 3. Écrire des caractères de test

ACL>(6:80) <<La macro d'écriture des nombres remplit l'écran LCD avec des numéros de test entre 0 et 9. Le nombre après les deux points indique au Bus Pirate combien de numéros de test à écrire, nous utilisons un 4x20LCD, nous écrivons donc 80 nombres pour le remplir. Notez que le curseur se termine à la position 0, sous le premier '0'. LCD>(7:80) <<La macro d'écriture de caractères remplit l'écran LCD avec des caractères ASCII, entrez la quantité après les deux points. Notez que la première ligne continue sur la troisième, la troisième sur la seconde et la seconde sur la dernière. Les caractères ne sont pas continus car les écrans LCD de caractères ne passent pas d'une ligne à l'autre. Nous en reparlerons un peu plus plus tard.

Étape 6: Étape 4. Effacer l'écran LCD

Étape 4. Effacer l'écran LCD
Étape 4. Effacer l'écran LCD

ACL>(3) <<La macro clear LCD envoie la commande HD44780 qui efface l'écran et ramène le curseur à la première position. Vous pouvez également effectuer n'importe laquelle de ces opérations sans les macros, reportez-vous au tableau des commandes au début de cette section. Entrez '[0b1' dans le Bus Pirate pour régler l'interface en mode commande ([) et envoyer la commande d'effacement d'écran HD44780 (0b00000001) sans macro.]

Étape 7: Étape 5. Tapez du texte

Étape 5. Tapez du texte
Étape 5. Tapez du texte
Étape 5. Tapez du texte
Étape 5. Tapez du texte

LCD>(8) <<<insérer le texte utilisateurEntrez le texte à insérer à la position du curseur. HD44780 Démo LCD <<Après avoir effacé l'écran LCD à l'étape 4, le curseur est positionné sur le premier bloc. Nous pourrions également le définir avec la macro (4:0), qui déplace le curseur sur le premier caractère. La macro d'insertion de texte au curseur demande la saisie de texte, puis la copie sur l'écran LCD lorsque vous appuyez sur Entrée. LCD>(4:0x40) <&lt

LCD>(8) <<<insérer le texteEntrez le texte à insérer à la position du curseur. Bus Pirate v2go <<L'écriture sur la deuxième ligne est un peu plus compliquée, elle commence en fait au caractère 64 sur un écran LCD 4x20. Si vous continuez à écrire à partir de la fin de la ligne 1 (caractère 20) alors vous vous retrouverez au début de la ligne trois ! Cette page contient une belle collection de cartes mémoire pour la plupart des tailles d'écran LCD. Tout d'abord, nous positionnons le curseur sur la deuxième ligne (4:0x40). Ensuite, la macro 'insérer du texte' récupère notre entrée et la copie sur l'écran LCD. LCD>(4:0x14)(8)(4:0x54)(8) <<<syntaxe de macros multiplesSaisissez le texte à insérer à la position du curseur. Firmware v2.0+ <<<nous avons tapé ceciEntrez le texte à insérer à la position du curseur. DangerousPrototypes <<Le Bus Pirate accepte plusieurs macros sur la même ligne, donc tout l'écran peut être écrit à la fois. Nous avons écrit sur les deux dernières lignes avec une seule ligne de syntaxe. Nous pourrions utiliser '(3)(4:0)(8)(4:0x40)(8)(4:0x14)(8)(4:0x54) (8)' pour effacer l'écran LCD et écrire les quatre lignes avec une seule entrée de syntaxe.

Étape 8: Étape 6. Lecture à partir de l'écran LCD

Étape 6. Lecture à partir de l'écran LCD
Étape 6. Lecture à partir de l'écran LCD

La carte adaptateur Bus Pirate et LCD peut lire à partir de l'écran LCD. Nous lirons le texte que nous avons écrit à l'écran (DDRAM), mais vous pouvez également lire les paramètres et la RAM de caractères personnalisés (CGRAM) en définissant la bonne adresse. LCD>[0b10000000 '''<<<définir le pointeur de lecture'' ']HD44780 RS LOW, COMMAND MODE <<<enregistrer la broche de sélection lowCMD WRITE: 0x80 <<Tout d'abord, nous disons au Bus Pirate d'envoyer des données au registre de commande LCD ([). Ensuite, nous utilisons la commande set DDRAM address (0b1xxxxxxx) pour définir le pointeur de lecture au début de la DDRAM (xxxxxxx=0000000).]LCD>]rrrrrrr <<<read data memoryHD44780 RS HIGH, DATA MODE <<<register select pin highREAD: 0x48 <<< 'H'READ: 0x44 <<< 'D'READ: 0x34 <<< '4'READ: 0x34 <<< '4'READ: 0x37 <<< '7'READ: 0x38 < << '8'READ: 0x30 <<< '0'LCD>Enfin, dites au Bus Pirate de lire à partir de la mémoire de données (]), puis de lire quelques octets (rrrrrrr). Nous avons obtenu "HD44780", le texte que nous avons écrit à l'écran à l'étape 5. Vous devriez également pouvoir utiliser le raccourci r:7 pour lire sept octets, mais cela ne fonctionne pas dans le firmware actuel - nous corrigerons cela avant la prochaine version.

Étape 9: Faire plus

Faire plus
Faire plus

Donnez une description générale du StepL'adaptateur LCD à caractères HD44780 est un accessoire pratique pour le Bus Pirate. Il peut être utilisé pour un test rapide ou un développement logique plus avancé. En plus des écrans LCD, les huit broches d'E/S de 2,5 volts à 5 volts peuvent être utiles pour d'autres applications Bus Pirate à nombre de broches élevé. Nous pouvons avoir des PCB, des kits, ou des kits assemblés produits par Seeed Studio pour environ 15 $, y compris l'expédition dans le monde entier, plus ici.

Conseillé: