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 ---
- 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 ---
Modérateur : Jérémy
test OLED DM13-625 SPI driver SSD1106
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
bonsoir,
Je viens de recevoir un OLED 1,3" en mode SPI/I2C .. MAIS ce n'est pas un modele SSD1306 !
je l'ai testé avec la version ASM de TempsX , mais probleme d'affichage bigorné..
Je reprends donc à zero, mais en C !
avec la datasheet du OLED
J'utilise la lib SPI1 Hardware de mikroC
Test liaison SPI OK avec SQA analyser.
en me fiant à l'init montrée dans la datasheet page 16 -> RIEN !
j'ai donc utilisé l'init donnée dans l'ordinogramme page 14
j'ai reutilisé mon affichage de char defini pour un OLED SSD1306
et réussi à afficher 4 lignes avec des chars
une ligne de cracra verticale apparait en bout d'ecran
ce qui confirmerait (?) que la RAM ecran est de 132x64 au lieu de 128x64
voir video ....
rajouté l'ecriture de A en position X=4 sinon il est un peut bouffé sur le coté et char Z en 120
Nota: si j'ecris le char 'Z' en position X=124 on le voit en entier ! il y a bien 132 position sens X! sinon il serait bouffé coté droit
fichier hex de ce test
Je viens de recevoir un OLED 1,3" en mode SPI/I2C .. MAIS ce n'est pas un modele SSD1306 !
je l'ai testé avec la version ASM de TempsX , mais probleme d'affichage bigorné..
Je reprends donc à zero, mais en C !
avec la datasheet du OLED
J'utilise la lib SPI1 Hardware de mikroC
Test liaison SPI OK avec SQA analyser.
en me fiant à l'init montrée dans la datasheet page 16 -> RIEN !
j'ai donc utilisé l'init donnée dans l'ordinogramme page 14
Code : Tout sélectionner
Hardware:
// SPI1
sbit Chip_Sel at LATC0_bit;//RC0 active ou désactive la transmission
sbit RES at LATC.B1; //RC1 reset de l'écran
sbit DC_mode at LATC.B2; //RC2 sélection du mode : commande = 0 , donnée = 1
sbit Sck at LATC.B3; // RC3 horloge de synchronisation SPI
sbit MOSI at LATC.B5; // RC5 envoye les données sur écran oled 128x64
sbit Chip_Sel_Dir at TRISC0_bit;
sbit RES_dir at TRISC.B1; //RC1 reset de l'écran
sbit DC_mode_dir at TRISC.B2;
sbit Sck_dir at TRISC.B3; // RC3 horloge de synchronisation SPI
sbit MOSI_dir at TRISA.B5;
unsigned char Init_A_Chaine[]={
// init page 14 datasheet DM-OLED13-625
0xD5,0x80,
0xA8,0x3F,
0xD3,0x00,
0x40,
0xAD,0x8B,
0xA1,
0xC8,
0xDA,0x12,
0x81,0xBF,
0xD9,0x22,
0xDB,0x40,
0x32,0xA6,
0xAF,
0xFF // terminateur !
};
j'ai reutilisé mon affichage de char defini pour un OLED SSD1306
et réussi à afficher 4 lignes avec des chars
une ligne de cracra verticale apparait en bout d'ecran
ce qui confirmerait (?) que la RAM ecran est de 132x64 au lieu de 128x64
voir video ....
rajouté l'ecriture de A en position X=4 sinon il est un peut bouffé sur le coté et char Z en 120
Nota: si j'ecris le char 'Z' en position X=124 on le voit en entier ! il y a bien 132 position sens X! sinon il serait bouffé coté droit
Code : Tout sélectionner
CPrint(" Init (A) OLED 1,3\" SSD1106 LCD 128x64\r\n");
RES=1;
Delay_ms(100);
RES=0;
Delay_ms(1000);
RES=1;
Delay_ms(1000);
SPI1_Write(0xAE); // display OFF
i=0;
SQA=1;
Chip_Sel=0;
SQA=0;
do
{
Led_R=0;
SPI1_Write(Init_A_Chaine[i]);
Led_R=1;
//SQA=0;
i++ ;
}while (Init_A_Chaine[i]<0xFF) ;
do
{
SQA=0;
Chip_Sel=1;
Delay_ms(100);
Chip_Sel=0;
OLED_CLS();
OLED_SetPos(0,0);
Write_Char_At(4,1,'A');
Write_Char_At(124,1,'Z'); // occupe la place de 124 à 131
Delay_ms(2000);
OLED_CLS();
CPrint(" ABCD ligne 1\r\n");
Chip_Sel=0;
OLED_CLS();
OLED_SetPos(0,0);
Write_Char_At(8,1,'A');
Write_Char_At(16,1,'B');
Write_Char_At(24,1,'C');
Write_Char_At(32,1,'D');
Chip_Sel=1;
Delay_ms(1000);
CPrint(" EFGH ligne 3\r\n");
Chip_Sel=0;
Write_Char_At(40,2,'E');
Write_Char_At(48,2,'F');
Write_Char_At(56,2,'G');
Write_Char_At(64,2,'H');
Chip_Sel=1;
Delay_ms(1000);
CPrint(" IJKL ligne 3\r\n");
Chip_Sel=0;
Write_Char_At(72,3,'I');
Write_Char_At(80,3,'J');
Write_Char_At(88,3,'K');
Write_Char_At(96,3,'L');
Chip_Sel=1;
Delay_ms(1000);
CPrint(" MNO ligne 4\r\n");
Chip_Sel=0;
Write_Char_At(104,4,'M');
Write_Char_At(112,4,'N');
Write_Char_At(120,4,'O');
Chip_Sel=1;
Delay_ms(1000);
_asm btg LATA,4
// CPrint(" image4 128x64 (C) cheval \r\n");
}
while(1);
fichier hex de ce test
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
test OLED DM13-625 SPI driver SSD1106
test OLED DM13-625 SPI driver SSD1106
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
bonsoir,
il y a 4 pixels qui trainent sur les lignes (horizontales)
Pour effacer COMPLETEMENT l'ecran , en particulier le cra cra qui restait sur la partie droite de l'ecran
je suis obligé de razer 132x64 pixels au lieu de 128x64..
de plus avec les memes commandes que le SSD1306, il faut que je rajoute 4 pixels sur l'origine des X pour
que les caracteres ne soit pas à moitié bouffés.. le dernier caractere de la ligne commençant en 124 ( ou lieu de 120)
124+8=132 ...
Le resultat actuel N'EST PAS PARFAIT ! voir 1ere ligne en haut des images BMP ??
d'ou vient ce probleme de 4 pixels ???
nota: j'utilise SPI1 Hardware du 18F26K22
lien sur le source du projet mikroC
avec projet zippé. (dont le *.hex)
lien surla video de ce Test
nota pour Temps X : je n'ai pas pu tester ta version asm .. l'ecran reste noir..
il y a 4 pixels qui trainent sur les lignes (horizontales)
Pour effacer COMPLETEMENT l'ecran , en particulier le cra cra qui restait sur la partie droite de l'ecran
je suis obligé de razer 132x64 pixels au lieu de 128x64..
de plus avec les memes commandes que le SSD1306, il faut que je rajoute 4 pixels sur l'origine des X pour
que les caracteres ne soit pas à moitié bouffés.. le dernier caractere de la ligne commençant en 124 ( ou lieu de 120)
124+8=132 ...
Le resultat actuel N'EST PAS PARFAIT ! voir 1ere ligne en haut des images BMP ??
d'ou vient ce probleme de 4 pixels ???
nota: j'utilise SPI1 Hardware du 18F26K22
lien sur le source du projet mikroC
avec projet zippé. (dont le *.hex)
lien surla video de ce Test
nota pour Temps X : je n'ai pas pu tester ta version asm .. l'ecran reste noir..
test OLED DM13-625 SPI driver SSD1106
Bonsoir Paul et à tous
As-tu essayé un décalage de 2 plutôt que 4 ?
https://forum.arduino.cc/t/whats-the-di ... 6/247368/5
As-tu essayé un décalage de 2 plutôt que 4 ?
https://forum.arduino.cc/t/whats-the-di ... 6/247368/5
test OLED DM13-625 SPI driver SSD1106
Bonsoir paulfjujo, satinas, et tout le forum,
C'est une erreur de faire cela, tu vas démarrer avec 32 pixels de plus sur ton écran, et quand tu vas lire une image tu vas avoir un décalage d'une ligne vers le haut
Quand tu arrives à la fin de ton écran tu as 128 pixels, si tu continus a écrire sans revenir à la ligne tu écrits en ram, mais en même temps sur ton écran, ce qui nous fait.
128 pixels x 8 lignes = 1024 pixels
132 pixels x 8 lignes = 1056 pixels
Tu n'auras pas de problème avec les caractères, mais avec tout ce qui est graphique, tu on auras si tu continus dans la direction que tu es parti, j'ai tout expliqué ICI
J'ai refait un essai, et ça fonctionne très bien chez moi avec le fichier que j'ai déposé sur le forum de Fantas-Pic, c'est le même fichier que tu as essayé et qui fonctionnait sur ton écran, j'ai seulement rajouté 10 lignes de plus, qui n’ont rien a voir avec le démarrage de l'écran.
Nota : j'ai branché tout les fils (qui son au nombre de 7 fils avec alimentation de comprise)
A+
paulfjujo a écrit :Source du message je suis obligé de razer 132x64 pixels au lieu de 128x64
C'est une erreur de faire cela, tu vas démarrer avec 32 pixels de plus sur ton écran, et quand tu vas lire une image tu vas avoir un décalage d'une ligne vers le haut
Quand tu arrives à la fin de ton écran tu as 128 pixels, si tu continus a écrire sans revenir à la ligne tu écrits en ram, mais en même temps sur ton écran, ce qui nous fait.
128 pixels x 8 lignes = 1024 pixels
132 pixels x 8 lignes = 1056 pixels
Tu n'auras pas de problème avec les caractères, mais avec tout ce qui est graphique, tu on auras si tu continus dans la direction que tu es parti, j'ai tout expliqué ICI
paulfjujo a écrit :Source du message nota pour Temps X : je n'ai pas pu tester ta version asm .. l'ecran reste noir..
J'ai refait un essai, et ça fonctionne très bien chez moi avec le fichier que j'ai déposé sur le forum de Fantas-Pic, c'est le même fichier que tu as essayé et qui fonctionnait sur ton écran, j'ai seulement rajouté 10 lignes de plus, qui n’ont rien a voir avec le démarrage de l'écran.
Nota : j'ai branché tout les fils (qui son au nombre de 7 fils avec alimentation de comprise)
A+
test OLED DM13-625 SPI driver SSD1106
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
bonsoir,
Affichage BMP correct avec decalage x de 4 pixels par ligne
car avec une config SSD1306 , les cracra ne sont qu'à droite et le 1er char est bouffé à moitié
malgré ceci :
Etonnant qu'on ne trouve pas de trace de tout cela, dans la datasheet !
Une VRAI explication serait bienvenue.
test avec 7 images BMP ..OK
sauf un petit probleme avec 2 fichier image en include fichier H (images BMP)
m'obligeant à mettre le contenu dans le source ..je ne sais pas encore pourquoi ?
les 5 autres fichiers include sont pourtant OK ..
exemple affichage normal,puis reverse
sur terminal YAT
Image :1 cheval
Image :2 Bip_bip_Coyote_128x64
Image :3 Popeye_Olive
Image :4 Vumetre
Image :5 truck_bmp
Image :6 Monroe_128x64_bmp
Image :7 Marilyn-Monroe_blanc
Image :8 paulfjujo
.... + Symboles Normal et reverse
voir video sur ma page web..
source complet et Hex dispo !
Affichage BMP correct avec decalage x de 4 pixels par ligne
car avec une config SSD1306 , les cracra ne sont qu'à droite et le 1er char est bouffé à moitié
malgré ceci :
(1) About control chip SSH1106:
SSG1106 compatible with SSD1306 basic, difference is that SSH1106 control chip RAM space is 132*64,
while SSD1306 space is 128*64.
The 1.3-inch OLED 128*64 dot matrix, so in the middle of the screen production took 128 row.
When using SSD1306 program point SSH1106 screen, only need to change address to 0x02 row to start.
(2) There is only one small difference between SSD1306 and SH1106:
The SH1106 controller has an internal RAM of 132x64 pixel.
The SSD1306 only has 128x64 pixel.
First problem for standard 128x64 OLEDs with SH1106 controller is:
How is the 128x64 window mapped into the 132x64 RAM?
It seems, that the 128x64 OLED is centered in most cases within the 132x64 area,
that means pixel (2,0) in ram is pixel (0,0) on the display.
Etonnant qu'on ne trouve pas de trace de tout cela, dans la datasheet !
Une VRAI explication serait bienvenue.
test avec 7 images BMP ..OK
sauf un petit probleme avec 2 fichier image en include fichier H (images BMP)
m'obligeant à mettre le contenu dans le source ..je ne sais pas encore pourquoi ?
les 5 autres fichiers include sont pourtant OK ..
Code : Tout sélectionner
Les fichiers *.h contiennent les images BMP en N&B , de 1024 bytes ( pour 128x64= 8192 bits -> 8192/8=1024 Bytes)
#include "../__common/BMP_128x64_Cheval.h"
#include "../__common/BMP_128x64_Vumetre.h"
#include "../__common/BMP_128x64_Popeye.h"
#include "../__common/BMP_Truck.h"
#include "../__common/BMP_Bip_bip_Coyote_128x64.h"
//#include "../__common/BMP_128x64_Monroe_blanc.h"
//#include "../__common/BMP_Tigre_128x64.h"
Les pointeurs ..
unsigned const char *p1;
unsigned const char *Tableau_BMP[]={cheval,Bip_bip_Coyote_128x64,Popeye_Olive,Vumetre,truck_bmp} ;
unsigned const char *Tableau_Titre[]={" cheval"," Bip_bip et Coyote","Popeye et Olive","Vu metre","Truck"}
l' affichage en boucle
for (i=0;i<5;i++)
{
CPrint(" Image :"); UART1_Write(i+49);UART1_Write(' ');
CPrint(Tableau_Titre[i]); CRLF1();
SH1106_ClearDisplay();
p1=Tableau_BMP[i];
Display_Picture(p1) ;
Delay_2sec();
}
rajoutd'un parametre , pour affichage inverse video , dans la fonction :
void Display_Picture(unsigned const char * pic, char Reverse)
...
cz= (*(pic+k));
if (Reverse==0) WriteDat(cz); else WriteDat(~cz);
exemple affichage normal,puis reverse
sur terminal YAT
Image :1 cheval
Image :2 Bip_bip_Coyote_128x64
Image :3 Popeye_Olive
Image :4 Vumetre
Image :5 truck_bmp
Image :6 Monroe_128x64_bmp
Image :7 Marilyn-Monroe_blanc
Image :8 paulfjujo
.... + Symboles Normal et reverse
voir video sur ma page web..
source complet et Hex dispo !
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
test OLED DM13-625 SPI driver SSD1106
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
mise à jour...
suite à l'imperfection de l'image "Symboles" on ne voyait pas la 1ere jambe de la lettre U du mot USE
avec au final un decalage de seulement 2 pixel sens X
l'image de 128 pixel s'affiche entre x=2 et x=130 !
un nouveau probleme rencontré
avec les #include des images BMP inclus dans le programme principal .
PB au delà de 6 fichiers images BMP inclus
si le contenu du fichier est directement inclus dans le source , no problemo !
1 371 Specifier needed bmp_tigre_128x64.h
1 396 Invalid declarator expected'(' or identifier bmp_tigre_128x64.h
598 324 Undeclared identifier 'Tigre' in expression OLED_SPI_DM13_625_18F26K22_2021_1003.c
y aurait-il un nombre maxi de fichiers pouvant etre inclus ?
fichier avec suffixe *.h ou *.Inc ou *.txt c'est idem
je ne me suis pas attardé la dessus .. mais j'aime bien comprendre !
suite à l'imperfection de l'image "Symboles" on ne voyait pas la 1ere jambe de la lettre U du mot USE
avec au final un decalage de seulement 2 pixel sens X
l'image de 128 pixel s'affiche entre x=2 et x=130 !
un nouveau probleme rencontré
avec les #include des images BMP inclus dans le programme principal .
PB au delà de 6 fichiers images BMP inclus
si le contenu du fichier est directement inclus dans le source , no problemo !
1 371 Specifier needed bmp_tigre_128x64.h
1 396 Invalid declarator expected'(' or identifier bmp_tigre_128x64.h
598 324 Undeclared identifier 'Tigre' in expression OLED_SPI_DM13_625_18F26K22_2021_1003.c
y aurait-il un nombre maxi de fichiers pouvant etre inclus ?
fichier avec suffixe *.h ou *.Inc ou *.txt c'est idem
je ne me suis pas attardé la dessus .. mais j'aime bien comprendre !
test OLED DM13-625 SPI driver SSD1106
Bonsoir paulfjujo, et tout le forum,
pour cette mise à jour que j'ai lu avec attention, mais j'ai voulu télécharger le fichier : Zip mikroC : OLED_SPI_DM13_625_18F26K22_2021-0929.zip
malheureusement impossible, j'ai un message qui me renvoi sur la page de free même si je fais pas du mikroC j'arrive à le comprendre, et c'est toujours instructive.
Je regarde très souvent ton site, que s'apprécie beaucoup, pour tout cette mine de documentation
A+
paulfjujo a écrit :Source du message mise à jour...
pour cette mise à jour que j'ai lu avec attention, mais j'ai voulu télécharger le fichier : Zip mikroC : OLED_SPI_DM13_625_18F26K22_2021-0929.zip
malheureusement impossible, j'ai un message qui me renvoi sur la page de free même si je fais pas du mikroC j'arrive à le comprendre, et c'est toujours instructive.
Je regarde très souvent ton site, que s'apprécie beaucoup, pour tout cette mine de documentation
A+
test OLED DM13-625 SPI driver SSD1106
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
bonjour Temps-X et à tous,
petit erreur de mise à jour, pointe maintenant sur la derniere version ZIP du 3/10
un petit UP sur le post #7
Pourquoi mon fichier include concernant l'image Tigre genere cette erreur
alors que j'ai déja inclus d'autres fichiers images auparavant , sans qu'une erreur soit generée
et que si j'incorpore directement le contenu du fichier Tigre , je n'ai pas d'erreur .
AI-je fais ( encore) une boulette ou si c'est un MikroC probleme ?
Temps-x a écrit :.....
pour cette mise à jour que j'ai lu avec attention, mais j'ai voulu télécharger le fichier : Zip mikroC : OLED_SPI_DM13_625_18F26K22_2021-0929.zip
malheureusement impossible, j'ai un message qui me renvoi sur la page de free même si je fais pas du mikroC j'arrive à le comprendre, et c'est toujours instructif.
petit erreur de mise à jour, pointe maintenant sur la derniere version ZIP du 3/10
un petit UP sur le post #7
Pourquoi mon fichier include concernant l'image Tigre genere cette erreur
alors que j'ai déja inclus d'autres fichiers images auparavant , sans qu'une erreur soit generée
et que si j'incorpore directement le contenu du fichier Tigre , je n'ai pas d'erreur .
AI-je fais ( encore) une boulette ou si c'est un MikroC probleme ?
test OLED DM13-625 SPI driver SSD1106
Bonsoir paulfjujo, et tout le forum,
Aucune idée, j'ai regardé le fichier tigre, et je n'ai pas vue d'erreur dessus, apparemment tu travailles en décimal sur les fichiers graphique.
Moi je me pencherais plutôt vers MicroC, il faut revenir au source paulfjujo, ASM, il y a que ça de vrai (car on sait ou on va dans les sous programmes)
Bon car je vais me faire expulsé.
A+
paulfjujo a écrit :Source du message Pourquoi mon fichier include concernant l'image Tigre genere cette erreur
Aucune idée, j'ai regardé le fichier tigre, et je n'ai pas vue d'erreur dessus, apparemment tu travailles en décimal sur les fichiers graphique.
paulfjujo a écrit :Source du message AI-je fais ( encore) une boulette ou si c'est un MikroC probleme ?
Moi je me pencherais plutôt vers MicroC, il faut revenir au source paulfjujo, ASM, il y a que ça de vrai (car on sait ou on va dans les sous programmes)
Bon car je vais me faire expulsé.
A+
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 17 invités