[Projet] entrer une sinusoide dans une EPROM

entrer une sinusoide dans une EPROM [Projet] - Divers - Programmation

Marsh Posté le 25-11-2004 à 15:57:07    

Bonjour a tous
Je souhaite inscire dans une eprom M27C512 les valeurs de l'amplitude d'un sinus.
Plusieurs problemes se posent:
 
-Comment convertir les valeurs de decimal en binaire ou hexa de maniere automatique(512 valeurs a la main c est moyen  :o )
-Les valeurs doivent etre codé sous 8 bits.=>pas de virgules possibles
-Comment faire pour coder la partie negative.
-le logiciel Chipwriter permet le transfert sur l'eprom.Il est possible d'ouvrir la tableau de valeur a partir d un fihier .bin.Comment le creer?
 
La resolution est de 512 points pour une période.
Pour info, la sorie de la mémoire es reliée a un DAC.
 
j'espere que j ai été clair..
Si quelqu'un peut suggerer quelques idées ....MERCI  ;)

Reply

Marsh Posté le 25-11-2004 à 15:57:07   

Reply

Marsh Posté le 25-11-2004 à 20:29:33    

 Bonjour !
  Je n'ai pas bien compris ce que tu voulais faire :
 
  (1) Pourquoi mettre une période [0...2*PI] entière dans ton éprom ? Tu peux mettre seulement les valeurs pour [0...PI/2] : les autres valeurs se déduisent simplement.
  (2) Tu n'as pas à t'occuper de valeurs négatives si tu écris seulement les valeurs qui correspondent à l'intervalle   [0...PI/2]
  (3) Je ne comprends pas comment tes valeurs peuvent être codées sur 8 bits ? Cela te ferait (au mieux) 256 valeurs différentes possibles et tu dis vouloir écrire 512 valeurs...
  (4) Qu'est-ce qu'un DAC ?
 
  En espérant n'avoir pas trop raconté de bêtises et/ou posé de questions stupides...

Reply

Marsh Posté le 25-11-2004 à 20:43:46    

vs_bacteria a écrit :

Bonjour a tous
Je souhaite inscire dans une eprom M27C512 les valeurs de l'amplitude d'un sinus.
Plusieurs problemes se posent:
 
-Comment convertir les valeurs de decimal en binaire ou hexa de maniere automatique(512 valeurs a la main c est moyen  :o )


bah là je pense qu'il va falloir que tu te fasses un pti bout de programme, dans le langage que tu veux, pour générer un .bin

vs_bacteria a écrit :

-Les valeurs doivent etre codé sous 8 bits.=>pas de virgules possibles


garde la partie entière de 255*(1+sin(2*pi*n/512))/2 pour n allant de 0 à 511

vs_bacteria a écrit :

-Comment faire pour coder la partie negative.


ton DAC est bipolaire ? et qui prend des données signées (sur 7 bits + 1 bit de signe) ? :heink:
(dans ce cas, ma formule ci-dessus ne fonctionne pas)

vs_bacteria a écrit :

-le logiciel Chipwriter permet le transfert sur l'eprom.Il est possible d'ouvrir la tableau de valeur a partir d un fihier .bin.Comment le creer?


cf. ma première réponse
le .bin c'est les données brutes les unes à la suite des autres (ça s'ouvre avec un éditeur hexadécimal)


Message édité par beel1 le 25-11-2004 à 20:44:40
Reply

Marsh Posté le 25-11-2004 à 21:01:58    

autre possibilité pour générer ton fichier .bin, utiliser un logiciel de traitement audio pour faire un fichier .raw de résolution 8 bits (signé/non signé selon ton besoin) et tu génères une sinus d'amplitude maxi et de fréquence égale à la fréquence d'échantillonage / 512

Reply

Marsh Posté le 26-11-2004 à 13:47:39    

Merci pour tout, je vais essayer de creer un .raw
par contre la frequence d'echantillonage n'est pas fixe ...
Pour info , DAC =CNa en francais soit convertisseur numerique analogique

Reply

Marsh Posté le 26-11-2004 à 19:36:57    

je parle de fréquence d'échantillonnage pour la génération du .raw ;)

Reply

Marsh Posté le 26-11-2004 à 20:01:08    

bon, ça se fait rapido
je te donne la version .hex en 8 bits non signés (qui a l'avantage de n'être du texte, alors qu'un .bin ne peut pas se copier-coller)

:020000040000FA
:10000000808183848687898A8C8E8F91929495973C
:10001000989A9C9D9FA0A2A3A5A6A8A9ABACAEAFA1
:10002000B0B2B3B5B6B8B9BABCBDBFC0C1C3C4C520
:10003000C7C8C9CACCCDCECFD1D2D3D4D5D7D8D9C1
:10004000DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E998
:10005000EAEBECECEDEEEFF0F0F1F2F3F3F4F5F5A2
:10006000F6F6F7F7F8F9F9FAFAFAFBFBFCFCFCFDF7
:10007000FDFDFEFEFEFEFFFFFFFFFFFFFFFFFFFF98
:10008000FFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFD86
:10009000FDFDFCFCFCFBFBFAFAFAF9F9F8F7F7F6C0
:1000A000F6F5F5F4F3F3F2F1F0F0EFEEEDECECEB46
:1000B000EAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDB18
:1000C000DAD9D8D7D5D4D3D2D1CFCECDCCCAC9C81E
:1000D000C7C5C4C3C1C0BFBDBCBAB9B8B6B5B3B259
:1000E000B0AFAEACABA9A8A6A5A3A2A09F9D9C9AB9
:1000F0009897959492918F8E8C8A89878684838134
:10010000807F7D7C7A7977767472716F6E6C6B69A3
:100110006866646361605E5D5B5A5857555452511E
:10012000504E4D4B4A484746444341403F3D3C3B7F
:1001300039383736343332312F2E2D2C2B292827BE
:10014000262524232221201F1E1D1C1B1A191817C7
:100150001615141413121110100F0E0D0D0C0B0B9D
:100160000A0A090908070706060605050404040328
:100170000303020202020101010101010101010167
:10018000000101010101010101010102020202035A
:100190000303040404050506060607070809090AFF
:1001A0000A0B0B0C0D0D0E0F101011121314141559
:1001B000161718191A1B1C1D1E1F20212223242567
:1001C000262728292B2C2D2E2F3132333436373841
:1001D000393B3C3D3F404143444647484A4B4D4EE6
:1001E000505152545557585A5B5D5E606163646666
:1001F00068696B6C6E6F7172747677797A7C7D7FCB
:00000001FF


copie-colle ça dans un fichier texte, sauve-le sous l'extension .hex et normalement chipwriter doit pouvoir le prendre ;)
 
edit : au fait, t'as une eeprom aussi grosse pour mettre que ça ? (512 octets sur 65535 dispos)


Message édité par beel1 le 26-11-2004 à 20:07:51
Reply

Marsh Posté le 02-12-2004 à 13:21:04    

Pourrai tu m expliquer comment as tu réalisé ce .hex .
Finalement il ne dois pas avoir 512 mais 256 valeurs.
merci

Reply

Marsh Posté le 02-12-2004 à 19:57:18    

J'ai à ma disposition Sound Forge de Sonic Foundry (je crois que ça a été racheté par Sony depuis... je sais pas si y'a toujours des démos dispos, ou peut être qu'un shareware genre goldwave ou cooledit peut te faire ça)
 
File/New -> tu rentres une fréquence d'échantillonnage de 5120 Hz, résolution 8 bits, mono canal
ça t'ouvre un document vide
 
Tools/Synthesis/Simple -> forme sinus, amplitude maxi (0dB), fréquence 10 Hz
 
Zoome beaucoup, désactive l'option "auto-snap to zero" (sinon tu prendrais 513 échantillons), affiche la sélection en samples plutôt qu'en secondes et sélectionne 512 échantillons (de 0 à 511) en partant du début
 
Copie, ouvre un nouveau document (même format), colle et enregistre au format .raw en précisant 8 bits PCM, unsigned et mono (menu "custom" )
 
et ton .raw, tu peux le renommer en .bin tel quel.
Pour l'obtenir au format texte (.hex), tu ouvres le .bin avec ton programmeur d'eeprom et tu le sauvegarde en .hex et voilà

Reply

Marsh Posté le 05-12-2004 à 21:16:36    

merci beaucoup ca fait plaisir de savoir qu il y a encore des gens qui donnent de leur temps pour aider gratuitement.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed