ESP32 - Entrées Analogiques - ADC SAR - analogReadMilliVolts - Atténuation et Résolution
ฝัง
- เผยแพร่เมื่อ 16 ส.ค. 2024
- Principe de la conversion Analogique-Numérique
- Quantification
- Erreur / Quantum
- Approximations Successives SAR
Les ADC de l’ESP32
- Constitution et câblage
- Programmation
- Précision de analogRead() et analogReadMilliVolts()
- Temps de conversion
- Affichage terminal série Serial.printf()
- Fréquence d'échantillonnage / Critère de Shannon
00:00 Principe et erreur de quantification
03:07 SAR par Approximation Successive
10:02 ADC de l’ESP32 - Constitution et câblage
17:04 ADC de l’ESP32 - Programmation
25:00 ADC de l’ESP32 - Précision de analogRead() et analogReadMilliVolts()
29:48 ADC de l’ESP32 - Temps de conversion et Affichage Serial.printf()
37:43 Fréquence d'échantillonnage / Critère de Shannon
et mon autre commentaire 🙂 : l'histoire de la limite aux 9 écritures est effectivement directement lié au buffer d'envoi de l'UART qui doit saturer. Les 25us des premiers tours sont bien inférieurs au temps nécessaire pour envoyer une chaîne "Bonjour" (en gros 10*10/115200, donc un peu moins de 1 ms par chaîne à la louche). Du coup quand on a fait les 9 boucles, l'UART a bien noté qu'il a 9 chaînes à envoyer, mais n'a pour le moment envoyé en gros qu'un quart de la première. Pour vider tous les buffers, il lui faudra donc une attente ~ de 8 ms, pas très éloignée des 10000 us que tu mentionnes. Si la fonction printf de l'UART était mieux écrite, elle ne tenterait pas de vider tous les buffers quand il y a saturation, mais juste 1, et tu enverrais toutes les ms environ, comme tu le proposes ensuite.
Super vidéo cher collègue, bravo pour tout ce travail ! Un point qui pourrait être ajouté et qu'il me semble important de savoir : une ADC est longue (par rapport à l'exécution d'une instruction), et il faut attendre avant de lire le résultat converti (et pas besoin par contre pour les DAC, moins longues). Ici c'est caché dans la fonction read, mais en pratique on doit parfois gérer la chose, par ex. avec les fonctions CMSIS fournies par ARM.
ظحزححححححزحزظظظححزحزحزحححززحظحزحظظظزحزحزحزححححزحزحزححزززححزححزححزحززححزححزححزحزحزحزحزحح
حزحزظحزظححححزحححزححزحزحزححزححززحزححزححححزحزححححزظحححزحززححزحزححححزحزححزحححزحححححزح