2510_RegulationChauffage
|
Driver pour l'ADC ADS124S08 avec interface SPI. Plus de détails...
Fonctions membres publiques | |
__init__ (self) | |
Constructeur de la classe Ads124s08. | |
read_id (self) | |
Lit le registre d'identification de l'ADC. | |
close (self) | |
Ferme les interfaces SPI et GPIO proprement. | |
wait_drdy_falling_edge (self, timeout_s) | |
Attend un front descendant sur DRDY (HIGH -> LOW) avec timeout. | |
set_single_shot_lowlatency (self, dr_nibble) | |
Configure le mode single-shot low-latency de l'ADC. | |
configure_channel (self, channel_index, pga_gain, idac_uA) | |
Configure un canal ADC avec ses paramètres de mesure. | |
start (self) | |
Démarre une conversion ADC. | |
stop (self) | |
Arrête une conversion ADC en cours. | |
read_code24 (self) | |
Lit un code de données 24 bits depuis l'ADC. | |
measure_resistance (self, rref_ohm, pga_gain, timeout_s) | |
Mesure la résistance d'une sonde via l'ADC. | |
measure_temperature (self, sensor_name, rref_ohm, pga_gain, timeout_s) | |
Mesure la température d'un capteur via l'ADC. | |
read_gain (self) | |
Lit le registre de gain PGA pour diagnostic. | |
read_ref (self) | |
Lit le registre de configuration de la référence. | |
read_inpmux (self) | |
Lit le registre de configuration du multiplexeur d'entrée. |
Attributs publics | |
spi = spidev.SpiDev() | |
gpio_drdy = GPIO(GPIO_CHIP_PATH, ADC_DRDY, "in") |
Fonctions membres protégées | |
_rreg (self, addr, nbytes) | |
Lit un ou plusieurs registres de l'ADC via SPI. | |
_wreg (self, addr, data_bytes) | |
Écrit dans un ou plusieurs registres de l'ADC via SPI. | |
_sclk_nudge (self) | |
Envoie un coup de pouce sur SCLK pour synchroniser DRDY. | |
_ensure_drdy_high (self, timeout_ms) | |
Assure que le signal DRDY est à l'état HIGH. |
Driver pour l'ADC ADS124S08 avec interface SPI.
Cette classe encapsule toutes les fonctionnalités nécessaires pour communiquer avec l'ADC ADS124S08 via SPI en mode 1.0. Supporte la configuration automatique, la mesure de résistance et la conversion en température.
app.adc_ads124s08.Ads124s08.__init__ | ( | self | ) |
Constructeur de la classe Ads124s08.
Initialise la communication SPI, configure le GPIO DRDY, effectue un reset de l'ADC et vérifie la communication en lisant le registre d'identification.
Peut | lever des exceptions SPI ou GPIO en cas d'échec. |
|
protected |
Assure que le signal DRDY est à l'état HIGH.
Attend que DRDY passe à HIGH avec possibilité de coup de pouce sur SCLK si nécessaire. Timeout configurable.
timeout_ms | Timeout en millisecondes pour l'attente. |
|
protected |
Lit un ou plusieurs registres de l'ADC via SPI.
Utilise la commande RREG de l'ADS124S08 pour lire des registres consécutifs starting à l'adresse donnée.
addr | Adresse du premier registre à lire (0x00-0x1F). |
nbytes | Nombre d'octets à lire. |
|
protected |
Envoie un coup de pouce sur SCLK pour synchroniser DRDY.
Effectue une lecture factice du registre STATUS pour générer des transitions sur SCLK et forcer DRDY à l'état HIGH.
|
protected |
Écrit dans un ou plusieurs registres de l'ADC via SPI.
Utilise la commande WREG de l'ADS124S08 pour écrire des données dans des registres consécutifs.
addr | Adresse du premier registre à écrire (0x00-0x1F). |
data_bytes | Liste des octets à écrire dans les registres. |
app.adc_ads124s08.Ads124s08.close | ( | self | ) |
Ferme les interfaces SPI et GPIO proprement.
Libère les ressources système utilisées par le driver. Méthode à appeler avant la destruction de l'objet.
app.adc_ads124s08.Ads124s08.configure_channel | ( | self, | |
channel_index, | |||
pga_gain, | |||
idac_uA ) |
Configure un canal ADC avec ses paramètres de mesure.
Configure complètement un canal ADC avec le gain PGA, le courant IDAC et le routage des entrées analogiques. Effectue une configuration séquentielle de tous les registres.
channel_index | Index du canal physique (1-4). |
pga_gain | Gain de l'amplificateur programmable (1-128). |
idac_uA | Courant IDAC en microampères (10-2000). |
ValueError | si le canal ou les paramètres sont invalides. |
app.adc_ads124s08.Ads124s08.measure_resistance | ( | self, | |
rref_ohm, | |||
pga_gain, | |||
timeout_s ) |
Mesure la résistance d'une sonde via l'ADC.
Effectue une mesure complète: démarrage de conversion, attente DRDY, lecture du code et calcul de la résistance selon la formule ratiométrique.
rref_ohm | Résistance de référence en ohms. |
pga_gain | Gain PGA utilisé pour la mesure. |
timeout_s | Timeout en secondes pour la conversion. |
app.adc_ads124s08.Ads124s08.measure_temperature | ( | self, | |
sensor_name, | |||
rref_ohm, | |||
pga_gain, | |||
timeout_s ) |
Mesure la température d'un capteur via l'ADC.
Effectue une mesure de résistance puis utilise les tables de conversion de capteurs pour obtenir la température correspondante en degrés Celsius.
sensor_name | Nom du capteur (doit exister dans SENSOR_TABLES). |
rref_ohm | Résistance de référence en ohms. |
pga_gain | Gain PGA utilisé pour la mesure. |
timeout_s | Timeout en secondes pour la conversion. |
Retourne | None si capteur inconnu ou hors plage. |
app.adc_ads124s08.Ads124s08.read_code24 | ( | self | ) |
Lit un code de données 24 bits depuis l'ADC.
Utilise la commande RDATA pour lire les 3 octets de données de conversion et les convertit en entier signé.
app.adc_ads124s08.Ads124s08.read_gain | ( | self | ) |
Lit le registre de gain PGA pour diagnostic.
Effectue une lecture du registre PGA et affiche sa valeur pour vérification de la configuration du gain.
app.adc_ads124s08.Ads124s08.read_id | ( | self | ) |
Lit le registre d'identification de l'ADC.
Effectue une lecture du registre ID (0x00) pour vérifier la communication SPI et identifier le type d'ADC connecté.
app.adc_ads124s08.Ads124s08.read_inpmux | ( | self | ) |
Lit le registre de configuration du multiplexeur d'entrée.
Effectue une lecture du registre INPMUX et affiche sa valeur pour vérification du routage des entrées analogiques.
app.adc_ads124s08.Ads124s08.read_ref | ( | self | ) |
Lit le registre de configuration de la référence.
Effectue une lecture du registre REF et affiche sa valeur pour vérification de la configuration de la référence.
app.adc_ads124s08.Ads124s08.set_single_shot_lowlatency | ( | self, | |
dr_nibble ) |
Configure le mode single-shot low-latency de l'ADC.
Configure le registre DATARATE pour utiliser le mode single-shot avec filtre low-latency et data rate spécifié.
dr_nibble | Code de data rate (4 bits, 0x00-0x0F). |
app.adc_ads124s08.Ads124s08.start | ( | self | ) |
Démarre une conversion ADC.
Assure que DRDY est à HIGH puis envoie la commande START pour initier une nouvelle conversion sur le canal configuré.
app.adc_ads124s08.Ads124s08.stop | ( | self | ) |
Arrête une conversion ADC en cours.
Envoie la commande STOP pour interrompre toute conversion en cours et remettre l'ADC en état idle.
app.adc_ads124s08.Ads124s08.wait_drdy_falling_edge | ( | self, | |
timeout_s ) |
Attend un front descendant sur DRDY (HIGH -> LOW) avec timeout.
Surveille le signal DRDY pour détecter une transition de HIGH vers LOW, indiquant qu'une nouvelle conversion est disponible.
timeout_s | Timeout en secondes pour l'attente du front. |
app.adc_ads124s08.Ads124s08.gpio_drdy = GPIO(GPIO_CHIP_PATH, ADC_DRDY, "in") |
app.adc_ads124s08.Ads124s08.spi = spidev.SpiDev() |