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 ---
Tout ce qui n'a pas de catégorie !
Interruption et I2C
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2589
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#11 Message par paulfjujo » ven. 6 mars 2020 09:44

Temps-x a écrit :Vu la vitesse ou tourne ton microcontrôleur(64Mhz) tu peux sans aucun problème lui faire tout faire, il faut juste les faire dans un bon ordre.


64/4=16MHz effectif 0.0625µS/cycle
inserer tous les traitements dans les gaps de 4mS - traitement raffraichissement affichage 7 segm => reste 3.6mS
ça fait effectivement 3600µS / 0.0625 => 57600 cycles - traitement duree interruption
- traitement RX UART interrupt
:mur: mais les repartir entre toutes les autres taches !!!

sinon interrupt toutes les mS .. et une machine d'etat
avec des traitement qui doivent etre inferieur à la ms ..
revient à faire un OS temps réel .. mais l'OS lui meme bouffe une grosse partie des ressources ..

je pense que ce serait possible , mais avec un affichage Fixe des messages sur les 12 matrices.
rafraichit chaque seconde

par contre
avec le mode defilant .. les 96 colonnes à rafraichir en SPI bit Bang + decalage ASM 96 bits + timing mini à respecter
tout en gardant la synchro des 6 afficheurs ( Interrupt TMR2 chaque 4mS)
+ le ruban 60 leds RGB en SPI2 chaque seconde (envoi de 2x 1480 bytes! avec respect du timming )
+ l'I2C RTC chaque seconde
+ UART en emission chaque seconde
(et Reception RX interrupt qui a besoin d'une fenetre temporelle pour pouvoir recevoir 3 à 63 caracteres )
+ 2 mesures OWS
ça commence à faire beaucoup , surtout pour imbriquer / synchroniser le tout
possible ? ..

mais pas pour moi , prise de tete pour economiser un MCU ?

idea ! à moins de découvrir une idée fulmineuse ?

le projet actuel
liaison d'info entre les 2 MCU
en I2C ou via UART
le MCU#1 recoit uniquement sur son RX UART ( MCU #2 envoi l'info HHMMSS sur le MCU Aff 7 segm) chaque seconde
en meme temps que sur la liaison BlueTooth

Horloge_2020_synoptique_rev_2020_03.jpg
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Aide toi, le ciel ou FantasPic t'aidera

Interruption et I2C
satinas
Expert
Expert
Messages : 1225
Enregistré en : novembre 2015

#12 Message par satinas » ven. 6 mars 2020 10:36

Bonjour,
c'est peut être le moment de passer au pic 16 bits :)

Les 24HJ avec oscillateur interne et PLL montent à 80 MHhz
Fosc = 80MHz, Fcy = Fosc/2 = 40MHz, Tcy = 25ns, 40 MIPS
ADC 12 bits

Avec les 24EP on monte à 70 MIPS

Interruption et I2C
Gérard
Avatar de l’utilisateur
Expert
Expert
Messages : 1640
Âge : 65
Enregistré en : septembre 2015
Localisation : Alsace - Haut-Rhin

#13 Message par Gérard » ven. 6 mars 2020 22:17

Temps-x a écrit :Bonsoir tout le forum,


Temps-x a écrit : :bravo: Gérard... j'ai regardé le code de Claudius, ca te fait 4489 lignes d'assembleurs à lire (une banalité pour toi) :sifflotte:

==> A+


Je n'ai pas encore commencé à regarder et toi tu me sapes le moral... :lol:
Le 18/04/19 je suis devenu papy de jumeaux, le 01/09/23 une petite cousine des jumeaux est née.

Interruption et I2C
Gérard
Avatar de l’utilisateur
Expert
Expert
Messages : 1640
Âge : 65
Enregistré en : septembre 2015
Localisation : Alsace - Haut-Rhin

#14 Message par Gérard » ven. 6 mars 2020 22:22

paulfjujo a écrit :
Gérard a écrit :
Je comprends bien que l'interruption n'est générée que si les bit prévus sont placés. En pooling, il faut tout le temps surveiller le bit xxIF. N'est ce pas gênant pour du PWM?



par contre je ne comprends pas bien tes besoins ( pas ceux naturels !) et ou tu veux en venir

L'association TMR2 et PWM est NATURELLE, et interne en HARDWARE .
on met dans PR2 la valeur du Duty cycle PWM ..et ça roule tout seul ..
pas besoin de gerer un flag ou interrupt

par contre si par ailleur tu as besoin d'un timer, prend en un autre (TMR4,TMR6) qui sont en 8 bits Auto-Relaod
ou un 16 bits ; Timer1,3, 5 qui ont un bit de start (TMR1ON_bit par exemple)
et utilise les interrupts pour faire des tempos ou autre traitement

car utiliser Timer2 ,déja pris par le PWM => Problemo

un timer utilisé en mode pooling , bloque quelque part le programme, puisqu'il faut surveiller le flag TMRxIF
mais il peut etre utilisé comme TimeOut ..pour ne pas rester bloqué dans une boucle sans fin , si il manque
une autre condition.



Je vais me replonger dans la doc. TMR2 et PWM peuvent fonctionner ensemble sans interruption?
Moi idée de départ était de piloter en PWM un logic level MOS pour varier l'éclairement des 120 LED.
Le 18/04/19 je suis devenu papy de jumeaux, le 01/09/23 une petite cousine des jumeaux est née.

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

#15 Message par paulfjujo » sam. 7 mars 2020 09:57

bonjour à tous,

Gérard a écrit :Moi idée de départ était de piloter en PWM un logic level MOS pour varier l'éclairement des 120 LED.


OK
as-tu un schema de connection pour ces 120 leds ?

si les leds sont multiplexé, la freqence PWM devra etre au moins 10 fois plus grande
PWM 8 bits suffisant ? (255 pas)

commande via le +alim => Mosfet canal P + etage inverseur de coammnde ( ex 2N2222)
commande coté GNd (0V) MOSFET canal N

à verifier le niveau global de tension aux bornes des ensembles de LED ( 1 à 1,5V par led rouge)
mettre une R en parallele sur l'ensemble des leds pour ameliorer la commutation du MOSFET ( chauffera moins)
avec R = Valim/( I globale/10) par exemple


on peut aussi utiliser un simili PMW avec un simple timer
exemple d'une guirlande de leds avec effets lumineux (rampe de montée et descente luminosité) ou clignotement
suivant une pattern donnée .. via Appli android et Bluetooth
[url=http://paulfjujo.free.fr/12F683_12F1840/12F683.htm#Guirlande_Led[/url]
c'est en C , mais avec de l'ASM

la version2 utilise le PWM hardware du PIC ...
Aide toi, le ciel ou FantasPic t'aidera

Interruption et I2C
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2596
Enregistré en : juillet 2016
Localisation : Terre

#16 Message par Temps-x » sam. 7 mars 2020 15:58

Bonjour Gérard, paulfjujo, et tout le forum,


paulfjujo as tu pensées de faire ton montage sans les interruptions, on le faisant tournée en boucle (je sais pu comment on appelle ça en dans la langue anglaise.

paulfjujo a écrit :Source du message c'est en C , mais avec de l'ASM

:+1:

Pour Gérard

https://www.youtube.com/watch?v=N53I0CbDejo&t=1s

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

Interruption et I2C
Gérard
Avatar de l’utilisateur
Expert
Expert
Messages : 1640
Âge : 65
Enregistré en : septembre 2015
Localisation : Alsace - Haut-Rhin

#17 Message par Gérard » sam. 7 mars 2020 17:08

Bonjour à tous,

Mon idée est de commander les LED avec des MCP23016 (pas de multiplexage). Une sortie à 1 allumera la LED, donc 120 résistances. Du coté GND un MOS commandé par PWM pour limiter l'éclairement la nuit.

Je viens de regarder la doc du 16F876 et il y a des trucs que je ne comprends pas.

PWM.pdf


Si je souhaite 50% de rapport cyclique, je charge PR2 à $FF et CCPR1L à $80, je démarre TMR2 et sur RC2 j'ai le résultat. C'est bien ça?
Et tout ça fonctionne en autonome sans interruption.
J'ai juste?

Temps-x, je ne crois pas que tu pourras m'endoctriner avec l'asm... :lol:

Bon WE à tous et merci de vous intéresser à mes petits soucis. :-D
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Le 18/04/19 je suis devenu papy de jumeaux, le 01/09/23 une petite cousine des jumeaux est née.

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

#18 Message par paulfjujo » sam. 7 mars 2020 18:36

Gérard a écrit :Mon idée est de commander les LED avec des MCP23016 (pas de multiplexage). Une sortie à 1 allumera la LED, donc 120 résistances. Du coté GND un MOS commandé par PWM pour limiter l'éclairement la nuit.



Ah oui, tu avais déja évoqué ce montage
et je t'avais aussi déja préconisé l'usage d'un Mosfet canal P coté + Alim, plutot que le Mosfet canal N coté 0V


pourquoi ?
parce que ton MCP23016 a une plus grande SORTANCE ( capabilité) en courant en mode SINK
plutot que mode SOURCE (revoir la datasheet du MCP23016)
la sortie passe à zero et tire le courant passant dans les leds ( meme si le sens electronique est inverse !)

forum Parallax
In the source mode, the LED lights when the pin is set High.
In the sink mode, the LED lights when the pin is set Low.
Since you can operate the LED in either mode, the choice of sourcing or
sinking often depends on how much current is required. For many devices,
they can sink more current than they can source, which would lead you to
choose sink mode.



tu ne montres pas COMMENT tu groupes tes 120 leds ?

Sink_et_Source_Cde_led_PWM.jpg



Si je souhaite 50% de rapport cyclique, je charge PR2 à $FF et CCPR1L à $80, je démarre TMR2 et sur RC2 j'ai le résultat. C'est bien ça?
Et tout ça fonctionne en autonome sans interruption.
J'ai juste?


OUI ...
tu doit bien avoir une librairie PWM

un peu de lecture, meme si il y a du C .. c'est semblable
PWM.pdf

mikroElektronika_ CCP Modules.pdf
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Aide toi, le ciel ou FantasPic t'aidera

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

#19 Message par paulfjujo » dim. 8 mars 2020 19:31

bonsoir,

Temps-x a écrit :Bonjour Gérard, paulfjujo, et tout le forum,


paulfjujo as tu pensé de faire ton montage sans les interruptions, on le faisant tournée en boucle (je sais pu comment on appelle ça en dans la langue anglaise.



STATE MACHINE ?

quand il y a trop de boucles , ça fait un sac de noeuds .. aux neurones.
humour!! et j'ai pas d'épée pour les couper.
Aide toi, le ciel ou FantasPic t'aidera

Interruption et I2C
Gérard
Avatar de l’utilisateur
Expert
Expert
Messages : 1640
Âge : 65
Enregistré en : septembre 2015
Localisation : Alsace - Haut-Rhin

#20 Message par Gérard » dim. 8 mars 2020 21:06

Bonjour à tous,

J'ai fait des essais avec TMR2 et ça marche. Faut dire que ce n'est pas si dur. :lol:

Paul, tu penses que c'est mieux un canal P? Ca doit exister en logique level.
Le 18/04/19 je suis devenu papy de jumeaux, le 01/09/23 une petite cousine des jumeaux est née.


Retourner vers « Coin Fourre-tout »

Qui est en ligne

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