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 : mazertoc
[Projet] Testeur TTL avec 7segs bicolore
- F6FCO

Expert- Messages : 2846
- Âge : 99
- Enregistré en : décembre 2017
- Localisation : Banlieue sud de Klyntar
- Contact :
Salut les gens,
Encore un autre testeur TTL. Pas vraiment besoin parce qu'en ai déjà plusieurs mais j'étais obligé de le faire quand j'ai découvert cet afficheur 7 segs bicolore chez Aliex, çà me démangeait.
https://fr.aliexpress.com/item/10050073 ... pt=glo2fra
et puis pas un enième projet inutile car c'est l'instrument de mesure que j'utilise le plus dans mes projets, pour vérifier des niveaux sur pins ou traces PCB il remplace avantageusement et plus simplement l'oscillo, l'analyseur logique ou le multimètre, on pose la pointe sur la pin ou la trace à tester et il indique immédiatement l'état haut ou bas, une seule main occupée et qui évite des câbles de mesure qui traînent sur le projet.
J'en ai déjà fait plusieurs avec des 16F88, recherche sur le forum, mais je n'en ai plus et le Père Noel n'a plus l'air d'en fabriquer, cette fois j'ai utilisé un 18F2525.
Affiche un L rouge pour une mesure d'état bas et un H vert pour état haut. J'avais aussi implémenté une led jaune pour la zone grise mais elle ne sert plus.
Rappel des niveaux TTL:
0 à 0.8v état bas
0.8 à 2v zone grise hors TTL
2 à 5v état haut
Mesure sur AN0 (A0), en dessous de 0.8v (0x29 sur AN0) affiche état bas, en dessus de 2v (0x69) affiche état haut. En début de projet entre 0.8 et 2v il éteignait l'afficheur et allumait une led jaune pour afficher la zone grise (piste coupée, pin HS sans tension, etc.), mais j'ai du utiliser cette zone grise pour le fonctionnement et garder le testeur éteint hors mesure.
Petit moment de galère: Dés le départ tout fonctionnait nickel si ce n'est qu'il affichait un état bas hors mesure (quand le testeur était posé sur la table par exemple). Pas tolérable, en mesure on n'aurait jamais été sur d'un vrai état bas. Petit coup d'oscillo et visu d'une tension résiduelle sinusoidale près du zéro en non utilisation, peut-être due au chevelu de la breadboard mais pour avoir un outil robuste j'ai voulu traiter ce souci. J'ai tenté diverses routines asm pour la détecter et la gérer mais rien de probant, elle faisait toujours ch*** le monde.
Finalement j'ai résolu le problème en ajoutant un pont diviseur avec deux R de très forte valeur pour avoir un courant faible sur la pointe de touche, 1M/470k qui hors mesure ramène la tension présente sur AN0 à 1.2v en pleine zone grise et afficheur éteint par code. Tout roule, le faible courant dans le pont diviseur fait qu'un vrai état haut ou bas mesuré prend le pas et s'affiche correctement.
Si je me retrouve un jour en mesure avec afficheur éteint, la question se posera de vérifier si on est en vraie zone grise (entre 0.8 et 2v, ce qui arrive très rarement) ou sur un point inerte, il faudra sortir le multimètre ou l'oscillo pour lever le doute, on peut vivre avec.
Petit afficheur bien sympa:
Le schéma ultra simple:
Projet sur platine dev et breadboard, pour la mise au point AN0 est branchée sur le pot 10k de la platine DEV:
Etat bas 0 à 0.8v, L rouge affiché
Juste au début zone grise, afficheur éteint
Juste en limite max de zone grise, afficheur éteint
Etat haut 2 à 5v, H vert affiché
Reste plus qu'à sortir Eagle pour pondre un circuit imprimé en forme de stylo.
Code asm:
Encore un autre testeur TTL. Pas vraiment besoin parce qu'en ai déjà plusieurs mais j'étais obligé de le faire quand j'ai découvert cet afficheur 7 segs bicolore chez Aliex, çà me démangeait.
https://fr.aliexpress.com/item/10050073 ... pt=glo2fra
et puis pas un enième projet inutile car c'est l'instrument de mesure que j'utilise le plus dans mes projets, pour vérifier des niveaux sur pins ou traces PCB il remplace avantageusement et plus simplement l'oscillo, l'analyseur logique ou le multimètre, on pose la pointe sur la pin ou la trace à tester et il indique immédiatement l'état haut ou bas, une seule main occupée et qui évite des câbles de mesure qui traînent sur le projet.
J'en ai déjà fait plusieurs avec des 16F88, recherche sur le forum, mais je n'en ai plus et le Père Noel n'a plus l'air d'en fabriquer, cette fois j'ai utilisé un 18F2525.
Affiche un L rouge pour une mesure d'état bas et un H vert pour état haut. J'avais aussi implémenté une led jaune pour la zone grise mais elle ne sert plus.
Rappel des niveaux TTL:
0 à 0.8v état bas
0.8 à 2v zone grise hors TTL
2 à 5v état haut
Mesure sur AN0 (A0), en dessous de 0.8v (0x29 sur AN0) affiche état bas, en dessus de 2v (0x69) affiche état haut. En début de projet entre 0.8 et 2v il éteignait l'afficheur et allumait une led jaune pour afficher la zone grise (piste coupée, pin HS sans tension, etc.), mais j'ai du utiliser cette zone grise pour le fonctionnement et garder le testeur éteint hors mesure.
Petit moment de galère: Dés le départ tout fonctionnait nickel si ce n'est qu'il affichait un état bas hors mesure (quand le testeur était posé sur la table par exemple). Pas tolérable, en mesure on n'aurait jamais été sur d'un vrai état bas. Petit coup d'oscillo et visu d'une tension résiduelle sinusoidale près du zéro en non utilisation, peut-être due au chevelu de la breadboard mais pour avoir un outil robuste j'ai voulu traiter ce souci. J'ai tenté diverses routines asm pour la détecter et la gérer mais rien de probant, elle faisait toujours ch*** le monde.
Finalement j'ai résolu le problème en ajoutant un pont diviseur avec deux R de très forte valeur pour avoir un courant faible sur la pointe de touche, 1M/470k qui hors mesure ramène la tension présente sur AN0 à 1.2v en pleine zone grise et afficheur éteint par code. Tout roule, le faible courant dans le pont diviseur fait qu'un vrai état haut ou bas mesuré prend le pas et s'affiche correctement.
Si je me retrouve un jour en mesure avec afficheur éteint, la question se posera de vérifier si on est en vraie zone grise (entre 0.8 et 2v, ce qui arrive très rarement) ou sur un point inerte, il faudra sortir le multimètre ou l'oscillo pour lever le doute, on peut vivre avec.
Petit afficheur bien sympa:
Le schéma ultra simple:
Projet sur platine dev et breadboard, pour la mise au point AN0 est branchée sur le pot 10k de la platine DEV:
Etat bas 0 à 0.8v, L rouge affiché
Juste au début zone grise, afficheur éteint
Juste en limite max de zone grise, afficheur éteint
Etat haut 2 à 5v, H vert affiché
Reste plus qu'à sortir Eagle pour pondre un circuit imprimé en forme de stylo.
Code asm:
Code : Tout sélectionner
Errorlevel-302 ; Supprime le message "Ensure that bank bits are correct"
list p=18f2525 ; processeur utilisé
#include <p18f2525.inc> ; Définitions des constantes PIC
;#include <LCD_18F.inc> ; définitions des constantes LCD
CONFIG OSC = INTIO67 ; Oscillateur interne 8MHz
CONFIG IESO = OFF ; Délai au démarrage (ON/OFF)
CONFIG BOREN = OFF ; Reset si chute de tension (ON/OFF)
CONFIG PWRT = ON ; Délai au démarrage (ON/OFF)
CONFIG BORV = 0 ; Tension de reset en 1/10ème Volts
CONFIG WDT = OFF ; Mise hors service du watchdog (ON/OFF)
CONFIG PBADEN = OFF ; PORTB<4:0> les broches sont configurées comme E/S numériques lors de la réinitialisation
CONFIG LPT1OSC = OFF ; Timer1 configuré pour un fonctionnement plus puissant
CONFIG MCLRE = ON ; Mclr configuré comme entrée
CONFIG STVREN = ON ; Reset sur débordement de pile (ON/OFF)
CONFIG LVP = OFF ; Programmation basse tension autorisée (ON/OFF)
CONFIG XINST = OFF ; L'extension du jeu d'instructions et le mode d'adressage indexé sont désactivés(mode hérité)
CONFIG DEBUG = OFF ; Debugger hors service
CONFIG CP0 = OFF ; Code protection sur block 0 (ON/OFF)
CONFIG CP1 = OFF ; Code protection sur block 1 (ON/OFF)
CONFIG CP2 = OFF ; Code protection sur block 2 (ON/OFF)
CONFIG CPB = OFF ; Code protection sur bootblock (ON/OFF)
CONFIG CPD = OFF ; Code protection sur eeprom (ON/OFF)
CONFIG WRT0 = OFF ; Protection écriture block 0 (ON/OFF)
CONFIG WRT1 = OFF ; Protection écriture block 1 (ON/OFF)
CONFIG WRT2 = OFF ; Protection écriture block 2 (ON/OFF)
CONFIG WRTB = OFF ; Protection écriture bootblock (ON/OFF)
CONFIG WRTC = OFF ; Protection écriture configurations (ON/OFF)
CONFIG WRTD = OFF ; Protection écriture zone eeprom (ON/OFF)
CONFIG EBTR0 = OFF ; Protection lecture de table block 0 (ON/OFF)
CONFIG EBTR1 = OFF ; Protection lecture de table block 1 (ON/OFF)
CONFIG EBTR2 = OFF ; Protection lecture de table block 2 (ON/OFF)
CONFIG EBTRB = OFF ; Protection lecture de table bootblock (ON/OFF)
Code : Tout sélectionner
;**********************************************************************
;
; Testeur avec afficheur 7 segs KYX5161 bicolore
; F6FCO - dec 2025
;
;**********************************************************************
#include <Fusibles_18F2525.asm>
#define vert LATB,2 ; Etat logique haut
#define rouge LATB,1 ; Etat logique bas
#define digit_a LATC,7
#define digit_b LATB,0
#define digit_c LATA,3
#define digit_d LATA,4
#define digit_e LATA,5
#define digit_f LATC,6
#define digit_g LATC,4
;#define digit_dp LATC,6
CBLOCK 0x00C
w_temp :1 ; Sauvegarde du registre W
status_temp :1 ; Sauvegarde du registre STATUS
Reg_1 :1
Reg_2 :1
Reg_3 :1
conchita :2 ; variable bonne à tout faire
ENDC
org 0x000 ; Adresse de départ après reset
bra init ; Adresse 0: initialiser
; ------------------------ Routines Interruptions
;sauvegarder registres
org 0x008 ; adresse d'interruption
movwf w_temp ; sauver registre W
swapf STATUS,w ; swap status avec résultat dans w
movwf status_temp ; sauver status swappé
; Interrupt MSSP
btfss PIR1,SSPIF ; <3>
bra restorereg
call intMSSP ; on vient d'avoir une int MSSP, on la traite
;restaurer registres
restorereg
swapf status_temp,w ; swap ancien status, résultat dans w
movwf STATUS ; restaurer status
swapf w_temp,f ; Inversion L et H de l'ancien W, sans modifier Z
swapf w_temp,w ; Réinversion de L et H dans W, W restauré sans modifier status
retfie ; return from interrupt
intMSSP
movff SSPBUF,PORTB
bsf SSPCON1,CKP ; on relâche l'horloge
bcf PIR1,SSPIF ; <3> raz flag d'interrupt
return
; ------------------------ Init
init
clrf EEADR ; diminue la consommation
; init oscillateur
movlw 0xff ; Horloge interne 8Mhz
movwf OSCCON
movlw 0x07
movwf CMCON ; mode comparateur désactivé
movlw b'00000001'
movwf TRISA
clrf PORTA
clrf LATA
movlw b'00000000'
movwf TRISB
clrf PORTB
clrf LATB
movlw b'00000000' ;
movwf TRISC
clrf PORTC
clrf LATC
; init interruptions
bsf RCON,IPEN
bsf INTCON,GIE ; <7> int non masquées activées
bsf INTCON,PEIE ; <6> int périphériques non masquées activées
bsf PIE1,SSPIE ; <3> MSSP activé
bcf PIR1,SSPIF ; <3> flag interrupt à zéro
bsf SSPCON1,SSPEN ; <5> pins I²C en mode SDA/SCL
; init conversion AD
clrf ADCON0
bsf ADCON0,ADON ; convertisseur ON
movlw b'00001110' ; AN0 en entrée analogique
movwf ADCON1
movlw b'00001110'
movwf ADCON2 ; ADFM droite
; ACQT=10
; ADCS=10
; vers main
; -----------------------------------
Code : Tout sélectionner
#include <Testeur_KYX5161_Init.asm>
main
; démarrage conversion
bsf ADCON0,GO
loop1
btfsc ADCON0,GO
bra loop1
; en dessous de 0.8v (0x29) -- > état TTL bas
; au dessus de 2v (0x66) --> état TTL haut
call tempo10ms
; test si on est au dessus de 2v (état logique haut)
test_h movff ADRESH,WREG
sublw 0x69 ; limite min état haut
btfsc STATUS,C
bra test_b
bra affiche_etat_haut
; test si on est en dessous de 0.8v (état logique bas )
test_b movff ADRESH,WREG
sublw 0x29 ; limite max état bas
btfss STATUS,C
bra test_z
bra affiche_etat_bas
; test zone grise
test_z movff ADRESH,WREG
sublw 0x29 ; limite min zone grise
btfsc STATUS,C
bra fin
sublw 0x69 ; limite max zone grise
btfsc STATUS,C
bra fin
bra extinction_zone_grise
fin bra main
affiche_etat_haut ; au-dessus de 2v
nop
bcf rouge
bsf vert
bcf digit_d
bsf digit_c
bsf digit_b
bsf digit_f
bsf digit_e
bsf digit_g
bra main
affiche_etat_bas ; en-dessous de 0.8v
nop
bcf vert
bsf rouge
bcf digit_c
bcf digit_b
bcf digit_g
bsf digit_f
bsf digit_e
bsf digit_d
bra main
extinction_zone_grise ; entre 0.8 et 2v
;bsf led_jaune
bcf digit_a
bcf digit_b
bcf digit_c
bcf digit_d
bcf digit_e
bcf digit_f
bcf digit_g
bra main
tempo10ms
; Délai 20 000 Cycles de la machine
; Durée du délai 10 millisecond
; Fréquence de l'oscillateur 8 MHZ
movlw .248
movwf Reg_1,1
movlw .26
movwf Reg_2
decfsz Reg_1,F,1
bra $-2
decfsz Reg_2
bra $-6
nop
return
;#include <Testeur_KYX5161_routines.asm>
END
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Modifié en dernier par F6FCO le dim. 21 déc. 2025 11:13, modifié 1 fois.
[PROJET] Testeur TTL avec 7segs bicolore
Bonjour la foule,
Joli projet Jean-Claude.
Pour l'histoire de l'état bas qui s'affiche au repos, on peut imaginer de détecter quand la sonde est en main.
Le topissime du topissime pour une sonde comme celle-ci serait de pouvoir l'alimenter sur pile ou encore mieux par batterie rechargeable. Et la cerise sur le gâteau, le nec plus ultra du topissime : ne pas raccorder de fil de masse. Mais bon là je rêve
Joli projet Jean-Claude.
Pour l'histoire de l'état bas qui s'affiche au repos, on peut imaginer de détecter quand la sonde est en main.
Le topissime du topissime pour une sonde comme celle-ci serait de pouvoir l'alimenter sur pile ou encore mieux par batterie rechargeable. Et la cerise sur le gâteau, le nec plus ultra du topissime : ne pas raccorder de fil de masse. Mais bon là je rêve
[PROJET] Testeur TTL avec 7segs bicolore
[PROJET] Testeur TTL avec 7segs bicolore
- F6FCO

Expert- Messages : 2846
- Âge : 99
- Enregistré en : décembre 2017
- Localisation : Banlieue sud de Klyntar
- Contact :
Merci, maintenant je vais m'amuser avec Eagle, çà fait aussi partie du plaisir.
Alimenter avec une pile j'y ai bien pensé, j'ai justement une pile 9v rechargeable par USB, et comme tu dis il faut le fil de masse avec pince croco.
Tous ceux que j'ai construits jusqu'à maintenant ont une alim 5v à piquer sur la breadboard par deux fils Dupont mâles donc gnd par l'alim, avec risque d'inversion un jour de cerveau limité, çà m'est arrivé une fois déjà. Ici l'idée était de se piquer directement sur le +12v qui alimente toujours mes projets avec une diode en série pour éviter les erreurs, mais encore limité au développement de projet.
Intégrer la pile 9v permettrait de le rendre portable et les 0.7v bouffés par la diode avant le 7805 ne seraient pas un pbm.
Allez on part la-dessus, il sera juste un peu plus gros que prévu et un fil à la patte
Et en poussant le bouchon un peu plus loin on pourrait même intégrer un ces afficheurs flèche pour marquer les changements de niveau, parfaitement inutile donc indispensable https://fr.aliexpress.com/item/10050059 ... in_prod%3A (dommage qu'il ne soit pas bicolore), mais on va rester simple quand même.
Alimenter avec une pile j'y ai bien pensé, j'ai justement une pile 9v rechargeable par USB, et comme tu dis il faut le fil de masse avec pince croco.
Tous ceux que j'ai construits jusqu'à maintenant ont une alim 5v à piquer sur la breadboard par deux fils Dupont mâles donc gnd par l'alim, avec risque d'inversion un jour de cerveau limité, çà m'est arrivé une fois déjà. Ici l'idée était de se piquer directement sur le +12v qui alimente toujours mes projets avec une diode en série pour éviter les erreurs, mais encore limité au développement de projet.
Intégrer la pile 9v permettrait de le rendre portable et les 0.7v bouffés par la diode avant le 7805 ne seraient pas un pbm.
Allez on part la-dessus, il sera juste un peu plus gros que prévu et un fil à la patte
Et en poussant le bouchon un peu plus loin on pourrait même intégrer un ces afficheurs flèche pour marquer les changements de niveau, parfaitement inutile donc indispensable https://fr.aliexpress.com/item/10050059 ... in_prod%3A (dommage qu'il ne soit pas bicolore), mais on va rester simple quand même.
[PROJET] Testeur TTL avec 7segs bicolore
Plutôt que de mettre une diode genre 1N400x, on peut employer une Schottky pour gagner un peu sur la chute de tension.
Ou le nec plus ultra, un petit MOSFET à faible Rds qui ne va pas provoquer de chute de tension.
https://octopart.com/fr/pulse/p/protecting-your-circuit
Pour la sonde sur pile ou batterie, la détection de la prise en main permet de minimiser la consommation. Voir le super TTP223 ou si on veut taper dans le haut de gamme un CAP1203 de Microchip.
Ou le nec plus ultra, un petit MOSFET à faible Rds qui ne va pas provoquer de chute de tension.
https://octopart.com/fr/pulse/p/protecting-your-circuit
Pour la sonde sur pile ou batterie, la détection de la prise en main permet de minimiser la consommation. Voir le super TTP223 ou si on veut taper dans le haut de gamme un CAP1203 de Microchip.
[PROJET] Testeur TTL avec 7segs bicolore
[PROJET] Testeur TTL avec 7segs bicolore
Après une nuit là dessus, il me semble que le mieux pour l'alimentation soit un élément 18650, pour rester dans le compact. Au pire 2 en série.
Et si on avait un stand pour reposer la sonde qui ferait en même temps chargeur, ce serait magnifique non ? Et en prime un bon plan pour savoir en permanence où trouver cette p...n de sonde de m...e
J'ose à peine suggérer d'ajouter un éclairage de la pointe de touche, de peur d'abuser
Et si on avait un stand pour reposer la sonde qui ferait en même temps chargeur, ce serait magnifique non ? Et en prime un bon plan pour savoir en permanence où trouver cette p...n de sonde de m...e
J'ose à peine suggérer d'ajouter un éclairage de la pointe de touche, de peur d'abuser
[PROJET] Testeur TTL avec 7segs bicolore
- F6FCO

Expert- Messages : 2846
- Âge : 99
- Enregistré en : décembre 2017
- Localisation : Banlieue sud de Klyntar
- Contact :
Peut-être un caraboutsizeur monté en inverse pour atomiser le courant induit dans le fluxomètre ? ce qui permettrait de quantiser le surplus de tension parallèle dans la 1N4148, et hop! on est tranquille.
Quand il est comme çà le mieux c'est de le laisser causer
Quand il est comme çà le mieux c'est de le laisser causer
[Projet] Testeur TTL avec 7segs bicolore
- Gérard

Expert- Messages : 1937
- Âge : 67
- Enregistré en : septembre 2015
- Localisation : Alsace - Haut-Rhin
F6FCO a écrit :Peut-être un caraboutsizeur monté en inverse pour atomiser le courant induit dans le fluxomètre ? ce qui permettrait de quantiser le surplus de tension parallèle dans la 1N4148, et hop! on est tranquille.
Je suis d'accord avec toi, mais tu devrais te procurer un radiomètre, on ne sait jamais, peut-être que les produits asiatiques émettent des ondes gamma...
F6FCO a écrit :Quand il est comme çà le mieux c'est de le laisser causer
Je pense à une intervention du Dr. Emmett Brown.
Mais que fait Marty? Est il parti avec ET?
[Projet] Testeur TTL avec 7segs bicolore
- F6FCO

Expert- Messages : 2846
- Âge : 99
- Enregistré en : décembre 2017
- Localisation : Banlieue sud de Klyntar
- Contact :
Bah suis pas inquiet, c'est rien qu'une petite crise, il nous en fait régulièrement.
Je me rends compte que mon schéma à main levée plus haut est incomplet, j'ai oublié les npn qui pilotent les anodes communes. Je vais corriger çà et rajouter une résistance en dur sur le dp qui servira de led témoin de fonctionnement, çà évitera de le laisser allumé hors projet..
Je me rends compte que mon schéma à main levée plus haut est incomplet, j'ai oublié les npn qui pilotent les anodes communes. Je vais corriger çà et rajouter une résistance en dur sur le dp qui servira de led témoin de fonctionnement, çà évitera de le laisser allumé hors projet..
Retourner vers « Langage ASM »
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 2 invités
