Bienvenue aux nouveaux arrivants sur FantasPic !

- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.

--- L’équipe FantasPic ---
Idée, bugs, propositions .......
Pic18F et afficheur I2C MIDAS
Serge
Amateur
Amateur
Messages : 163
Enregistré en : septembre 2018

#1 Message par Serge » mar. 24 mars 2020 19:07 lien vers la Data-Sheet : Cliquez ici

Bonjour.
Par les temps qui courent, je m'intéresse au PIC....

Voilà, je voudrais piloter un afficheur MIDAS I2C avec un Pic 18F2620 qui possède le module MSSP.
Jusque-là pas de soucis, je gère à peu près l'I2c du pic.
C'est plus du côté de l'afficheur que je ne comprend pas tout.
Le data-Sheet de l'afficheur ne me permet pas de comprendre la logique d'initialisation de l'afficheur en terme de commande I2c.
J'ai beau essayer de suivre la logique décrite, rien ne s'affiche sur l'afficheur.

Un Oscillo me permet de vérifier les séquences I2c envoyées. et j'envoie bien les séquences que je crois être bonnes....
Mais l'afficheur reste muet.

Quelqu'un connait-il ce type d'afficheur ?

Pic18F et afficheur I2C MIDAS
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2595
Enregistré en : juillet 2016
Localisation : Terre

#2 Message par Temps-x » mar. 24 mars 2020 20:37 lien vers la Data-Sheet : Cliquez ici

Bonsoir Serge, et tout le forum,

Hum .... quelle est ton langage de programmation que tu pratiques ?

Peut on voir ton schéma si tu as fait ?

Serge a écrit :Source du message Un Oscillo me permet de vérifier les séquences I2c envoyées

Il faut un analyseur logique pour contrôler les séquences, à moins que ton oscilloscope le face.

Peut on voir le début de ton code, pour voir si il y à une erreur .

A+
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

Pic18F et afficheur I2C MIDAS
Serge
Amateur
Amateur
Messages : 163
Enregistré en : septembre 2018

#3 Message par Serge » mer. 25 mars 2020 09:36 lien vers la Data-Sheet : Cliquez ici

Bonjour.

J'utilise PIC Basic PRO, mais je n'utilise pas les commandes de PIC Basic pour gérer les registres du PIC comme "I2cWrite"....
Je gère les registre pour mieux comprendre le fonctionnement (j'essaye!)

Schéma Afficheur.pdf
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.

Pic18F et afficheur I2C MIDAS
Serge
Amateur
Amateur
Messages : 163
Enregistré en : septembre 2018

#4 Message par Serge » mer. 25 mars 2020 09:47 lien vers la Data-Sheet : Cliquez ici

'Module MMSP I2C
'ADRESSE ' en Esclave mettre l'adresse de la carte dans SSPADD
SSPADD = $13 '$13 ' en Maitre ($27=100kHz $0C=308kHz $09=400kHz @ 20 MHz) = 8MHz 'si Maitre, ce registre contient la vitesse du réseau et si Esclave, contient l'adresse de l'esclave

SSPSTAT.7 = 0 ' SMP: Controle de la vitesse du bus: 1=vitesse standard 100 Khz 0=vitesse haute 400 Khz
SSPSTAT.6 = 0 ' CKE: SMBus Select 1=enable SMBus 0=desable SMBus
SSPSTAT.5 = 0 ' D/A: Data/Address en mode Maitre: (réservé). en esclave: 1=dernier byte reçu ou transmis=DATA si non 0= Adresse
SSPSTAT.4 = 0 ' P: Stop bit si=1 StB à été détecté si=0 n'as pas été détecté
SSPSTAT.3 = 0 ' S: Start bit(1) si=1 StB à été détecté si=0 n'as pas été détecté
SSPSTAT.2 = 0 ' R/W: Read/Write Information bit (I2C mode only) en mode Esclave 1=Read 0=Write en mode Maitre 1= Transmission en cours 0= pas de transmission en cours
SSPSTAT.1 = 0 ' UA: Update Address bit (10-Bit Slave mode only) 1=Indique que l'utilisateur doit mettre à jour l'adresse dans le registre de SSPADD
' 0=L'adresse ne doit pas être mise à jour
SSPSTAT.0 = 0 ' 0=BF: Buffer Full Status bit en mode Transmission 1= SSPBUF est plein 0=Vide
'en mode Réception 1= SSPBUF est plein (sans inclure l'ACK et le StB) 0=vide
'Config I2c Maitre
SSPCON1.7 = 0 'WCOL Maitre: 1= Ecriture dans SSPBUF en transmission non valide (erreur) effacer le bit par soft
' Esclave: 1= le registre SSPBUF est écrit en transmission non finie (erreur) effacer le bit par soft
SSPCON1.6 = 0 'SSPOV Réception: 1= SSPBUF contient toujours un octet tandis qu'il en reçois un autre. (erreur) effacer le bit par soft
' Transmission: 1= Sans importance.
SSPCON1.5 = 1 'SSPEN 1= I2c Enable et configure les pins SDA et SCL
SSPCON1.4 = 0 'CKP Esclave: 1= Horloge de sortie 0= temps bas utilisé pour monter les données
' Maitre: 1= Non utilisé
SSPCON1.3 = 1 'SSPM 1111 = I2C Slave mode, 10-bit address with Start and Stop bit interrupts enabled
SSPCON1.2 = 0 '1110 = I2C Slave mode, 7-bit address with Start and Stop bit interrupts enabled
SSPCON1.1 = 0 '1011 = I2C Firmware Controlled Master mode (Slave Idle)
SSPCON1.0 = 0 '1000 = I2C Master mode, clock = FOSC/(4 * (SSPADD + 1))
'0111 = I2C Slave mode, 10-bit address
'0110 = I2C Slave mode, 7-bit address
'Bit combinations not specifically listed here are either reserved or implemented in SPI mode only.




'Gestion I2c
SSPCON2.7 = 0 'GCEN en mode Esclave seulement si =1 Enable Interruption si appel général à l'adresse(0000h) réception dans le SSPSR si=0 Desable l'appel générale
SSPCON2.6 = 0 'ACKSTAT Transmission Maitre seulement 1= pas d'acknowledge reçu de l'esclave 0= acknowledge reçu
SSPCON2.5 = 0 'ACKDT En Réception Maitre seulement 1= Pas d'acknowledge 0= acknowledge
SSPCON2.4 = 0 'ACKEN En Réception Maitre seulement 1= acknowledge sur SDA et SCL et transmission ACKDT Automatiquement (clear Hardwaire) 0= bus inocupé
SSPCON2.3 = 0 'RCEN Mode Maitre seulement 1= Enable mode réception I2c
SSPCON2.2 = 0 'PEN Mode Maitre seulement 1= Condition STOP sur SDA et SCL 0= libre (clear hardwaire)
SSPCON2.1 = 0 'RSEN Mode Maitre seulement 1= Condition Repeated START sur SDA et SCL 0= libre (clear hardwaire)
SSPCON2.0 = 0 'SEN Maitre: 1= Condition START sur SDA et SCL Esclave: 1= maintient l'horloge tant que l'esclave transmet

Ensuite, pour exemple j'envoie des séquences comme ci-dessous.....

while SSPCON2.2 : wend ' Attente bus libre
SSPCON2.0 = 1 ' Condition Start sur le bit SEN
while SSPCON2.0 : wend ' Attente fin de la condition START
SSPBUF = adresse_i2c ' Move Adresse to SSPBUF
SSPSTAT.2 = 1 ' Transmission de l'adresse
while SSPSTAT.2 : wend ' Fin Transmission de l'Adresse
t2=1
while SSPCON2.6 : wend ' Attente de l'acknowledge

'__________________________________'Adresse______________

while SSPSTAT.2 : wend ' Transmission en cours R/W
SSPBUF = $C0 ' Move code to SSPBUF
SSPSTAT.2 = 1 ' Transmission du code
pause 10
while SSPSTAT.2 : wend ' Transmission en cours R/W
SSPBUF = $80 ' Move code to SSPBUF
SSPSTAT.2 = 1
pause 10
while SSPSTAT.2 : wend ' Transmission en cours R/W
SSPBUF = $3A ' Move code to SSPBUF
SSPSTAT.2 = 1 ' Transmission du code
pause 10
while SSPSTAT.2 : wend ' Transmission en cours R/W
SSPBUF = $06 ' Move code to SSPBUF
SSPSTAT.2 = 1 ' Transmission du code
pause 10
while SSPSTAT.2 : wend ' Transmission en cours R/W
SSPBUF = $0F ' Move code to SSPBUF
SSPSTAT.2 = 1 ' Transmission du code
pause 10
while SSPSTAT.2 : wend ' Transmission en cours R/W
SSPBUF = "a" ' Move code to SSPBUF
SSPSTAT.2 = 1 ' Transmission du code

Pic18F et afficheur I2C MIDAS
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2589
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#5 Message par paulfjujo » mer. 25 mars 2020 09:50 lien vers la Data-Sheet : Cliquez ici

bonjour Serge , et à tous

Ce n'est pas avec ton schema ,que quelqu'un va pouvoir t'aider
qui present déja des particularités avec ce barda de condensateurs..

est-ce que tonafficheur contient déja les resistances de rappel necessaires au bus I2C ?
sinon, mets 1 R de 2,7 à 4,7K de rappel au +VCC sur SCL et SDA

pour cela, il faut poster :
* un lien sur la datasheet de l'afficheur
* ton code
Aide toi, le ciel ou FantasPic t'aidera

Pic18F et afficheur I2C MIDAS
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2589
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#6 Message par paulfjujo » mer. 25 mars 2020 09:50 lien vers la Data-Sheet : Cliquez ici

telescopage de post


n'hesite pas à mettre des delais important apres chaque commande
surtout dans la pahase d'init
c'est un probleme classique pour quasiment tous les LCD


ainsi qu'un delai de 100mS à 1sec , au demarrage programme,
le temps que l'alim du LCD soit bien stabilisée

si tu n'as pas de a
une photo recto verso de ton afficheur ?
ses dimensions ?
Aide toi, le ciel ou FantasPic t'aidera

Pic18F et afficheur I2C MIDAS
Serge
Amateur
Amateur
Messages : 163
Enregistré en : septembre 2018

#7 Message par Serge » mer. 25 mars 2020 09:58 lien vers la Data-Sheet : Cliquez ici

Quand à l'oscilo, il me permet de vérifier que l'adresse est bonne, et que l'afficheur répond bien l'ACK.
Cela me permet de vérifier aussi que les codes sont bien envoyés et reçu par l'afficheur.
Ce qui est bien le cas.
Mais l'afficheur reste muet!
Rien ne s'affiche.
Je pense que le problème vient de ce que je n'envoie pas les bonnes séquences à l'afficheur, mais c'est pas trop expliqué sur le data-Sheet

Pic18F et afficheur I2C MIDAS
Serge
Amateur
Amateur
Messages : 163
Enregistré en : septembre 2018

#8 Message par Serge » mer. 25 mars 2020 10:31 lien vers la Data-Sheet : Cliquez ici

Merci pour ces réponses.

Alors le data-Sheet de l'afficheur est en lien....
Les condensateurs sont demandés par le fabricant pour utiliser l'I2C en 5V au lieu de 3V

J'ai déjà essayé des temps très long, et ça ne change rien.

Pic18F et afficheur I2C MIDAS
Serge
Amateur
Amateur
Messages : 163
Enregistré en : septembre 2018

#9 Message par Serge » mer. 25 mars 2020 10:34 lien vers la Data-Sheet : Cliquez ici

Schéma Afficheur.pdf
Les résistances de rappel sont incorporées à l'afficheur, et par précaution j'ai ajouté des résistances de 4,7K

Et si je n'avais pas ces résistances, je n'aurais pas mon signal à 5V sur l'oscillo.
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Modifié en dernier par Serge le mer. 25 mars 2020 11:03, modifié 1 fois.

Pic18F et afficheur I2C MIDAS
Serge
Amateur
Amateur
Messages : 163
Enregistré en : septembre 2018

#10 Message par Serge » mer. 25 mars 2020 10:56 lien vers la Data-Sheet : Cliquez ici

En fait ce que j'espère, c'est plus une aide sur les séquences I2c de l'afficheur, car j'utilise déjà le dialogue I2c entre deux pic, et je m'en sort à peu près.
C'est je pense plus un problème lié à l'afficheur et ses commandes qu'autre chôse...
Mais.....


Retourner vers « Le forum Fantas-PIC »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 28 invités