Cours LOG550

Intrants

  • Documents
    • Plan de cours (format Papier)
    • Feuille d'horaire des cours de Génie Logiciel (papier)
    • Spécification de la carte et du micro-contrôleur
    • Tutoriel sur comment créer un projet
    • Code des programmes d'exemples
    • Acétates du cours
    • Calendrier du cours
    • Courriels du chargé de cours
    • Exercices et solutions
  • Cahiers de notes (papiers)
  • Crayon à l'encre
  • Exposé du chargé de cours
  • Exposé du chargé de laboratoire

Intermédiaire

Extrants

Activités

Assistance au cours

L'étudiant doit planifier son horaire (Korganizer) pour lui permettre d'arriver à temps.

L'étudiant doit préparer le matériel nécessaire pour le cours (tous les papiers se relatant au cours, voir la section entrant).

L'étudiant doit se présenter au cours de 10 à 15 minutes à l'avance.

L'étudiant doit écouter la matière enseignée du chargé de cours.

L'étudiant doit poser des questions s'il ne comprend pas.

L'étudiant doit prendre des notes (surtout ce qui est écrit au tableau).

L'étudiant doit retranscrire les notes prises durant le cours sur son site Web après le cours.

Lecture des acétates après le cours

Date de début: un ou deux jours après la séance de cours

L'étudiant doit relire les acétates.

L'étudiant doit effectuer les exercices concernant le cours et les corriger. On doit souligner les erreurs commises et leur correction.

Références

- consulter le document séance1.pdf
- utiliser avr studio 4 : exemple gcctest1,2,4
- logiciel texatermPo -- serial, com
References: i:/labo/log550 ou le site web
- trvailler dans votre compte k:
- programme le test ou PC: ocillated.exe
- rien a emprunter au magasin (JTAB, générateur)


read_temp = UBRRH;



Notes:
1. utilisation du mot clé "volatile"
 - opposé de "const"
 - nécessaire pour éviter la disparition de la variable à l'optimisation
 - voir "avrfreaks.org"

2. Les adresses des registres sont prédéfinies par avr-gcc
   ex: ddra -> 0x0A
   - la position des bits aussi prédéfinies par avr-gcc
   ex: outp((1>>RXCIE) | (1>>TXCIE), UCSRB);

3. Durant l'exercice, modifier seulement les bits d'intérêts!!!
   ex: READ_TEMP = UBRRH;
       READ_TEMP &= 0xf0;
       UBRRH = READ_TEMP;


A faire:
1- tester votre environnement matériel
   a) d.l. acquitest_32 et exécuter oscillotest.exe

2- tester l'env.rionnement de développement
   a) copier gcctest2, creer projet, compiler et downloader

3- comprendre le contrôle des leds
   a) etudier gcctest2 + modifier

4- comprendre/tester le USART -> COM2
   a) utilise 2 irq (rx + tx)
   b) etudier gcctest4 et/ou gcctest7
      (transposer le code dans uart.c) (au choix)

5- Comprendre le fonctionnement de l'ADC
   a) voir design note 21 et reference
   b) voir adc.c


Structure de base (voir fichier .c dans I:""ACQUI
uart.c
SIGNAL(SIG_UART_TRANS)
{
  trouver une facon de valider que le USART est dispo
}

SIGNAL(SIG_UART_RECV)
{
  on a recu un caractère -> le mettre quelque part
}

acqui.c
main
{
  init
  for(;;)
  {
    traiter echantillon
    flasher led?
    traiter commande du pc
  }
}

includes:
c:winavravrincludeavr
E/S ou I/O atmega32 -> iom32.h

Laboratoire 2 - note

2006-02-15 00:08

Pris en note par Simon Bujold

Oscillotest.exe

"GO" -> "S" = Démarer acqui
"STOP" -> "X" = Arrêter acqui

* Note: les caractères sont minuscules!!

Format de l'échantillon
MSB          LSB
[][][][][][][][]
|----DATA----| |
               --->  # Du canal

À faire

- Canaux X ~1000 ech/sec
- Transmission  57600 Bauds
- Alarme de dépassement (sur-échantillonage)
  (À tester à 9600 bauds!)
- Compteur en mode "Acqui"
- Utiliser Timer/ Counter 0 pour cadenser l'ADC

Note sur les timers

fcpu/ (Prescaler * (maxcount - TCNT x))

fcpu = 16 000 000 Hz

Prescaler = Diviseur du Timer
Maxcount = VAL Max du timer
TCNTX = Val de départ du timer


  - fechd = Fréquence d'échantillonage désiré
  - vech = Vitesse pour 1 échantillon

Prescaler ADC

      fcpu            16 000 000 cycles/ sec     X cycles
---------------- =  ------------------------- =  --------- = 8 000
fechd x Vech              2000 ech / sec           ech


   X cycles
 ------------                     
     ech            =  Y = 615.384615384