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

MCP23S17 et MC145151 (PLL)
folkeu08
Débutant
Débutant
Messages : 66
Âge : 59
Enregistré en : novembre 2017
Localisation : Ardennes (08)
Contact :

#1 Message par folkeu08 » sam. 27 déc. 2025 13:52 lien vers la Data-Sheet : Cliquez ici

Bonjour à tous,

Comme chaque année, je m'ennuie un peu en cette période de fêtes. J'en profite pour me pencher sur des projets électroniques. Pour cette édition, ce sera un "projet" qui ne fleuris pas dans la console google lorsque l'on tente une recherche. D'où son utilité pour le commun des mortels car c'est une autre façon de faire qui va être tentée.

Bref explication du projet : En FM, la fréquence d'émission est stabilisée par un circuit PLL. Il en existe 2 grandes variétés, ceux à entrée parallèle (la fréquence est programmée par des mini-switchs) et ceux à entrée série (mode SPI). Pour la première varité, nous trouverons les Mc145151, MC145152 de chez Motorola. Pour la seconde, les MC145157 et MC145170 du même fabriquant. Certains peuvent être précédés par un prédiviseur /10 ou par 64 afin d'adapter la fréquence à comparer à la fréquence admissible sur leur entrée.

J'ai trouvé un projet qui me sert de départ. Le processeur utilisé est un atmel, le PLL un MC145151 et le firmware est écrit en "C". Les informations nécessaires au MC145151 sont transmises par 2 ports de l'Atmel.

L'intêret de ce post est de déjà de migrer le projet sur un PIC (16f877A ou 18F4550) et de libérer 2 ports complets en utilisant une liaison SPI par un MCP23s17. Cette méthode avec un MC145151 n'est pas présente sur le net. Je n'ai rien trouvé en créant différentes requêtes sur google.

J'ai déjà consulté le code de l'atmel et il est trop optimisé pour que je ne comprenne correctement. J'ai demandé de l'aide à ChatGPT pour qu'il me l'explique ligne par ligne et j'ai pu y lire qu'il y a des rotations de bits.

Cela m'a donc fait pensé que le schéma (Kicad) premièrement créé de mon côté ne correcpondra pas obligatoirement au routage de la carte. Il sera certainement nécessaire de décaler des bits par firmware. Pour dire, j'ai jamais fait !

Voila la présentation du projet. J'y mets en pièce jointe le projet avec l'Atmel, et la première version de mon schéma. Le temps que vous prenniez connaissance de ce projet, je vais router les connections entre le MC145151 et le MC23s17 afin de définir les nouvelles rotations de bits à réaliser dans le firmware.

J'en suis de mon côté au tout début. J'ai juste dessiné le schéma, aucun code écris pour un Pic.
François

PLL-MC145151P2.CONTROL__V1.3 - 2022-10-30-1.zip

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

MCP23S17 et MC145151 (PLL)
folkeu08
Débutant
Débutant
Messages : 66
Âge : 59
Enregistré en : novembre 2017
Localisation : Ardennes (08)
Contact :

#2 Message par folkeu08 » sam. 27 déc. 2025 20:13 lien vers la Data-Sheet : Cliquez ici

Re,
J'ai trouvé un utilitaire qui permet d'obtenir le programmation des port en entrée du MC145151 :
https://www.kuryazilim.com/pll-eng.htm
Il évite le calcul fastidieu à la main.
François

MCP23S17 et MC145151 (PLL)
folkeu08
Débutant
Débutant
Messages : 66
Âge : 59
Enregistré en : novembre 2017
Localisation : Ardennes (08)
Contact :

#3 Message par folkeu08 » mer. 4 mars 2026 22:18 lien vers la Data-Sheet : Cliquez ici

Bonjour tous,
J'ai fait réaliser une carte d'affichage de la fréquence sur la base d'un MAX7219 accompagnée de 6 boutons poussoirs dont voici le schéma :
Cde et aff.png

J'utilise une platine de dev provenant de http://www.100MHz.com dont voici également le schéma :
PIC DIP40 MINI KIT.pdf

J'ai fait la liaison entre les 2 cartes avec des cordons de connexion F/F utilisés pour des cartes à trous d'essai.
Le firmware est écris en C avec MikroC :
FM.zip

La simulation fonctionne correctement sous Proteus
Lorsque je teste physiquement avec les 2 platines connectées, j'obtiens un affichage fixe ". .L. .7." qui ne correspond pas à la valeur du premier affichage souhaité "A-C ". L'affichage reste fixe et ne passe pas à la valeur suivante " U 4.00" après une petite temporisation.
J'ai aussi testé avec un programme démo de la carte de dev, tout fonctionne. J'avais un doute sur le quartz.
J'ai contrôlé plusieurs fois les pistes du MAX7219 aux bornes de chaque afficheur, c'est correct puis les 3 liges de Cde de l'afficheur vers le pic18f4550. C'est good aussi. Me semble t-il !
A force de regarder, regarder, ..... Je ne cherche peut être pas au bon endroit.
Un oeuil nouveau me serai bien utile pour débloquer cette situation jusqu'à maintenant insoluble.
Fichier proteus :
Txfm_dev.zip


Merci pour votre nouveau regard.
François
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.

MCP23S17 et MC145151 (PLL)
satinas
Expert
Expert
Messages : 1504
Enregistré en : novembre 2015

#4 Message par satinas » jeu. 5 mars 2026 09:03 lien vers la Data-Sheet : Cliquez ici

Bonjour, 2 remarques

- Je ne connais pas la bibliothèque SPI MikroC. Les termes SDI et SDO concernent le pic, donc SDO désigne la sortie du pic, pas celle du MAX7219. Tu associes SoftSpi_SDO à D5, or la sortie SDO du 18F4550 est câblée sur C7. As-tu bien connecté C7 au Din du MAX7219 ?
Après réflexion, il semble que la bibliothèque SPI n'utilise pas le module SPI du pic, elle fonctionne en bas niveau, en bit-banging, et permet donc de choisir les pins SPI. C'est parce que tu as déclaré aussi C7 par ailleurs que j'ai pensé à cela.

- En mode non BCD, je trouve bien 0x77 pour la lettre A, mais pour la lettre C 0x39 au lieu de 0x4E ?

MCP23S17 et MC145151 (PLL)
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2963
Enregistré en : juillet 2016
Localisation : Terre

#5 Message par Temps-x » jeu. 5 mars 2026 22:28 lien vers la Data-Sheet : Cliquez ici

Bonsoir satinas,

j'ai écris un programme en langage ASM pour un MAX7219 voir ICI si ça peu te dépanner

Autre chose, ce qui mets arrivé, quand j'ai branché les afficheurs

oops ... une fois branché comme sur le schéma, les afficheurs indique n'importe quoi.
La cause, c'est qu'il faut faire une fonction pour remettre les afficheurs à zéro... chose que j'ai faite, :razz: et là.....ça fonctionne.

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

MCP23S17 et MC145151 (PLL)
folkeu08
Débutant
Débutant
Messages : 66
Âge : 59
Enregistré en : novembre 2017
Localisation : Ardennes (08)
Contact :

#6 Message par folkeu08 » ven. 6 mars 2026 10:09 lien vers la Data-Sheet : Cliquez ici

Bonjour Temps-x,
Ce matin, j'étais pour ôter mon réseau de résistances connecté au 5V et mes 470 Ohms dans les 3 lignes de transmission SPI. Je viens de voir dans ton schéma proteus que tu avais aussi a minima le réseau de résistances. Je touche donc pas à mon hard.
J'ai bien quelques notions d'assembleur car un ami avait commencé mon apprentissage dans ce langage il y a déjà maintenant plus de 20 ans. J'ai décroché car j'ai des difficultés de compréhension avec les registres pour aller rechercher les valeurs stockées.
Je suis beaucoup plus alaise avec le C, Pascal et Basic.
Je vais tenter de faire appel à mes souvenirs pour trouver le passage d'initialisation. Je crois avoir déjà vu qu'il est possible d'ajouter du code en assembleur dans MikroC.
Allez, je tente de faire appel à ces souvenirs lointains.
L'initialisation du max7219 dont tu parles (une fonction pour remettre les afficheurs à zéro) est le paragraphe noté "Initial Power-Up" en page 7 du datasheet ?
François

MCP23S17 et MC145151 (PLL)
paulfjujo
Avatar de l’utilisateur
Maître
Maître
Messages : 3295
Âge : 75
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#7 Message par paulfjujo » ven. 6 mars 2026 11:21 lien vers la Data-Sheet : Cliquez ici

bonjour,

j'ai eu l'occasion de tester cet afficheur Max7219 -> 8 afficheurs 7segment
en MiKROC !
à voir si ça peut t'aider.
Aide toi, le ciel ou FantasPic t'aidera


Retourner vers « Langage C »

Qui est en ligne

Utilisateurs parcourant ce forum : Majestic-12 [Bot] et 9 invités