Ir para conteúdo
  • Cadastre-se

Reutilizar LCD HP PSC1600

Avalie este tópico:


Camilo Ruiz

Posts em destaque

Reutilizar LCD HP PSC1600 (Actualizado)

 

Olá

 

Eu normalmente não postar muitas vezes e se eu deveria corrigir algo por favor me avise. (Também não falo muito bem o Português)

Quero compartilhar algo sobre algo que eu trabalhei um par de dias para o modo de diversão. É 16x2 reutilização LCD extraída a partir de uma impressora HP danificado. Isso é muito interessante se eles são pessoas que gostam de brincar com Arduino ou microcontroladores.

 

Não há informações sobre como reciclar estes LCD, no entanto, é muito limitado, especialmente porque a HP faz seus próprios modelos e reutilizá-la é necessário fazer alguma engenharia reversa, no entanto, você pode encontrar algumas informações que me motivou, por exemplo, existem aqui alguma coisa.

 

O LCD em questão é a seguinte:

009.jpg

 

Na esperança de encontrar um LCD padrão (ex HD44780 ) , procurar informações no Google e não encontrar nada ( a única informação que eu sei é o número da peça que está impresso q5584 60154 B).

 

FF9.jpg

 

 

A única maneira de fazer essa engenharia reversa estaria trabalhando com o LCD , felizmente, a impressora (sem foto que eu tomei , sorry) um velho HP PSC1600 iluminadas para exibir um erro no LCD. Isto é tudo que eu precisava para começar a investigar .

 

Em primeiro lugar, visualmente I procurar pistas sobre a conexão do LCD. Eu me encontro com 12 pinos, que número para evitar confusão.

 

FB2.jpg

 

 

À primeira vista (e confirmado mais tarde ) de reunião :

 

  • Os pinos 2 e 3 não estão conectados
  • Os pinos 1 e 10 são ligados entre si
  • O pino 11 controles um transistor de tal forma que permite Backlight ignição
  • O pino 12 está alimentando Backlight

 

Usando um encontro multímetro :

 

  • Pin 1 e 10 estão alimentando a 3.3V
  • Pino 8 é GND
  • Pin 9 é o poder de 5V
  • O pino 12 é o poder da luz de fundo que são 12V

 

 

Isso deixa -me a descobrir o uso de pinos 4, 5, 6 e 7. Para isso eu usei um FPGA (especificamente uma placa NEXYS 2 ) como um analisador lógico (usando um código encontrado na Internet) ( se eles iriam fazer um post sobre isso ) . I soldadas fios da impressora de cartões e captura de dados com FPGA e analisadas no computador.

 

97E.jpg

 

 

E eu me encontro com um sinal semelhante a este, onde você pode ver uma comunicação SPI .

 

C34.jpg

 

 

Sabendo disso eu recebo a pinagem do LCD que :

 

1-- 3.3V

2-- Não conectado

3-- Não conectado

4-- Chip Select ( ativo baixo) de interface de SPI

5-- SCLK para a interface SPI

6-- Reset ( ativo baixo)

7-- dados SPI ( MOSI )

8-- GND

9-- 5V

10-- 3.3V

11-- Controle de luz de fundo

12-- Backlight Poder 12V

 

Com o mesmo FPGA realizada uma SPI sniffer ( projetado por mim ) para capturar a comunicação e obter comandos . Felizmente a impressora faz uso de quase todos os comandos , mesmo cria um personagem como no LCD. Com estes comandos capturados e pinagem eu ligar o LCD a um MSP430 (especificamente uma G2553 ) e realizar uma biblioteca para usar o LCD facilmente ( biblioteca muito básico que pode melhorar muito e que poderia ser facilmente portado para Arduino ) eo resultado espera-se , agora ' Eu tenho controle sobre o LCD !!

 

 

Com tentativa e erro que eu encontrar o código para cada personagem , este LCD tem 511 caracteres diferentes , mas eu focar o alfabeto e números. Na foto eu mostro os primeiros 127 caracteres.

 

821.jpg

 

 

Use o código para exibir a mensagem no LCD usando o micro ( MSP430G2553 ) é a seguinte:

int main(void)

{

WDTCTL = WDTPW + WDTHOLD; // Stop WDT

HPlcd_init();

 

spisend(0x38);//2 lines address mode

spisend(0x40);//(custom char address)

spisend(0x3C);//2 lines, command mode

spisend(0x87);//write next 0x07+1 =8 bytes. Is used create a custom character

spisend(0x00);// 000 00000

spisend(0x00);// 000 00000

spisend(0x1a); // 000 01010

spisend(0x1f); // 000 11111

spisend(0x0e); // 000 01110

spisend(0x1f); // 000 11111

spisend(0x1a); // 000 01010

spisend(0x00); // 000 00000

 

HPlcd_on();//lcd on

HPlcd_clear();//clear LCD

 

HPlcd_set_address(HPlcd_line1_ADDR);

spisend(0x0C);//0x0c

HPlcd_write_char(0);

HPlcd_write_string(" electronicaBR "lcd hp;

HPlcd_write_char(0);

HPlcd_set_address(HPlcd_line2_ADDR);

HPlcd_write_string("Caaruizbe");

 

P1OUT |= BIT6;

}

 

 

A biblioteca pode ser baixado aqui :

Você não tem permissão para ver links. Faça login ou cadastre-se.

  • Joinha 2
Link para o comentário
Compartilhar em outros sites

  • 7 meses depois...
  • 3 semanas depois...

Participe agora da conversa!

Você pode postar agora e se cadastrar mais tarde. Se você tiver uma conta, faça login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Restaurar formatação

  Apenas 75 emoticons máximos são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir apenas como um link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Você não pode colar imagens diretamente. Envie ou insira imagens do URL.

SOBRE O ELETRÔNICABR

EletrônicaBR é o melhor fórum técnico online, temos o maior e mais atualizado acervo de Esquemas, Bios e Firmwares da internet. Através de nosso sistema de créditos, usuários participativos têm acesso totalmente gratuito. Os melhores técnicos do mundo estão aqui!
Técnico sem o EletrônicaBR não é um técnico completo! Leia Mais...
×
×
  • Criar Novo...