Q1. Quelle est la taille des données converties ?
Q2. Quelle est la valeur max admissible dans les registres CCR des timers associés à la génération des signaux PWM ?
PROJET SOURCE
Le répertoire PMSM_PYSIM contient :
Pysimcoder permet donc dans un premier temps de réaliser un système sous forme de schémas blocs, de le tester ( tracé de courbes en simulation ), puis de générer un fichier correspondant à ces blocs afin de programmer une cible STM32.
$ bash pysim-run.sh
REMARQUE : Un bloc doit avoir systématiquement une entrée.
Ici le bloc potentiomètre reçoit la valeur de CONST en simulation, et le résultat de la conversion analogique-numérique pour le potentiomètre sur la cible.
En effet le code associé au bloc potentiometre est le suivant :
static void inout(python_block *block)
{
double *y = block->y[0];
double *u = block->u[0];
#ifdef __STM32__ // TARGET CODE HERE
y[0] = potentiometre_pysim;
#else // PC SIM CODE HERE
y[0] = u[0];
#endif
}
REMARQUE : Pour toute nouvelle simulation, il faut fermer la fenêtre avec la courbe, simuler, et recliquer sur le bloc plot
$ python RTScope.py
On doit observer un signal carré ( Pulse ) dont l’amplitude est réglable avec le potentiomètre.
Côté carte, l’envoi des données se déroule dans la tache Print_Task( fichier main.c ) :
static void Print_Task(void *pvParameters)
{
char buf[6];
for (;;)
{
buf[5] = speed_mes>>8;
buf[4] = speed_mes;
buf[3] = (pulse >> 8) ;
buf[2] = pulse;
buf[1] = 0;
buf[0] = 123; // START OF FRAME
uart_Write(buf, 6);
}
}
Q1. Compléter le schéma pour adapter l’intervalle des valeurs issues du convertisseur analogique numérique (potentiomètre) à l’intervalle des valeurs du timer-PWM.
Q2. Modifier le schéma pour transiter par l’intervalle [-2^15,2^15[