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
MCP23S17 et MC145151 (PLL)
-
folkeu08

Débutant- Messages : 66
- Âge : 59
- Enregistré en : novembre 2017
- Localisation : Ardennes (08)
- Contact :
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
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
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
MCP23S17 et MC145151 (PLL)
-
folkeu08

Débutant- Messages : 66
- Âge : 59
- Enregistré en : novembre 2017
- Localisation : Ardennes (08)
- Contact :
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
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- Messages : 66
- Âge : 59
- Enregistré en : novembre 2017
- Localisation : Ardennes (08)
- Contact :
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 :
J'utilise une platine de dev provenant de http://www.100MHz.com dont voici également le schéma :
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 :
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 :
Merci pour votre nouveau regard.
François
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 :
J'utilise une platine de dev provenant de http://www.100MHz.com dont voici également le schéma :
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 :
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 :
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)
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 ?
- 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)
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
... 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,
et là.....ça fonctionne.
A+
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
... 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,
MCP23S17 et MC145151 (PLL)
-
folkeu08

Débutant- Messages : 66
- Âge : 59
- Enregistré en : novembre 2017
- Localisation : Ardennes (08)
- Contact :
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
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

Maître- Messages : 3295
- Âge : 75
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
bonjour,
j'ai eu l'occasion de tester cet afficheur Max7219 -> 8 afficheurs 7segment
en MiKROC !
à voir si ça peut t'aider.
j'ai eu l'occasion de tester cet afficheur Max7219 -> 8 afficheurs 7segment
en MiKROC !
à voir si ça peut t'aider.
Qui est en ligne
Utilisateurs parcourant ce forum : Majestic-12 [Bot] et 9 invités

