Outils pour utilisateurs

Outils du site


tdethindus1

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
tdethindus1 [2019/02/13 12:07]
bvandepo
tdethindus1 [2019/02/20 15:31] (Version actuelle)
bvandepo
Ligne 92: Ligne 92:
  
 {{http://​homepages.laas.fr/​bvandepo/​files/​iut/​tp_tns/​TODO.jpg}} Compléter le sketch Arduino suivant dans lequel la librairie Tlv5637 est incluse. Implémentez la fonction setup pour activer le composant DAC et le faire fonctionner en mode rapide. Dans la fonction loop, faire en sorte de générer des échantillons de la fonction sinus sur la voie A et cosinus sur la voie B en générant 100 échantillons pour les 2 $pi$ radians. Visualiser à l'​oscilloscope les signaux générés. {{http://​homepages.laas.fr/​bvandepo/​files/​iut/​tp_tns/​TODO.jpg}} Compléter le sketch Arduino suivant dans lequel la librairie Tlv5637 est incluse. Implémentez la fonction setup pour activer le composant DAC et le faire fonctionner en mode rapide. Dans la fonction loop, faire en sorte de générer des échantillons de la fonction sinus sur la voie A et cosinus sur la voie B en générant 100 échantillons pour les 2 $pi$ radians. Visualiser à l'​oscilloscope les signaux générés.
- 
- 
-<color #​FF0000>​**Il est demandé d'​utiliser le mode SPI 2 même si l'​analyse de la documentation du composant nous dit que les modes 1 et 2 conviennent,​ sinon la commande simultanée des 2 voies du DAC ne fonctionne pas!**</​color>​ 
  
  
Ligne 141: Ligne 138:
  
 Vous allez maintenant devoir coder vous même les fonctions (sans approche objet) permettant de piloter le DAC. Vous utiliserez les fonctions présentées sur la documentation locale d'​Arduino:​ [[file:///​usr/​share/​arduino/​reference/​SPI.html]] (copier le lien dans le navigateur) Vous allez maintenant devoir coder vous même les fonctions (sans approche objet) permettant de piloter le DAC. Vous utiliserez les fonctions présentées sur la documentation locale d'​Arduino:​ [[file:///​usr/​share/​arduino/​reference/​SPI.html]] (copier le lien dans le navigateur)
 +
 +<color #​FF0000>​**Il est demandé d'​utiliser le mode SPI 2 même si l'​analyse de la documentation du composant nous dit que les modes 1 et 2 conviennent,​ sinon la commande simultanée des 2 voies du DAC ne fonctionne pas!**</​color>​
 +
 +
 +
  
 La documentation de la dernière version des librairies est consultable sur: http://​arduino.cc/​en/​Reference/​SPI La documentation de la dernière version des librairies est consultable sur: http://​arduino.cc/​en/​Reference/​SPI
Ligne 490: Ligne 492:
 {{http://​homepages.laas.fr/​bvandepo/​files/​iut/​tp_tns/​TODO.jpg}} Décrire et implémenter les fonctions suivantes:  ​ {{http://​homepages.laas.fr/​bvandepo/​files/​iut/​tp_tns/​TODO.jpg}} Décrire et implémenter les fonctions suivantes:  ​
  
-**char * readEEPROM(unsigned int addr, unsigned char * buffer, unsigned char size):**+**void readEEPROM(unsigned int addr, unsigned char * buffer, unsigned char nb_bytes):**
   addr : l'​adresse de la première case à écrire sur l'​EEPROM   addr : l'​adresse de la première case à écrire sur l'​EEPROM
   buffer : le pointeur sur une zone mémoire pour le résultat de la lecture   buffer : le pointeur sur une zone mémoire pour le résultat de la lecture
-  ​size : la taille de la zone à lire+  ​nb_bytes ​: la taille de la zone à lire
  
-**void writeEEPROM(unsigned int addr, unsigned char * buffer, unsigned char size)**+**void writeEEPROM(unsigned int addr, unsigned char * buffer, unsigned char nb_bytes)**
   addr : l'​adresse de la première case à lire sur l'​EEPROM   addr : l'​adresse de la première case à lire sur l'​EEPROM
   buffer : le pointeur sur une zone mémoire contenant les valeurs à écrire   buffer : le pointeur sur une zone mémoire contenant les valeurs à écrire
-  ​size : la taille de la zone à écrire+  ​nb_bytes ​: la taille de la zone à écrire
   ​   ​
    
Ligne 506: Ligne 508:
  
 <ifauth @prof> <ifauth @prof>
-TODO: mettre la solution+TODO: Solution à compléter 
 + 
 +<file cpp eepromspi.ino>​ 
 + 
 +#include <​SPI.h>​ 
 + 
 +#define CS 7 
 + 
 +void enableWR() 
 +
 +  digitalWrite(CS,​LOW);​ 
 +  SPI.transfer(0x6);​ 
 +  digitalWrite(CS,​HIGH);​ 
 +
 + 
 +char EEPROMReady() 
 +
 +  digitalWrite(CS,​LOW);​ 
 +  SPI.transfer(5);​ 
 +  unsigned char val = SPI.transfer(0);​ 
 +  digitalWrite(CS,​HIGH);​ 
 +  return (val&​1);​ 
 +
 + 
 +void readEEPROM(unsigned int addr, unsigned char * donnee, unsigned char nb) // 17 > nb > 0 
 +
 +  digitalWrite(CS,​LOW);​ 
 +  SPI.transfer(0x03|(((addr>>​8)&​0x01)<<​3));​ 
 +  SPI.transfer(addr&​0xFF);​ 
 +  for(char i = 0;​i<​nb;​i++) 
 +  { 
 +    donnee[i] = SPI.transfer(0);​  
 +  } 
 +  digitalWrite(CS,​HIGH);​ 
 +
 + 
 +void writeEEPROM(unsigned int addr, unsigned char * donnee, unsigned char nb) 
 +
 +  enableWR();​ 
 +  digitalWrite(CS,​LOW);​ 
 +  SPI.transfer(0x02|(((addr>>​8)&​0x01)<<​3));​ 
 +  SPI.transfer(addr&​0xFF);​ 
 +  for(char i = 0;​i<​nb;​i++) 
 +  { 
 +    SPI.transfer(donnee[i]);​ 
 +  } 
 +  digitalWrite(CS,​HIGH);​ 
 +
 +void setup() { 
 +  // put your setup code here, to run once: 
 + 
 +
 + 
 +void loop() { 
 +  // put your main code here, to run repeatedly:​ 
 + 
 +
 + 
 +</​file>​
 </​ifauth>​ </​ifauth>​
  
tdethindus1.1550056043.txt.gz · Dernière modification: 2019/02/13 12:07 par bvandepo