Planete Sciences

forums de Planete Sciences
It is currently Thu 23 May 2013, 23:17

All times are UTC + 1 hour [ DST ]




Post new topic Reply to topic  [ 12 posts ] 
Author Message
PostPosted: Fri 24 Feb 2012, 01:17 
Offline
PMI

Joined: Sun 17 Aug 2003, 04:53
Posts: 556
Bonjour

Est-ce que vous pouvez m'aider je ne arrive pas à configurer mon SPI de dspic33fj128mc202

je ne vois aucune donné sur la pin 18 .
http://ww1.microchip.com/downloads/en/D ... 70291F.pdf

Code:
void SPI1Init(void)
{

IFS0bits.SPI1IF = 0; //Clear the Interrupt Flag
IEC0bits.SPI1IE = 0; //disable the Interrupt
// SPI1CON1 Register Settings
SPI1CON1bits.DISSCK = 0; //Internal Serial Clock is Enabled.
SPI1CON1bits.DISSDO = 0; //SDOx pin is controlled by the module.
SPI1CON1bits.MODE16 = 1; //Communication is word-wide (16 bits).
SPI1CON1bits.SMP = 0; //Input Data is sampled at the middle of data output time.
SPI1CON1bits.CKE = 0; //Serial output data changes on transition from
//Idle clock state to active clock state
SPI1CON1bits.CKP = 0; //Idle state for clock is a low level;
//active state is a high level
SPI1CON1bits.MSTEN = 1; //Master Mode Enabled
SPI1STATbits.SPIEN = 1; //Enable SPI Module
SPI_SS_PORT            = 1;   //
   SPI_SS_TRIS            = 0;   // set SS as output
TRISBbits.TRISB9=1;
 PORTBbits.RB9=0;
}


Top
 Profile  
 
PostPosted: Fri 24 Feb 2012, 01:36 
Offline
User avatar

Joined: Tue 31 Aug 2010, 18:35
Posts: 130
Location: Berkeley, CA
Je n'ai pas regarde de tres pret, mais de memoire les ds33 ont un PPS (Peripheral Pin Select). Il faut que tu le configure pour dire au PIC quelle pin tu veut utiliser pour le SPI.

_________________
Team Coffee-Machine: http://www.coffee-machine.fr


Top
 Profile  
 
PostPosted: Fri 24 Feb 2012, 11:43 
Offline

Joined: Sun 19 Nov 2006, 19:25
Posts: 405
Salut SDOW,

Comme TheDude l'a mentionné la plupart des dsPIC33 et autres PIC24 possèdent l'affectation programmable des broches digitales aux périphériques interne (PPS) un peu comme les FPGA. Cela permet de faire entrer et sortir les signaux digitaux sur les broches que l'on souhaite. :D

De plus c'est dynamique si on le souhaite, c'est à dire que ces affectations peuvent être changées pendant l'exécution.

L'utilisateur doit donc initialiser le PPS au tout début de son programme.
Tu trouveras des exemples de configuration du PPS dans les exemples de code pour les dsPIC33 ici : http://www.microchip.com/codeexamples

a+

_________________
Les bonnes pratiques...Bonjour,....pas de texte style SMS.....Merci...et ne pas oublier GOOGLE avant tout ;=)


Top
 Profile  
 
PostPosted: Fri 24 Feb 2012, 15:50 
Offline
PMI

Joined: Sun 17 Aug 2003, 04:53
Posts: 556
Bonjour

Vous êtes les champions ! Pour mon SPI c'est OK. Presentement, je travail sur un DAC http://www.analog.com/static/imported-f ... 0_5060.pdf

Mais, j'ai la difficulté de obtenir une tension en sortie ? Pouvez vous m'aider .
Je envois toujours des données en 16 bits . Je crois que la chipe est très simple .


Top
 Profile  
 
PostPosted: Fri 24 Feb 2012, 19:59 
Offline
User avatar

Joined: Tue 31 Aug 2010, 18:35
Posts: 130
Location: Berkeley, CA
Regarde la datasheet de ton DAC page 15.

Tu dois:
a. Envoyer un pulse d'au moins 12ns sur sync (bas, haut pendant 12ns mini, puis bas de nouveau)
b. Envoyer une série de trois octets (3*8 bits). Le premier choisit le mode d'opération (0 pour normal), les deux suivant sont la valeur a utiliser pour le DAC.

Il faut donc que tu repasses ton SPI en 8 bits pour pouvoir envoyer ces 3 octets.

_________________
Team Coffee-Machine: http://www.coffee-machine.fr


Top
 Profile  
 
PostPosted: Fri 24 Feb 2012, 20:12 
Offline
PMI

Joined: Sun 17 Aug 2003, 04:53
Posts: 556
Pour le sync je met la pin à 1 pendant la durée d'envois des données SPI puis je le met à 0 .


Top
 Profile  
 
PostPosted: Fri 24 Feb 2012, 20:29 
Offline
User avatar

Joined: Tue 31 Aug 2010, 18:35
Posts: 130
Location: Berkeley, CA
Quote:
In either case, it must be brought high for a minimum of 12 ns before the next write sequence so that a falling edge of SYNC can initiate the next write sequence


C'est dans le sens inverse qu'il faut l'utiliser. La pin a 0 pendant l'envoi des données.

_________________
Team Coffee-Machine: http://www.coffee-machine.fr


Top
 Profile  
 
PostPosted: Fri 24 Feb 2012, 21:42 
Offline
PMI

Joined: Sun 17 Aug 2003, 04:53
Posts: 556
Séquence d’initialisation
AD5060

-Configurer SPI en 16 bits
- Mettre le SYNC à 1 pendant 12 ns
-Mettre le SYNC à 0
-Envoyer les 16 bit des données
-passer le SPI en mode 8 bite
-Envoyer 0x00 sur SPI
-Revenir à la première étape


Top
 Profile  
 
PostPosted: Fri 24 Feb 2012, 21:54 
Offline
User avatar

Joined: Tue 31 Aug 2010, 18:35
Posts: 130
Location: Berkeley, CA
L'octet de mode d'operation doit etre envoye avant tes donnees (cf page 15 de la doc).

Et je te deconseille de changer le mode d'operation du SPI pendant que tu t'en sers. Il vaut mieux le laisser en 8 bits tout du long, et decouper la donnee que tu veux envoyer en deux octets:

u16 data = XXXX
u8 b0,b1;

b0 = data & 0xFF;
b1 = (data >> 8 ) & 0xFF;

spi_send(b1);
spi_send(b0);


A toi d'adapter pour ton code mais comme ca tu as l'idee. Tu decoupe ta variable 16 bits en deux variables 8 bits (partie haute et partie basse), et tu envoie les deux morceaux sur le spi.

La sequence devrait donc etre:
- Mettre le SYNC à 1 pendant au moins 12 ns
-Mettre le SYNC à 0
-Envoyer 0x00
-Envoyer la partie haute des donnees
-Envoyer la partie basse des donnees
-Revenir à la première étape

_________________
Team Coffee-Machine: http://www.coffee-machine.fr


Top
 Profile  
 
PostPosted: Fri 24 Feb 2012, 22:56 
Offline
PMI

Joined: Sun 17 Aug 2003, 04:53
Posts: 556
merci mes amis pour l'aide ... je essaye ça aujourd'hui


merci


Top
 Profile  
 
PostPosted: Sat 25 Feb 2012, 16:42 
Offline
PMI

Joined: Sun 17 Aug 2003, 04:53
Posts: 556
bonjour


Voila mon chip DAC et SPI fonctionne correctement . Là j'aimerais jouer une petite musique wav . Pourriez vous me expliquer comment jouer cette musique ... je ne connais rien en musique ... les feq...

Merci


Top
 Profile  
 
PostPosted: Sat 25 Feb 2012, 23:21 
Offline
PMI

Joined: Sun 17 Aug 2003, 04:53
Posts: 556
est-ce-que vous savez comment transformer un music wav en bits et jouer sur pic avec SPI ?


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 12 posts ] 

All times are UTC + 1 hour [ DST ]


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You can post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group