28x2 + lcd ( pcf2119)

dje8269

Senior Member
Bonjour,

Je me résigne à venir vous embêter , pour faire fonctionner ce maudit écran LCD . J'y suis depuis hier soir sans succés.

j'en suis a ma 5 iéme lecture de la DS au moins , mais toujours avec des passages à vide .....

j'ai ru comprendre que l'adresse du slave était , %011101xx . qu'il fonctionnait a 400khz donc fast .

J'ai cru comprendre qu'il fallait l'initialiser, ais j'y arrive pas .

Il parle de 8 bits , ils montrent des tableaux avec 6 bits ou 10 bits .

Je sais plus quoi faire, alors je fais appel à vous.

DS de l'écran
DS du µC PCF2119

Mon début de programme :

Code:
#PICAXE 28X2

'####################################    Configuration I/O    ####################################
symbol compteur =  b2
symbol address = w27

'####################################     Initialisation      ####################################
setfreq M8

hi2csetup i2cmaster, %01110100, i2cfast, i2cbyte

pause 300
'####################################   Programme Principal   ####################################
do

	
	?????
	
loop
Platine test recepteur 2 picaxe.png
 

MGU

Senior Member
Bonjour,

Les interfaces I2C sont généralement des "expandeurs de bits". Il faut que les bits de l'octet envoyé arrivent sur les bonnes broches de l'afficheur.
Un exemple qui doit ressembler:
http://electromag1.wifeo.com/lcd-i2c-expandeur-pcf8574.php

Ajout:
J'ai survolé la doc, il sert à quoi cet afficheur? les caractères sont définis où?


MM
 
Last edited:

PieM

Senior Member
ça devient une manie sur ce forum d'acheter des trucs chinois sans doc, ou de la découvrir après!
Désolé mais c'est encore un bon exemple ici:
car acheter un afficheur qui a un driver très particulier avec 88 pages de DS qu'on découvre après coup, tout ça pour avoir 2 lignes de 16 caractères, c'est chercher des emmerdes.

Déjà dit et répété:
Sur les Picaxes l'adresse I2C est définie avec 7 bits; le bit R/W est mis par l'interpréteur en fonction de l'instruction HI2Cin ou HI2Cout.
donc l'adresse est soit %0111010 soit %0111011 en fonction de l'état de la broche SA0 du driver PCF2119
 

dje8269

Senior Member
avec 88 pages de DS
Effectivement ! compliqué pour mon anglais ! mais quelques pages seulement sont vraiment essentielles comprendre le fonctionnement je pense .

Je vais tenté de vous indiqué tout ca, ca vous claquez les 88 pages inutilement:
Page 44/45 je crois comprendre qu'entre chaque bytes envoyés il faut faire un ack ? avec un "A" ? ça je comprends pas

Ensuite vous pouvez vous rendre à la page 64 je pense :" 16.12 I2C-bus opération, 1-line display": On retrouve le descriptif avec un exemple


Mais en page 66 on retrouve l'initialisation . Ici je comprend pas plusieurs choses :
les lettres qu'ils mettent "M" "H" "S" "I_D" ??

Dans le tableau on retrouve : "RS" pour Register Select . Ils mettent 0 , donc si je parlé au registre 0 . j’écris alors " hi2cout 0, ( %xxxxxxxx )"
Mais si dans la foulée je re-écris dans le registre 0 la fois prochaine je vais ecraser les données? Pour quoi le registre est il toujours le même ?
 

MGU

Senior Member
Je comprends que tu essaies de faire fonctionner ton afficheur.
Mais pour 1,40 euros sur eBay, il y a des interfaces I2C qui se connectent sur tout afficheur HD44780 (1602, 2002, 2004) à quelques euros.

Tu relis la page du site en #2 et tu écris ce que tu veux.

MM
 
Last edited:

dje8269

Senior Member
Mais pour 1,40 euros sur eBay, il y a des interfaces I2C qui se connectent sur tout afficheur HD44780 (1602, 2002, 2004) à quelques euros.
Oui mais les délais sont bien trop long . Si tout est intégré je pensais que ça allais être plus simple ; je me suis gouré encore une fois ! .
Finalement l’électronique ça doit pas être fait pour moi . Une bonne remise en question , car je n'arrive même pas a faire fonctionner un pauvre écran LCD au bout d'un an et demi !

Tu relis la page du site en #2 et tu écrits ce que tu veux.
Je comprends pas ? un lien ?
 

dje8269

Senior Member
Page27 :

When using the I2C-bus, the instruction has to be commenced with a control byte as shown in Ta b l e 9
. Details about the I2C-bus interface can be found in Section 11.2. An example of operations on the I2C-bus is given n
Ta b l e 4 4
Je dois donc commencer par faire un control byte .
Pour ce faire il faut aller à la page 64 .

On voit le tableau des étapes a faire . je m’exécute certainement mal ,car toujours rien sur mon écran .

Voici mon programme avec les commentaires . Je n'ai aps la prétention de vous dire quoi chercher , mais j'essaye de vous guider pour ne pas avoir a vous taper 88 pages .

Je comprends pas , j'ai tout repris a la lettre . I lme manque cett ehistoire de acknowledge , et pourquoi on dois envoyer l'address_slave a chaque fois ?

Code:
[color=Navy]#PICAXE [/color][color=Black]28X2[/color]

[color=Green]'####################################    Configuration I/O    ####################################[/color]
[color=Blue]symbol [/color][color=Purple]compteur [/color][color=DarkCyan]=  [/color][color=Purple]b2[/color]
[color=Blue]symbol [/color][color=Purple]address [/color][color=DarkCyan]= [/color][color=Purple]w27[/color]

[color=Green]'####################################     Initialisation      ####################################[/color]
[color=Blue]setfreq M8

hi2csetup i2cmaster[/color][color=Black], [/color][color=Navy]%0111010 [/color][color=Black], [/color][color=Blue]i2cfast[/color][color=Black], [/color][color=Blue]i2cbyte[/color]
[color=Purple]address [/color][color=DarkCyan]= [/color][color=Navy]0[/color]
[color=Blue]pause [/color][color=Navy]300[/color]

[color=Green]'####################################   Programme Principal   ####################################
 [/color]
[color=Blue]hi2cout ([/color][color=Navy]%01110100[/color][color=Blue])     [/color][color=Green]' Slave address[/color]
[color=Blue]pause [/color][color=Navy]10[/color]

[color=Blue]hi2cout ([/color][color=Navy]%00000000[/color][color=Blue])     [/color][color=Green]' control byte    [/color]
[color=Blue]pause [/color][color=Navy]10[/color]

[color=Blue]hi2cout ([/color][color=Navy]%00100000[/color][color=Blue])     [/color][color=Green]' Set fonction[/color]
[color=Blue]pause [/color][color=Navy]10[/color]

[color=Blue]hi2cout ([/color][color=Navy]%00001110[/color][color=Blue])     [/color][color=Green]' Display_ctl  notmalement la deja je devrais voir le curseur clignoter . Rien donc ca bug avant surement ![/color]
[color=Blue]pause [/color][color=Navy]10[/color]

[color=Blue]hi2cout ([/color][color=Navy]%00000110[/color][color=Blue])     [/color][color=Green]'  Entry_mode_set [/color]
[color=Blue]pause [/color][color=Navy]10[/color]

[color=Green]' For writing data to DDRAM, RS must be set to 1; therefore a control byte is needed
' Pour ecrire des données sur la RAM le bit RS doit etre mis à 1 . Mais avant un "controle byte" est nécessaire[/color]

[color=Blue]hi2cout ([/color][color=Navy]%01110100[/color][color=Blue])     [/color][color=Green]' Slave address[/color]
[color=Blue]pause [/color][color=Navy]10[/color]

[color=Blue]hi2cout ([/color][color=Navy]%01000000[/color][color=Blue])     [/color][color=Green]' control byte on passe RS à 1[/color]
[color=Blue]pause [/color][color=Navy]10[/color]


[color=Blue]do

hi2cout ([/color][color=Navy]%01010000[/color][color=Blue])     [/color][color=Green]' write_data , ici on ecrit un "P", le curseur est automatiquement incrementer et décaler vers la droite .[/color]
[color=Blue]pause [/color][color=Navy]5[/color]
[color=Blue]hi2cout ([/color][color=Navy]%01001000[/color][color=Blue])     [/color][color=Green]' write_data , ici on ecrit un "H"[/color]
[color=Blue]pause [/color][color=Navy]5[/color]


[color=Blue]loop[/color]
 
Top