trame de bits

bonjour à tous,

Je voudrais savoir s'il y'a une alternative au fonction "HIGH" et "LOW"?

je m'explique:

pour allumer une led, on active un pin et on le met soit a 1 (HIGH) soit à 0 (LOW). mais est-il possible de construire une binaire genre " 100010101" et que la Led prenne l'état correspondant a chaque coup d'horloge ?

Ausmoz1:
pour allumer une led, on active un pin et on le met soit a 1 (HIGH) soit à 0 (LOW). mais est-il possible de construire une binaire genre " 100010101" et que la Led prenne l'état correspondant a chaque coup d'horloge ?

bonsoir
quel coup et venant de quelle horloge ?

Artouste:
bonsoir
quel coup et venant de quelle horloge ?

Le signal d'horloge tourne a 8Mhz +/- 20%

Vous voulez allumer et éteindre la led à 8Mhz? Quel usage ??

D'où vient le signal à 8Mhz?

pepe:
Avec un Arduino à base d'ATmega à 16MHz, on peut générer une séquence à 8 Mbit/s ±0,5% (précision des résonateurs céramiques) ou mieux (quartz) à l'aide de l'USART.

je doit créer cette horloge (un signal carrée ) a 8Mhz via l'arduino . mais pour le moment je suis bloquer à 26Khz avec les timer de l'arduino ! je vais me pencher sur l'USART.

J-M-L:
Vous voulez allumer et éteindre la led à 8Mhz? Quel usage ??

NON pas de Led a faire clignoter ! J'ESSAI de crée un protocole. deux fils: 1 pour l'horloge a 8Mhz et l'autre pour lecture/ecriture sur le composant externe choisi !

D'ou mon problème de pouvoir envoyer des trames de 0 1, synchroniser sur ma Clk sans avoir a écrire tout le temps HIGH, LOW.

Vous avez un code fonctionnel en utilisant timer1 ici

Bien sûr ça bloque 2 pins et interdit l'utilisation de certaines librairies (servo par exemple utilise timer1).

Vous pourriez sortir la génération de la fréquence de l'Arduino en prenant un simple petit cristal externe à 8Mhz que vous alimentez pour l'activer (vous pouvez en acheter un lot de 20 pour moins de 2 euros sur les sites de ventes en lignées provenance de Chine - faites une recherche sur "0pcs 8MHz /8.000 MHZ Crystal Oscillator HC-49S GOOD QUALITY C2")

@Ausmoz1
C'est toujours pour utiliser ton capteur avec une liaison 2 fils?

fdufnews:
@Ausmoz1
C’est toujours pour utiliser ton capteur avec une liaison 2 fils?

Merci beaucoup pour vos réponses.

OUI OUI liaison deux fils.

pepe:
Avec un timer, on peut très bien générer une horloge à 8 MHz. Par exemple, pour avoir un signal carré à cette fréquence sur la sortie 9 de l’Arduino (PB1) à partir du Timer 1 :

  TCCR1A = 0;

TCCR1B = 0;
  TCNT1  = 0;
  OCR1A = 0;                // F = 16MHz/2/(0+1) = 8MHz
  TCCR1A |= (1 << COM1A0);  // Toggle OC1A on Compare Match
  TCCR1B |= (1 << WGM12);    // CTC mode
  TCCR1B |= (1 << CS10);    // clock on, prescaler = 1/1
  DDRB |= (1 << DDB1);      // output enabled





Il faut donc se tourner vers une solution matérielle, en l'occurrence l'usage de interface SPI, ou de l'interface USART, qui sont capables d'atteindre le débit souhaité.

Le SPI nécessite 3 fils minimum, dans mon cas, la lecture et l’écriture ce fait sur le même.

pour plus de détail, je travaille sur du décodage d’une interface SPC.
voir guide programmation:
http://www.infineon.com/dgdl/TLE4998C_Programming_Guide_Rev1.0.pdf?fileId=db3a30431ce5fb52011d2e8624731e9d
j’avoue que je ne sais pas trop comment procéder !

Il aurait été plus simple de continuer le fil commencé comme ça on aurait eu le contexte.
Je ne comprends pas pourquoi tu veux une horloge à 8MHz. Dans la doc dont tu donnes le lien la période min de l'horloge est de 5µs soit 200kHz , et la période typique de 100µs soit 10kHz. La période max n'est pas précisée.

fdufnews:
. Dans la doc dont tu donnes le lien la période min de l'horloge est de 5µs soit 200kHz , et la période typique de 100µs soit 10kHz. La période max n'est pas précisée.

@fdufnews

Merci d'avoir pris le temps de la lire, c'est vraiment sympa !
effectivement la période max n'est pas préciser mais c'est pas vraiment l'horloge qui me pose problème.

Ce qui me pose problème c'est comment construire des trames valides et les synchroniser avec mon horloge, ce qui me permettrai d'avoir un acces en lecture fonctionnelle !

modifier des registre internes au µC, je sais faire mais aller modifier des registres dans un dispositf externe, sa me pause problème.

Oui mais générer des signaux à 8MHz ou des signaux à quelques dizaines de kHz ce n'est pas tout à fait la même problématique.
Pour travailler à quelques dizaines de kHz tu peux générer tes signaux "à la main" en utilisant la librairie digitalWriteFast

fdufnews:
Oui mais générer des signaux à 8MHz ou des signaux à quelques dizaines de kHz ce n'est pas tout à fait la même problématique.
Pour travailler à quelques dizaines de kHz tu peux générer tes signaux "à la main" en utilisant la librairie digitalWriteFast

OUI une très grosse différence ! je regarderai en détail ta librairie :slight_smile: ! concernant les access telles qui sont décrit dans le guide, comment construire les trames tel qu'elles sont décrites ?

Bonjour,
je serais tenté de répondre : en faisant des BIT_SET, BIT_CLEAR et BIT_READ selon la doc du composant
mais à ce stade j'ai moins de réponses que de questions :

  • on dispose typiquement de 100µs, est-il pertinent d'utiliser une bibliothèque spécifique ?
  • comment fixer la période de 100µs ?
  • ne serait-il pas judicieux de partir d'une librairie SPC existante et l'adapter ? (notez que ceci ne signifie nullement que je me propose de le faire)
  • ce composant peut-il être utilisé "ootb" ou bien doit il être calibré et programmé avant utilisation ? (dans ce cas le topic se complique un peu, mais n'en sera que plus intéressant)

trimarco232:

  • on dispose typiquement de 100µs, est-il pertinent d'utiliser une bibliothèque spécifique ?
  • comment fixer la période de 100µs ?

Pour creer l'horloge, j'utilise en timer en CTC, c'est assez simple à faire et c'est stable

trimarco232:

  • ne serait-il pas judicieux de partir d'une librairie SPC existante et l'adapter ? (notez que ceci ne signifie nullement que je me propose de le faire)

Malheureusement, y'en a pas, sa aurait été bcp plus simple je crois :slight_smile:

trimarco232:

  • ce composant peut-il être utilisé "ootb" ou bien doit il être calibré et programmé avant utilisation ? (dans ce cas le topic se complique un peu, mais n'en sera que plus intéressant)

justement, il doit etre péprogrammer avant utilisation , d'ou la nécessite d'écrire ou de lire les valeurs comptenu dans la EEPROM du capteur.

il doit être péprogrammé avant utilisation

Bonjour,
souhaite-tu créer un programmateur spécifique, ou bien pouvoir programmer le capteur sur le montage définitif ?

l'objectif

trimarco232:
Bonjour,
souhaite-tu créer un programmateur spécifique, ou bien pouvoir programmer le capteur sur le montage définitif ?

pour le moment, je tends plus vers "un programmateur spécifique". j'utilise l'évalBoard du capteur, que j'attaque directement sur les Pins dédié avec l'arduino !!

Bonjour,
cela simplifie la vie
il serait peut-être intéressant d'avoir un analyseur logique (quelques euros) pour comparer "ce qui fonctionne avec l'évalbord" et "ce qui va bientôt fonctionner avec ton arduino"