Master SIAME | Université Toulouse 3

Internet of things and System on Chip

Master SIAME | Université Toulouse 3

Internet of things and System on Chip

User Tools


Differences

This shows you the differences between two versions of the page.

Link to this comparison view

embedded:logiciel:adc [2015/08/26 20:37] (current)
Line 1: Line 1:
 +====== ADC ======
 +
 +Comme vous pourrez le voir, l'ADC du TI AM335x est très de l'ADC d'​ATMEL vu en cours. Déjà au niveau matériel, il n'​accepte qu'un courant de 1,8V ce qui n'a pas rendu les choses simples pour brancher le sonar dessus (sortie de 3,3 à 5V). Notre solution actuelle basée sur un diviseur de tension n'est pas très satisfaisante et produit un courant beaucoup plus affaibli qu'​attendu (en raison de problème d'​impédance entre notre diviseur et le BagleBone). Le signal est très déformé dans les basses tension.
 +
 +Quoi qu'il en soit, l'​idée est que les différents canaux de l'ADC sont programmés et quand l'ADC est lancé, il échantillonne chacun des canaux. Les registres d'​échantillonnage ont également une largeur de 10-bits. Par contre, l'ADC de l'​AM-335x permet une programmation beaucoup plus fine de l'​échantillonnage qui ne devrait pas nous être utile ici. Entre autre, l'​action d'​échantillonnage est divisée en ''​step''​ programmable configurable séparément. Chaque ''​step''​ va stocker le résultat de l'​échantillonage dans la FIFO0.
 +
 +Voici la liste des registres intéressants de l'ADC :
 +  * ''​ADC_CTRL''​ - contrôle de l'ADC (dont le bit ''​ENABLE''​ pour démarre un échantillonage),​
 +  * ''​ADC_STEPENABLE''​ -- activation des ''​steps''​ à réaliser,
 +  * ''​ADC_FIFO0COUNT''​ -- nombre d'​échantillons dans la FIFO0,
 +  * ''​ADC_FIFO0DATA''​ -- adresse de base donnant les échantillons de la FIFO0.
 +  * ''​ADC_STEPCONFIG''//​i//​ -- configuration ''​step''​ //i// (source d'​échantillonage),​
 +  * ''​ADC_STEPDELAY''//​i//​ -- période ''​step''​ //i//.
 +
 +Attention ! Pour pouvoir changer les registres de ''​step'',​ il faut d'​abord mettre à 1 le bit 
 +''​STEPCONFIG_WRITE_PROTECT_N_ACTIVE''​ du registre ''​ADC_CTRL''​.
 +
 +Il est bien sûr conseillé, pour des raisons de rapidité, de programmer directement les registres matériels en mémoire. L'​adresse de base est 0x44E0D000 et la taille du bloc de registres est 8Ko.
 +
 +En ce qui concerne les entrées de l'ADC, nous avons:
 +  *AIN0 -- sonar,
 +  *AIN1 -- batterie (en projet).
 +
 +Nous ne l'​avons pas testé mais il doit être possible de programmer un sur-échantillonage pour ensuite faire une moyenne et atténuer les erreurs de mesure: par exemple, on peut lancer un échantillonage chaque ms pendant 10 ms. On obtient alors 10 échantillons dont on peut faire la moyenne (par exemple).
 +