Índice:

HD44780 LCD para placa adaptadora I2C para o Bus Pirate: 9 etapas
HD44780 LCD para placa adaptadora I2C para o Bus Pirate: 9 etapas

Vídeo: HD44780 LCD para placa adaptadora I2C para o Bus Pirate: 9 etapas

Vídeo: HD44780 LCD para placa adaptadora I2C para o Bus Pirate: 9 etapas
Vídeo: Демонстрация и обзор ЖК-адаптера Bus Pirate 2024, Novembro
Anonim
Placa adaptadora HD44780 LCD para I2C para o Bus Pirate
Placa adaptadora HD44780 LCD para I2C para o Bus Pirate
Placa adaptadora HD44780 LCD para I2C para o Bus Pirate
Placa adaptadora HD44780 LCD para I2C para o Bus Pirate

LCDs de caracteres baratos baseados no chipset HD44780 vêm em uma variedade de tamanhos: 2x16, 4x20, etc. Esses monitores têm dois modos de interface padrão, paralelo de 4 bits e paralelo de 8 bits. 8 bits requer um total de 11 linhas de dados, 4 bits requer 7 (6 para somente gravação). Alguns LCDs suportam um modo de dados seriais adicional, como o VFD que falei no Hack a Day. LCDs HD44780 geralmente são peças de 5 volts com uma fonte separada para a luz de fundo. O Bus Pirate tem apenas cinco pinos de E / S tolerantes a 5 volts, então fizemos uma pequena placa adaptadora com pinos suficientes para controlar o LCD. O Bus Pirate controla a placa adaptadora por meio de sua biblioteca de interface de LCD. Continue lendo sobre a placa adaptadora de LCD de caracteres HD44780 do Bus Pirate e a biblioteca de interface. Posso ter PCBs, kits ou kits montados produzidos pelo Seeed Studio por cerca de US $ 15, incluindo frete mundial, mais aqui. Eu não poderia incluir alguns elementos de formatação e tabelas HTML em um Instructable, você pode ver a postagem original em Dangerous Prototypes blog.

Etapa 1: Hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

Visão geral Neste artigo, descrevemos uma placa adaptadora I2C para LCDs baseados em HD44780. Nós demonstramos isso com uma interface serial universal Bus Pirate. O código-fonte do Bus Pirate para a biblioteca de interface HD44780 baseada em I2C é de domínio público, portanto, é livre para se adaptar aos seus próprios projetos. HardwareFull size circuit image [PNG]. O circuito e o PCB foram projetados com a versão gratuita do Cadsoft Eagle. Os arquivos de design podem ser baixados do Bus Pirate SVN. Antes de usar a placa adaptadora, certifique-se de verificar a folha de dados do seu LCD com a pinagem do adaptador. Nem todos os LCDs são iguais. IC expansor de E / S PCF8574 Este é um chip expansor de 8 E / S simples que é controlado por meio da interface I2C de dois fios. A interface I2C é acessível a partir do cabeçalho JP1. O PCF8574 funciona de 2,5 a 5 volts. Os pinos de E / S operam na tensão de alimentação, portanto, se alimentá-lo em 5 volts, ele faz a interface com o LCD a 5 volts. C1 (0,1uF) desacopla o IC das flutuações na fonte de alimentação. Um pino do PCF8574 controla um LED de 3 mm (LED1) através do resistor limitador de corrente R2 (1000 ohms). O LED acende para indicar comunicação bem-sucedida entre o Bus Pirate e o adaptador. O PCF8574 não pode fornecer corrente suficiente para alimentar o LED, então alimentamos o LED com a fonte de 5 volts e ligamos o terra. LCD A placa adaptadora se comunica com um LCD de caracteres baseado em HD44780 no modo de interface paralela de 4 bits. Os pinos de interface de 4 bits - RS, RW, EN e D4-D7 - são conectados a sete dos pinos de E / S PCF8574. Gostamos de usar um conector de pino macho de 0,1 "para conectar o adaptador a um LCD. Normalmente, você pode inclinar o LCD contra os pinos para criar contato suficiente para um teste rápido. O resistor do trimmer R1 (10K) fornece uma tensão de ajuste de contraste para o pino 3 de o conector do LCD. Não conectamos os pinos da luz de fundo porque há muitos estilos de luz de fundo diferentes. Fornecer energia para uma luz de fundo de LED pode danificar uma tela que requer uma fonte de tensão negativa. Fonte de alimentação A maioria dos LCDs exige 5 volts, fornece uma fonte de alimentação externa por meio header JP2. Fornecemos um segundo pino de alimentação para conectar os resistores pull-up do Bus Pirate. PCB O circuito e PCB foram projetados com a versão gratuita do Cadsoft Eagle. Os arquivos de design podem ser baixados do Bus Pirate SVN. O PCB é um design unilateral, todo orifício de passagem com um único fio de jumper (mostrado em vermelho). Podemos ter PCBs, kits ou kits montados produzidos por Seeed Studio por cerca de US $ 15, incluindo remessa mundial, mais aqui. todo o buraco bruto) C10.1uF / 10volts + R110000 (10K) ohm trimmer / potenciômetro de uma volta, 6mmR21000 (1K) resistor ohm, 1/4 wattLED13mm (T1) LED, redJP1 + JP20.1 "cabeçote macho, 5 pinsIC1PCF8574N, 8 bits O expansor de E / S I2C DIP16ICS116 pino DIP socket para IC1I não poderia incluir alguns elementos de formatação e tabelas HTML em um Instructable, você pode ver o post original no blog Dangerous Prototypes.

Etapa 2: conexões

Conexões
Conexões

Dispositivo: LCD de caracteres HD44780. Bus: paralelo de 4 bits, com placa adaptadora I2C PCF8574. Requisitos de energia: 5volts. Referências: folha de dados de exemplo [PDF], referência de comando HD44780, uber-site HD44780 LCD. Registro de sessão completo do Bus Pirate para esta demonstração. projetou o adaptador para a biblioteca LCD da interface serial universal Bus Pirate, mas funcionará com qualquer coisa que possa falar o protocolo I2C. Dê uma olhada no código-fonte do Bus Pirate para um exemplo de implementação I2C-> HD44780. Conecte o Bus Pirate à placa adaptadora, conforme mostrado na tabela. A tabela também mostra as conexões brutas para o IC PCF8574 se você estiver acompanhando sem uma placa adaptadora. Conecte o adaptador a uma fonte de alimentação suficiente para o LCD, geralmente 5 volts. A conexão I2C entre o adaptador e o Bus Pirate requer resistores pull-up entre 2 e 10K. Aqui estão mais informações sobre a interface de tensão mista com pull-ups e os resistores pull-up on-board do Bus Pirate. Eu não pude incluir alguns elementos de formatação e tabelas HTML em um Instructable, você pode ver a postagem original no blog Dangerous Prototypes.

Etapa 3: Etapa 1. Biblioteca de configuração

Etapa 1. Biblioteca de configuração
Etapa 1. Biblioteca de configuração

Interface Nós cobrimos o design do adaptador e como conectá-lo ao Bus Pirate, agora é finalmente hora de escrever algo no LCD. HiZ> m <<11 <<1 <<W <

p <<2 <<v <<< obter relatório de tensãoVOLTAGE MONITOR: 5V: 4.9 | 3,3 V: 3,3 | VPULLUP: 5.0 <<Pressione 'm' no terminal Bus Pirate e escolha a biblioteca LCD. Atualmente, ele só suporta LCDs de HD44780 caracteres usando o adaptador PFC8574 descrito na primeira metade deste artigo (opção 1). Habilite as fontes de alimentação ('W' grande) e os resistores pull-up (menu 'p'). Verifique o monitor de tensão (menu 'v') e certifique-se de que a tensão pull-up (Vpullup) esteja em torno de 5 volts.

Etapa 4: Etapa 2. Reinicialização e inicialização

Etapa 2. Reinicialização e inicialização
Etapa 2. Reinicialização e inicialização
Etapa 2. Reinicialização e inicialização
Etapa 2. Reinicialização e inicialização

Esta tabela descreve os comandos de byte único que controlam um LCD HD44780, aqui está uma referência detalhada. Esses comandos podem ser inseridos na linha de comando do Bus Pirate, mas criamos macros para a maioria deles para economizar tempo. LCD> (0) <<< show macro menu0. Macro menu <<< this menu1. LCD Reset << <redefinir o LCD2. Init LCD <<< redefinir e inicializar o LCD3. Clear LCD <<< limpar LCD, retornar o cursor para 04. Posição do cursor ex: (4: 0) <<< definir a posição do cursor5. Escrever o texto de teste <<A macro 0 exibe o menu macro para qualquer modo Bus Pirate. LCD> (2) <<< inicializar macro LCD Linhas de exibição: 1. 1 <<< display2 de linha única. Multiple <<2 'RESET <<< macro 2 inclui uma seqüência de resetINIT <<A macro inicializar LCD (2) configura a tela para o modo de interface de 4 bits, ativa a exibição do cursor e define algumas outras opções úteis. Configure o número de linhas de exibição, escolha 1 para uma exibição de linha única ou 2 para todas as outras exibições. Após a inicialização, a tela deve ficar clara com um cursor visível no canto. Se não funcionou, verifique a conexão I2C, os resistores pull-up e a fonte de alimentação e tente novamente. Os LCDs HD44780 precisam ser reiniciados com uma sequência de sinal especial antes de serem inicializados para o modo de interface de 4 bits ou 8 bits. A macro 1 cria esta sequência. A macro 2 inclui a sequência de redefinição, portanto, não há necessidade de usar a macro 1 antes da macro 2.

Etapa 5: Etapa 3. Escreva os caracteres de teste

Etapa 3. Escrever caracteres de teste
Etapa 3. Escrever caracteres de teste
Etapa 3. Escrever caracteres de teste
Etapa 3. Escrever caracteres de teste

LCD> (6:80) <<A macro de números de gravação preenche o LCD com números de teste entre 0 e 9. O número após os dois pontos diz ao Bus Pirate quantos números de teste devem ser escritos, estamos usando um 4x20LCD, então escrevemos 80 números para preenchê-lo. Observe que o cursor termina na posição 0, sob o primeiro '0'. LCD> (7:80) <<A macro de caracteres de gravação preenche o LCD com caracteres ASCII, insira a quantidade após os dois pontos. Observe que a primeira linha continua na terceira, a terceira na segunda e a segunda na última. Os caracteres não são contínuos porque os LCDs de caracteres não passam de uma linha para a próxima. Falaremos um pouco mais sobre isso mais tarde.

Etapa 6: Etapa 4. Limpar LCD

Etapa 4. Limpar LCD
Etapa 4. Limpar LCD

LCD> (3) <<A macro limpar LCD envia o comando HD44780 que apaga a tela e retorna o cursor para a primeira posição. Você também pode fazer qualquer uma dessas operações sem as macros, consulte a tabela de comandos no início desta seção. Digite '[0b1' no Bus Pirate para definir a interface para o modo de comando ([) e envie o comando de limpeza da tela HD44780 (0b00000001) sem uma macro.]

Etapa 7: Etapa 5. Digite o texto

Etapa 5. Digite o texto
Etapa 5. Digite o texto
Etapa 5. Digite o texto
Etapa 5. Digite o texto

LCD> (8) <<< inserir texto do usuário Insira o texto a ser inserido na posição do cursor. HD44780 LCD demo <<Depois de limpar o LCD na etapa 4, o cursor é posicionado no primeiro bloco. Também poderíamos defini-lo com a macro (4: 0), que move o cursor para o primeiro caractere. O texto inserido na macro do cursor solicita a entrada de texto e, em seguida, o copia para o LCD quando você pressiona enter. LCD> (4: 0x40) <& lt

LCD> (8) <<< inserir texto Insira o texto a ser inserido na posição do cursor. Bus Pirate v2go <<Escrever na segunda linha é um pouco mais complicado, na verdade começa no caractere 64 em um LCD 4x20. Se você continuar escrevendo a partir do final da linha 1 (caractere 20), você terminará no início da linha três! Esta página tem uma bela coleção de mapas de memória para a maioria dos tamanhos de LCD de caracteres. Primeiro, posicionamos o cursor na segunda linha (4: 0x40). Em seguida, a macro 'inserir texto' captura nossa entrada e a copia para o LCD. LCD> (4: 0x14) (8) (4: 0x54) (8) <<< sintaxe de macro múltipla Insira o texto a ser inserido na posição do cursor. Firmware v2.0 + <<< digitamos thisEnter texto para inserir na posição do cursor. DangerousPrototypes <<O Bus Pirate aceita várias macros na mesma linha, então a tela inteira pode ser escrita de uma vez. Escrevemos as duas últimas linhas com uma única linha de sintaxe. Poderíamos usar '(3) (4: 0) (8) (4: 0x40) (8) (4: 0x14) (8) (4: 0x54) (8) 'para limpar o LCD e escrever todas as quatro linhas com uma única entrada de sintaxe.

Etapa 8: Etapa 6. Leitura do LCD

Etapa 6. Leitura do LCD
Etapa 6. Leitura do LCD

A placa adaptadora do Bus Pirate e LCD pode ler a partir do LCD. Leremos o texto que escrevemos na tela (DDRAM), mas você também pode ler as configurações e a ram de caractere personalizado (CGRAM) configurando o endereço correto. LCD> [0b10000000 '' '<<< definir o ponteiro de leitura' ' '] HD44780 RS BAIXO, MODO DE COMANDO <<< registro selecionar pino lowCMD WRITE: 0x80 <<Primeiro, dizemos ao Bus Pirate para enviar dados para o registrador de comandos do LCD ([). A seguir, usamos o comando set DDRAM address (0b1xxxxxxx) para definir o ponteiro de leitura para o início da DDRAM (xxxxxxx = 0000000).] LCD>] rrrrrrr <<< ler dados da memóriaHD44780 RS HIGH, DATA MODE <<< selecionar registro pin highREAD: 0x48 <<< 'H'READ: 0x44 <<<' D'READ: 0x34 <<< '4'READ: 0x34 <<<' 4'READ: 0x37 <<< '7'READ: 0x38 < << '8'READ: 0x30 <<<' 0'LCD> Finalmente, diga ao Bus Pirate para ler da memória de dados (]), e então ler alguns bytes (rrrrrrr). Temos "HD44780", o texto que escrevemos na tela na etapa 5. Você também deve ser capaz de usar o atalho r: 7 para ler sete bytes, mas não está funcionando no firmware atual - corrigiremos isso antes de o próximo lançamento.

Etapa 9: fazer mais

Fazendo mais
Fazendo mais

Dê uma descrição geral do adaptador de LCD de caracteres StepThe HD44780 é um acessório útil para o Bus Pirate. Ele pode ser usado para um teste rápido ou para um desenvolvimento lógico mais avançado. Além dos LCDs, os oito pinos de E / S de 2,5 volts-5 volts podem ser úteis para outras aplicações de Bus Pirate de alta contagem de pinos. Podemos ter PCBs, kits, ou kits montados produzidos pelo Seeed Studio por cerca de US $ 15, incluindo remessa mundial, mais aqui. Eu não poderia incluir alguns elementos de formatação e tabelas HTML em um Instructable, você pode ver a postagem original no blog Dangerous Prototypes.

Recomendado: