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 ---
Forum général sur le langage C !

Modérateur : Jérémy

ConnectEVE
Jérémy
Administrateur du site
Administrateur du site
Messages : 2722
Âge : 44
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#11 Message par Jérémy » jeu. 3 déc. 2020 10:33 lien vers la Data-Sheet : Cliquez ici

Bonjour à tous,

Concernant le ConnectEVE on va dire que le problème est résolu ! Erreur d'oscillateur , avec le SPI de communication.
Pour les pics non reconnu par la carte EasyPIC_V7 , je penche pour un problème avec les PICS possédant les PPS !

Pour le compte rendu de l'écran 4Dsystems je vais ouvrir un nouveau post pour ne pas polluer celui-ci!

A+
C'est en faisant des erreurs, que l'on apprend le mieux !!!

ConnectEVE
Jérémy
Administrateur du site
Administrateur du site
Messages : 2722
Âge : 44
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#12 Message par Jérémy » mer. 9 déc. 2020 18:05 lien vers la Data-Sheet : Cliquez ici

Bonsoir à tous,

Je reviens vers vous , pour savoir si vous pouviez éclairer ma lanterne !

Je galère avec mon écran connectEVE, ainsi que l'oscillateur et les PPS du PIC18F47K40 ( ds en haut).

Les problèmes PPS sont résolus je pense car l'écran fonctionne avec le SPI. Alors je ne l'évoquerai pas

Voila ce qui fonctionne, je mets :
L’oscillateur à 16Mhz

Code : Tout sélectionner

    OSCCON1 = 0x60;   // NOSC HFINTOSC; NDIV 1;
    OSCCON3 = 0x00;   // CSWHOLD may proceed; SOSCPWR Low power;
    OSCEN   = 0x00;   // MFOEN disabled; LFOEN disabled; ADOEN disabled; SOSCEN disabled; EXTOEN disabled; HFOEN disabled;
    OSCFRQ  = 0x05;   // HFFRQ 0x08=64MHz ; 0x07=48Mhz; 0x05=16Mhz ; 0x02=4Mhz
    OSCTUNE = 0x00;   // TUN 0;  


Je règle les paramètres de mikroC sur 16Mhz OSCINT.

L’écran s'allume mais lentement disons avec un espece de fondu. Je fais clignoter ma led toutes les secondes : impeccable.

Je précise que comme je suis passe par le PPS pour le SPI, j'a ifais une initialisation avancée avec une DIVpar64 pour le SPI

Code : Tout sélectionner

void Init_MCU()
{
    LATA = LATB = LATC = LATD = LATE = 0x00;
    ANSELA = ANSELB = ANSELC = ANSELD = ANSELE = 0x00;
    WPUA = WPUB = WPUC = WPUD = WPUE = 0x00;
    
    TRISA0_bit 
= 0;     // LED  as output
    TRISA5_bit = 0;     // RST  as output
    TRISC3_bit = 0;     // SCK1 as outpout
    TRISC4_bit = 1;     // SDI1 as Input
    TRISC5_bit = 0;     // SDO1 as output
    TRISD3_bit = 0;     // CS   as output

//******* OSCILLATEUR : 64Mhz   ******
    OSCCON1 = 0x60;   // NOSC HFINTOSC; NDIV 1;
    OSCCON3 = 0x00;   // CSWHOLD may proceed; SOSCPWR Low power;
    OSCEN   = 0x00;   // MFOEN disabled; LFOEN disabled; ADOEN disabled; SOSCEN disabled; EXTOEN disabled; HFOEN disabled;
    OSCFRQ  = 0x05;   // HFFRQ 0x08=64MHz ; 0x07=48Mhz; 0x05=16Mhz ; 0x02=4Mhz
    OSCTUNE = 0x00;   // TUN 0;

//---------------------------------      PPS      -------------------------------------
  PPSLOCK = 0x55;                 // unlock PPS
  PPSLOCK = 0xAA;
  PPSLOCKED_bit = 0;
  
  
// SPI
  SSP1CLKPPS = 0x13;              // RC3->MSSP1:SCK1;
  RC3PPS     = 0x0F;                 // Out CLK1-> RC3
  SSP1DATPPS = 0x14;            // In SDI-> RC4
  RC5PPS     = 0x10;               // Out SDO -> RC5

  PPSLOCK = 0x55;                 // lock PPS
  PPSLOCK = 0xAA;
  PPSLOCKED_bit = 1;
//---------------------------------    FIN  PPS      ---------------------------------

 SPI1_Remappable_Init_Advanced(_SPI_REMAPPABLE_MASTER_OSC_DIV64, _SPI_REMAPPABLE_DATA_SAMPLE_MIDDLE, _SPI_REMAPPABLE_CLK_IDLE_LOW, _SPI_REMAPPABLE_LOW_2_HIGH);

}


Maintenant je fais presque le même programme, sauf que dans les paramètres de mikroc, je signale que mon OSCINT est à 1Mhz alors qu'il est programmé en 16Mhz.
L’écran s’affiche super rapidement, plus aucun fondu! mais la led clignote 16 fois plus vite.

J'ai essayé de très nombreuses configuration, peut être toutes, pour essayer de mettre en concordance la fréquence réelle et la fréquence de paramètre mais rien n'y fait.
Soit c'est encore plus lent , soit l’écran s’allume plus et ne répond plus.....

Je vais certainement me résigné a avoir une fréquence en concordance, mais un écran qui réagit plus lentement que possible.

Si jamais vous avez des idées .

Les points clés à mon avis sont :
La fréquence indiqué dans les paramètres pour les librairies et autres tempo
- La fréquence réelle du PIC à programmée
- cette initialisation du SPI en mode "advanced"

DS du FT800

LE FT800 permet un SPI à 30Mhz max , je suis large. il a une fréquence de 48Mhz.

Je voulais mettre mon PIC à 64Mhz, pour divisé la clock du SPI par 4 pour faire 16Mhz? Mais ça ne fonctionne pas, ou je m'y prends mal .

Merci de m'avoir lu
C'est en faisant des erreurs, que l'on apprend le mieux !!!

ConnectEVE
Jérémy
Administrateur du site
Administrateur du site
Messages : 2722
Âge : 44
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#13 Message par Jérémy » jeu. 10 déc. 2020 09:24 lien vers la Data-Sheet : Cliquez ici

J'image tout a fait une coquille dans les librairies PPS de mikroE. J'ai déjà eu quelques déboires avec les PPS et je vois que cela continue lol.

Bon je vais tenter de faire la clock du SPI par le timer2 . Je vais voir ce que cela donne, et je ne manquerais pas de vous tenir au courant. Si quelqu'un à déjà la manip je suis preneur d'infos sur comment s'y prendre !

Merci
C'est en faisant des erreurs, que l'on apprend le mieux !!!

ConnectEVE
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2589
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#14 Message par paulfjujo » jeu. 10 déc. 2020 11:41 lien vers la Data-Sheet : Cliquez ici

bonjour Jeremy

Peut etre un probleme similaire rencontré avec le le LCD ILI9341 320x200 65K colors,
il faut demarrer en SPI basse vitesse pour l'initialiser (_SPI_REMAPPABLE_MASTER_OSC_DIV64)
et ensuite on peut monter la vitesse en reinitialisant à nouveau le SPI
avec _SPI_REMAPPABLE_MASTER_OSC_DIV16

as_tu pu verifier la frequence réelle du SPI avec ton SQA 200 ?

il y a bien des mysteres autour de ces PIC avec FOSC interne
j'ai posé la question sur Forum Microchip au sujet de la sortie Clkout RA6 (sur 18F27K42) , FOSC/4 =8Mhz apparait si FOSC=32Mhz ,
mais rien, disparait avec Fosc 64MHz ?
je vais aller voir si j'ai eu des reponses ou voies à suivre ...
Aide toi, le ciel ou FantasPic t'aidera

ConnectEVE
Jérémy
Administrateur du site
Administrateur du site
Messages : 2722
Âge : 44
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#15 Message par Jérémy » jeu. 10 déc. 2020 14:47 lien vers la Data-Sheet : Cliquez ici

Je vais essayer ta méthode du début à div64 puis de repasser a div16 !

Tu veux dire le SQ200 de ikalogic , malheureusement il est resté à mon ancien travail
C'est en faisant des erreurs, que l'on apprend le mieux !!!

ConnectEVE
Jérémy
Administrateur du site
Administrateur du site
Messages : 2722
Âge : 44
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#16 Message par Jérémy » jeu. 10 déc. 2020 21:20 lien vers la Data-Sheet : Cliquez ici

Un petit screen.
LA fréquence de SCK est de 250Khz
Je suis surpris de la forme de la broche CS ? Je pensais que c'était pour sélectionner le device connecté, donc je pensais que la forçant à l'état bas, cela ne poserais pas de problème. Ben a l'état haut ou bas , l'écran ne réagis pas quand cette broche n'est pas commandé par le broche dédiée SS .

Analyseur.jpg
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
C'est en faisant des erreurs, que l'on apprend le mieux !!!

ConnectEVE
satinas
Expert
Expert
Messages : 1225
Enregistré en : novembre 2015

#17 Message par satinas » jeu. 10 déc. 2020 21:38 lien vers la Data-Sheet : Cliquez ici

Bonsoir Jérémy,

SSP1CLKPPS = 0x13; // RC3->MSSP1:SCK1;
Juste un mot, à mon avis cette ligne est superflue, le pic est maître SPI, il génère l'horloge.
SSP1CLKPPS est à utiliser pour une input, donc si le pic est esclave.

ConnectEVE
Jérémy
Administrateur du site
Administrateur du site
Messages : 2722
Âge : 44
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#18 Message par Jérémy » jeu. 10 déc. 2020 21:44 lien vers la Data-Sheet : Cliquez ici

Bonsoir satinas,

Oui effectivement. J'ai interpreté la petite note de la DS page 446 :
Important: In Master mode the clock signal output to the SCK pin is also the clock signal inputto the peripheral. The pin selected for output with the RxyPPS register must also be selected asthe peripheral input with the SSPxCLKPPS register. The pin that is selected using theSSPxCLKPPS register should also be made a digital I/O. This is done by clearing thecorresponding ANSEL bit


Comment la comprends tu toi ? car mon anaglais est pas super évolué !

Autre question en augmentant la fréquence de l'OSC, à 32Mhz, je vois le signal sur CLKOUT de 8Mhz -> ok 32/4=8 , mais il n'est pas symétrique. le ration est perturbé . A 64Mhz j'ai une ligne à l'état haut continue. Bizarre aussi non ?

Analyseur.jpg
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
C'est en faisant des erreurs, que l'on apprend le mieux !!!

ConnectEVE
satinas
Expert
Expert
Messages : 1225
Enregistré en : novembre 2015

#19 Message par satinas » jeu. 10 déc. 2020 21:59 lien vers la Data-Sheet : Cliquez ici

Bah je comprends qu'il faut la mettre cette ligne, ou plutôt j'y comprends rien, on verra demain à tête reposée. Ou faut faire parler MCC.
J'ai fait du SPI en PPS mais c'était sur un pic 16 bits sans la mettre, cela doit être différent ou là aussi je l'ai oubliée. Tu pourras éventuellement essayer de l'enlever pour voir ce que cela donne, mais pour le moment il faut la laisser, c'est ce que semble dire le datasheet.

Le unlock et lock des PPS ne sont pas obligatoires, le pic démarre en mode unlock.

Pour CLKOUT on est 3 avec Paul à constater qu'il ne sort pas avec FOSC = 64MHz. Sinon, c'est pas grave qu'il soit pas symétrique, l'essentiel est sa période et sa fréquence.

J'ai pas compris le problème SS et CS, de mémoire dans la config SPI, on a le choix d'utiliser la broche dédiée SS ou de piloter soi-même la sortie CS.

ConnectEVE
Jérémy
Administrateur du site
Administrateur du site
Messages : 2722
Âge : 44
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#20 Message par Jérémy » jeu. 10 déc. 2020 22:31 lien vers la Data-Sheet : Cliquez ici

Pour CS ou SS, comme cette broche sert a choisir l’équipement utilisé pour le SPI, quand il y en a plusieurs sur la ligne. Étant donné que je n'ai qu'un équipement, je pensais la laissée tout le temps active .Mais sa fonctionne pas en le mettant à la masse en permanence.

Grace à vous j'avance et merci .

Paul avait raison quand je modifie la vitesse de l'OSC et du diviseur du SPI APRÈS l'initialisation ca fonctionne.
j'ai créer des boutons tactile sur l'écran pour modifer ces données
L’écran change de page instantanément. L'horloge du SPI se retrouve à 4Mhz au lieu de 250Khz .

Code : Tout sélectionner

void _16OnPress() {
  
SPI1_Remappable_Init_Advanced(_SPI_REMAPPABLE_MASTER_OSC_DIV16 _SPI_REMAPPABLE_DATA_SAMPLE_MIDDLE_SPI_REMAPPABLE_CLK_IDLE_LOW_SPI_REMAPPABLE_LOW_2_HIGH);
  
SPI_Set_Active(SPI1_ReadSPI1_Write);
    
OSCFRQ  0x08;
}
void _64OnPress() {
  
SPI1_Remappable_Init_Advanced(_SPI_REMAPPABLE_MASTER_OSC_DIV64 _SPI_REMAPPABLE_DATA_SAMPLE_MIDDLE_SPI_REMAPPABLE_CLK_IDLE_LOW_SPI_REMAPPABLE_LOW_2_HIGH);
  
SPI_Set_Active(SPI1_ReadSPI1_Write);
    
OSCFRQ  0x05;


Pour chipoter il faudrait que je cherche le maximum de fréquence, parce qu'avec un DIV4 ça fonctionne plus. Peut etre trop rapide pour le SPI ( pourtant il annonce 30Mhz sur la DS du FT800)
C'est en faisant des erreurs, que l'on apprend le mieux !!!


Retourner vers « Langage C »

Qui est en ligne

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