Go Down

Topic: recherche composant timer... (Read 3044 times) previous topic - next topic

Super_Cinci

Salut à tous!

Je joue en ce moment avec des timers, et dans un projet que j'aimerais bien mener à termes pour l'été prochain, je cherche un CI qui me permettrait de bananer de la PWM autant que je veux.

Ce projet, c'est simplement un dimmer de leds 12V. J'ai récupéré tout un stock de leds 12V, et j'aimerais bien en faire des bandeux gérés par DMX. Le DMX demande pas mal de temps de traitement, d'où l'idée de confier la PWM à des composants externes, la PWM logicielle est impossible dans mon cas. Je ne veux pas coller un MEGA2560, ce serait du gâchis...

En gros, le composant idéal possèderait 8 entrées data (D0 à D7), une entrée "EN" de validation des datas, et il me suffirait de mettre mon octet dessus, une impulsion sur EN, et il se débrouille tout seul pour m'envoyer la PWM de rapport cyclique octet/255.

Quelques recherches m'ont amené sur le 82C54, qui possède 3 timers, mais c'est un monostable, qui génère une simple impulsion, mais ne fait pas de PWM. Dommage, niveau programmation, c'est exactement ce que je cherchais.

datasheet 82C54 : http://www.intersil.com/content/dam/Intersil/documents/fn29/fn2970.pdf

quelqu'un connaît un tel composant?

merci!

Artouste

#1
Sep 20, 2013, 12:47 pm Last Edit: Sep 20, 2013, 01:01 pm by Artouste Reason: 1



En gros, le composant idéal possèderait 8 entrées data (D0 à D7), une entrée "EN" de validation des datas, et il me suffirait de mettre mon octet dessus, une impulsion sur EN, et il se débrouille tout seul pour m'envoyer la PWM de rapport cyclique octet/255.


bonjour supercinci

en gros tu cherche un compo en entrée // et sortie PWM (pas important à ce stade, mais à quel taux de PWM ? )

à chaud je ne vois pas de candidats dediés

mais en limitation de tripaille , je chercherais un MCU (atmel/microchip autres)
le cahier des charges de base etant 8 pins DATA IN, 1 pin IN INH , 1 pin out PWM, VCC,GND (clock interne) soit 12 pins imperatives
en 14 pin à pas cher et facile à trouver on trouve surement déjà des bons candidats.

chez MCP par exemple un 16F505 doit etre suffisant

Super_Cinci

Effectivement, on doit pouvoir programmer un petit AVR, dans l'idée, il me faut un max de PWM 8 bits, donc autant de pin EN que de canaux PWM, voire intégrer un démultiplexeur dans l'AVR (3 pins @ pour 7 canaux, 4 pour 15...)

Dans mes données DMX, je reçois 1 valeur 8bits par canal (sur 512 possibles), donc une PWM 8 bits, c'est nikel. Côté nombre de sorties, j'imagine bien un truc genre 32 canaux...

Artouste

#3
Sep 20, 2013, 01:04 pm Last Edit: Sep 20, 2013, 01:12 pm by Artouste Reason: 1

Effectivement, on doit pouvoir programmer un petit AVR, dans l'idée, il me faut un max de PWM 8 bits, donc autant de pin EN que de canaux PWM, voire intégrer un démultiplexeur dans l'AVR (3 pins @ pour 7 canaux, 4 pour 15...)

Dans mes données DMX, je reçois 1 valeur 8bits par canal (sur 512 possibles), donc une PWM 8 bits, c'est nikel. Côté nombre de sorties, j'imagine bien un truc genre 32 canaux...

oui ou si tu veux rester sur du modulaire chercher un 10 pins en I/O
j'ai edité au dessus avec le 16F505 (0.50$/qty)  , mais il doit y en avoir d'autres et ailleurs

si tu veux faire un 32 canaux sur un MCU  , il te faut en mini 32 out , 8 in data, 6 INH (en mux) V GND , ça commence à etre usine à gaz

Super_Cinci

Dans l'idée, ce serait une carte "bus" sur laquelle on enfiche des cartes filles, donc le 82C54 collait très bien : une carte pour 3 sorties PWM...

Surtout qu'avec l'alim et les mosfets, le boîtier sera assez grand (je pars de toutes façon sur un format 19", 1U si je peux en fonction de l'alim et des raccordements derrière...)

Artouste


Dans l'idée, ce serait une carte "bus" sur laquelle on enfiche des cartes filles, donc le 82C54 collait très bien : une carte pour 3 sorties PWM...

Surtout qu'avec l'alim et les mosfets, le boîtier sera assez grand (je pars de toutes façon sur un format 19", 1U si je peux en fonction de l'alim et des raccordements derrière...)

ok
tu peux voir aussi à légèrement moduler les filles  :smiley-mr-green:

faire du 2voies avec un 20 pin ça doit etre possible (sans mux inutile là )
8+2+2
faire du 4 voies avec un 28 pin aussi (sans mux)
8+4+4

Super_Cinci

Au pire, un 328p peut me fournir 6 belles PWM et il me restera 14 pins pour data / adressage... mais je me disais qu'un composant tout fait eu été plus simple...

Artouste


Au pire, un 328p peut me fournir 6 belles PWM et il me restera 14 pins pour data / adressage... mais je me disais qu'un composant tout fait eu été plus simple...

bien d'accord , mais en logique cablée et à chaud je ne vois pas de compo //--->PWM

en clock interne (pas de BdT externe en "tripaille") , le 328P monte à quelle fréquence ?

68tjs

Il y a bien un bidule qui s'appelle le FPGA qui permet de faire ce que l'on veut en logique synchrone et asynchrone.
C'est ce que je viens de commencer à regarder, mais la bête à l'air bien difficile à apprivoiser.
Je m'étais justement dit que ce serait sympa de faire dans un FPGA une dizaine (ou plus) de PWM à des fréquences différentes le tout géré en I2C pour pouvoir communiquer avec une carte Arduino.
C'est faisable mais au rythme où je progresse, et si je craque pas avant,  ce ne sera pas fini pour l'été 2014 mais plus probablement en 2015 ou 2016.

Un FPGA c'est un ensemble de "éléments logiques élémentaires" que l'on peut associer comme on veut. Les associations étant mémorisées dans un fichier binaire implanté dans une eeprom externe.

La difficulté est que pour obtenir ce fichier binaire on utilise un langage qui ressemble à de la programmation mais qui n'en est absolument pas, même si on utilise des boucles if,for,while on est vraiment au niveau du matériel : une variable "registre" est plus à considérer comme une bascule D-Latch que comme en C un registre de 8 bits manipulable à  volonté.

Artouste


Il y a bien un bidule qui s'appelle le FPGA qui permet de faire ce que l'on veut en logique synchrone et asynchrone.
...

Bonjour 68tjs
oui d'accord avec toi , mais l'approche (idée--->"truc qui marche" ) sur base FPGA
n'est pas spécialement d'un abord facile en DIY , la chaine est "compliquée" (compo, environnement, base de test, autres ).
perso , dans ce cadre "ludique" , et à ce jour j'oublie  :smiley-mr-green:
je changerais peut etre un jour d'avis, mais je suis sur que ce ne sera pas aujourd'hui  8)

Super_Cinci

Oui, ces logiques programmables, on nous en avait parlé à l'école, c'était avant l'arrivée fulgurante des proc RISK. du coup, les procs ont gagné. Dans le but de faire de la PWM avec, je suis pas sûr que ça soit vraiment capable, car ça fait vraiment beaucoup de fonctions logiques à enchaîner...

fdufnews

Tu es vraiment attaché à l'interface parallèle?

Parce qu'il y a des trucs comme ça http://www.ti.com/product/tlc5940 qui sont plutôt pas mal. Par contre en interface parallèle il n'y a rien avec PWM.

fdufnews



La difficulté est que pour obtenir ce fichier binaire on utilise un langage qui ressemble à de la programmation mais qui n'en est absolument pas, même si on utilise des boucles if,for,while on est vraiment au niveau du matériel : une variable "registre" est plus à considérer comme une bascule D-Latch que comme en C un registre de 8 bits manipulable à  volonté.

En VHDL ou Verilog, on peut écrire très bas niveau (en décrivant la bascule et la porte) mais on peut aussi écrire assez haut niveau. Dans ce cas les variables peuvent représenter un registre de taille quelconque. Un compteur s'écrit alors comme une addition et l'écriture n'est pas très éloignée du C.

Il y a des chaînes de développement gratuites. Pour ce faire la main c'est pas mal.

Le problème c'est plutôt le prix. Un petit FPGA coûte déjà assez cher comparativement à un microcontrôleur. Et du coup il est plus économique de faire 10 PWM avec interface SPI dans 10 ATtiny que dans un FPGA.

skywodd

Salut,

Un petit CPLD (pas un FPGA, faut rester calme hein :smiley-mr-green:) serait un candidat idéal pour solutionner ton probléme ;)

Je te conseille le XC9572XL de Xilinx.
Il coute quelque chose comme 3.5€ sur Farnell si tu veut te faire une carte maison, ou ~13€ en format breakout toute préte de Dangerous Prototypes.

Niveaux spec c'est du bon (tout en restant simple) :
- 72 "macrocells" (léger mais largement suffisant)
- inputs "5volt tolerant" (mais pas toutes attention !)
- prog par JTAG, soit avec un FT2232, soit avec une carte bus pirate (ou sinon avec n'importe quel "player XSVF" compatible Xilinx)

Niveau software c'est moins simple (c'est pas de la dév software, mais hardware).
-> Verilog, VHDL ou schéma (je te conseille le Verilog, mais surtout pas le mode schéma)
-> IDE "webpack ISE" de Xilinx (gratuit mais qui fait +6Go)

Si tu veut je peut te faire un morceau de Verilog et te le pré-compiler.
Donne moi juste tes spécifications concernant le fonctionnement et âpres un petit coup de simulation ça devrait être bon ;)

NB: le Verilog peut sembler barbare et imbuvable aux premiers abords mais c'est vraiment pas compliqué en fait.
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

icare

#14
Sep 20, 2013, 05:28 pm Last Edit: Sep 20, 2013, 05:32 pm by icare Reason: 1
Bonjour,
Je n'ai pas lu l'ensemble des éléments ci-dessus mais j'ai utilisé : http://www.nxp.com/documents/data_sheet/PCA9685.pdf
@+
[EDIT]
https://www.sparkfun.com/products/10136
2B OR NOT(2B) = FF
Arduino 1.0.5 + Notepad++ (sous Linux Fedora et/ou Windows)

Go Up