sexta-feira, 30 de setembro de 2016

Displays OLED 128x32 com controlador SSD1306

No post anterior, havia comentado sobre os displays OLED de 64x32 e os problemas que encontrei. Quando fiz o pedido dos displays de 64x32 também pedi de 128x32, assim, dando continuidade, segue o post sobre os displays OLED.

Display OLED de 128x32 acima e 64x32 abaixo. Tem  a mesma pinagem e também é extremamente pequeno.

Vista do lado inferior. Neste display também retirei os resistores de pull-up de 4k7 do barramento I²C e o regulador de tensão. Nesta placa há lugar para um resistor de 0R (R5) para contornar o regulador.

Adaptador para displays OLED com interface I²C usados no LaunchPad. Ele já tem montados os resistores (2k) de pull-up do barramento I²C embaixo da resina epoxi cinza.

Launchpad e um MSP430G2230 com um firmware de teste acionando o display OLED de 64x32.

Assim como no display de 64x32, o de 128x32 também tem o mapeamento do OLED diferente: usa somente a segunda metade da memória de display. Outra traquinagem que descobri é que normalmente os displays de 128x64 usam as linhas (Rows) de forma alternada. Na inicialização do controlador SSD1306 há um comando que define estes parâmetros (Comando 'Set COM pins hardware configuration', 0xDA, bit 5 COM Left/Right remap e bit 4 COM pin configuration).


Linhas alternadas como é normalmente feito em displays de 128x64.

Linhas sequenciais usadas no display de 128x32.


Bit 4 (COM pin configuration) erroneamente configurado para linhas alternadas. Note que as linhas ímpares do bitmap dos caracteres não é mostrada reduzindo o seu tamanho pela metade.
Bit 4 configurado para linhas sequenciais. Note que, assim, os caracteres são mostrados corretamente. O firmware usado é exatamente o mesmo usado no display de 64x32, apenas com este bit ajustado para linhas sequenciais.




Nenhum comentário:

Postar um comentário