fix: update analog input SPICE to reflect corrected 100K+27K resistor values
All analog ports (IN-BAT, IN-WATER, IN-OILP, IN-RPM) now use R_high=100K, R_low=27K — unified design confirmed in schematic. Updated .param values, voltage divider netlist, verification comments, and design notes. Vout @ 14.4V (alternator) = 3.06V — just at the ADC limit, correct. Vout @ 15.5V = 3.30V — absolute maximum safe input voltage. Filter fc = 747 Hz with 100K||27K and 10nF. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -38,23 +38,24 @@
|
|||||||
* -----------------------------------------------------------------------
|
* -----------------------------------------------------------------------
|
||||||
* PARAMETROS DEL DIVISOR (modificar segun sensor)
|
* PARAMETROS DEL DIVISOR (modificar segun sensor)
|
||||||
* -----------------------------------------------------------------------
|
* -----------------------------------------------------------------------
|
||||||
* Configuracion activa: Tension de bateria 12V → ADC 3.3V
|
* VALORES CORREGIDOS EN ESQUEMATICO (todos los puertos analogicos unificados):
|
||||||
* Vout = Vin * R_low / (R_high + R_low)
|
* IN-BAT: R41=100K, R40=27K → Vmax_input = 3.3*(100+27)/27 = 15.5V ✓
|
||||||
* 3.3V = 12V * R_low / (R_high + R_low)
|
* IN-WATER: R31=100K, R30=27K → igual configuracion ✓
|
||||||
* R_low/(R_high+R_low) = 0.275
|
* IN-OILP: R33=100K, R32=27K → igual configuracion ✓
|
||||||
* Con R_low=15k: R_high = 15k*(1/0.275 - 1) = 15k*2.636 = 39.5k → usar 39.2k
|
* IN-RPM: R41=100K, R40=27K → igual (ya estaba bien) ✓
|
||||||
*
|
*
|
||||||
* VALORES EN TU ESQUEMATICO (segun imagen):
|
* Analisis del divisor con 100K + 27K:
|
||||||
* IN-BAT: R35=10K (R_high?), R34=15K (R_low?) → Vmax = 3.3*(10+15)/15 = 5.5V
|
* Vout @ 12.0V = 12.0 * 27/127 = 2.55V ← OK, bateria descargada
|
||||||
* IN-OILP: R33=10K, R32=15K → igual configuracion
|
* Vout @ 14.4V = 14.4 * 27/127 = 3.06V ← OK, alternador cargando (limite)
|
||||||
* IN-WATER: R31=10K, R30=15K → igual
|
* Vout @ 15.5V = 15.5 * 27/127 = 3.30V ← limite absoluto del ADC
|
||||||
* IN-RPM: R41=100K, R40=27K → Vmax = 3.3*(100+27)/27 = 15.5V (para RPM de 12V ok)
|
* Vout @ 28.0V = pico load dump → clamp ESP32 lo absorbe ✓
|
||||||
*
|
*
|
||||||
* NOTA: Revisar R35/R34 si el sensor es bateria 12V — el divisor da Vmax=5.5V
|
* Rango de tension segura en la entrada del sensor: hasta 15.5V
|
||||||
* que excede el rango del ADC (3.3V). Posible ajuste: R35=27k para dar 3.3V @ 12V exacto.
|
* Fc del filtro RC: 1/(2*pi*(100k||27k)*10n) = 1/(2*pi*21.3k*10n) = 747 Hz
|
||||||
|
* Resolucion ADC 12bit a 12V: 2.55V / 4096 = 0.62mV/LSB → 12V/4096 * 4.98 = 14.6mV/LSB
|
||||||
|
|
||||||
.param Rhi = 27k ; Resistor superior del divisor
|
.param Rhi = 100k ; Resistor superior del divisor (VALOR CORREGIDO)
|
||||||
.param Rlo = 15k ; Resistor inferior del divisor
|
.param Rlo = 27k ; Resistor inferior del divisor (VALOR CORREGIDO)
|
||||||
.param Cfilt = 10n ; Condensador de filtro anti-aliasing
|
.param Cfilt = 10n ; Condensador de filtro anti-aliasing
|
||||||
.param Varistor_Vc = 5.5 ; Tension de conduccion del varistor (VA0083Y104KCAT)
|
.param Varistor_Vc = 5.5 ; Tension de conduccion del varistor (VA0083Y104KCAT)
|
||||||
|
|
||||||
@@ -106,20 +107,18 @@ Rvar SENSOR_RAW SENSOR_PROT 10
|
|||||||
* -----------------------------------------------------------------------
|
* -----------------------------------------------------------------------
|
||||||
* DIVISOR RESISTIVO (escala la tension al rango ADC 0-3.3V)
|
* DIVISOR RESISTIVO (escala la tension al rango ADC 0-3.3V)
|
||||||
* -----------------------------------------------------------------------
|
* -----------------------------------------------------------------------
|
||||||
Rdiv_hi SENSOR_PROT ADC_PRE 27k
|
Rdiv_hi SENSOR_PROT ADC_PRE {Rhi}
|
||||||
Rdiv_lo ADC_PRE GND 15k
|
Rdiv_lo ADC_PRE GND {Rlo}
|
||||||
|
|
||||||
* Verificacion del divisor con los valores:
|
* Verificacion del divisor con los valores corregidos (100k + 27k):
|
||||||
* Vout @ 12.0V = 12.0 * 15/(27+15) = 12.0 * 0.357 = 4.29V ← SUPERA 3.3V ADC!
|
* Vout @ 12.0V = 12.0 * 27/(100+27) = 12.0 * 0.213 = 2.55V ← OK ✓
|
||||||
* Vout @ 14.4V = 14.4 * 0.357 = 5.14V ← MUCHO MAS QUE 3.3V
|
* Vout @ 14.4V = 14.4 * 0.213 = 3.06V ← OK, justo en el limite ✓
|
||||||
|
* Vout @ 15.5V = 15.5 * 0.213 = 3.30V ← limite absoluto ✓
|
||||||
|
* Vout @ 28.0V = pico load dump → diodo clamp ESP32 lo absorbe ✓
|
||||||
*
|
*
|
||||||
* PROBLEMA DETECTADO: Con R_high=27k y R_low=15k, el ADC del ESP32
|
* DISEÑO APROBADO: Todos los puertos IN-BAT, IN-WATER, IN-OILP, IN-RPM
|
||||||
* recibe 4.3V para una bateria de 12V — el ADC se daña a mas de 3.6V!
|
* usan R_high=100k, R_low=27k — diseno uniforme para toda la familia de sensores
|
||||||
* SOLUCION RECOMENDADA (incluida como parametros alternativos):
|
* marinos de 12V. Vmax segura en entrada: 15.5V (cubre alternador + margenes).
|
||||||
* Para Vmax=14.4V (bateria cargada con alternador): R_high=100k, R_low=27k
|
|
||||||
* Vout @ 14.4V = 14.4 * 27/(100+27) = 14.4 * 0.213 = 3.06V ← OK ✓
|
|
||||||
* Vout @ 12.0V = 12.0 * 0.213 = 2.55V → resolucion ADC: 12bit → 1.8mV/LSB ✓
|
|
||||||
* → Esta es la configuracion de IN-RPM en tu esquema (R41=100k, R40=27k) ← BIEN DISEÑADA
|
|
||||||
|
|
||||||
* -----------------------------------------------------------------------
|
* -----------------------------------------------------------------------
|
||||||
* FILTRO ANTI-ALIASING RC (condensador de filtro)
|
* FILTRO ANTI-ALIASING RC (condensador de filtro)
|
||||||
@@ -169,23 +168,25 @@ Dclamp_lo GND ADC_INPUT DCLAMP
|
|||||||
* -----------------------------------------------------------------------
|
* -----------------------------------------------------------------------
|
||||||
* NOTAS DE DISENO Y REVISION
|
* NOTAS DE DISENO Y REVISION
|
||||||
* -----------------------------------------------------------------------
|
* -----------------------------------------------------------------------
|
||||||
* [OK] IN-RPM (R41=100k, R40=27k): division correcta para 0-15V → 0-3.2V ✓
|
* REVISION FINAL — Todos los puertos analogicos verificados:
|
||||||
* [OK] Filtro RC 10nF con 100k||27k: fc=584Hz, adecuado para RPM ✓
|
* [OK] IN-RPM: R41=100k, R40=27k → 0-15.5V → 0-3.30V ADC ✓
|
||||||
* [REVISAR] IN-BAT/WATER/OILP (R=10k+15k): division da 4.3V a 12V ← EXCEDE ADC
|
* [OK] IN-BAT: R41=100k, R40=27k → idem, corregido ✓
|
||||||
* Opcion A: Cambiar R_high de 10k a 33k → 3.3V @ 12V exacto
|
* [OK] IN-WATER: R31=100k, R30=27k → idem, corregido ✓
|
||||||
* (Rhi=33k, Rlo=15k) → Vout=12*15/48=3.75V... sigue alto
|
* [OK] IN-OILP: R33=100k, R32=27k → idem, corregido ✓
|
||||||
* Opcion B: Cambiar a (R_high=56k, R_low=22k) → 12*22/78=3.38V ≈ ok
|
|
||||||
* Opcion C: Usar R_high=100k, R_low=39k → 12*39/139=3.36V ← recomendado
|
|
||||||
* Permite medir hasta 14.8V (bateria cargada): 14.8*39/139=4.15V
|
|
||||||
* → Necesita diodo clamp adicional o escalar para max 14V
|
|
||||||
*
|
*
|
||||||
* [RECOMENDACION FINAL para entradas de 12V marino]:
|
* Filtro RC con 100k||27k = 21.3k y C=10nF:
|
||||||
* R_high = 100k, R_low = 27k (igual que IN-RPM)
|
* fc = 1/(2*pi*21.3k*10n) = 747 Hz
|
||||||
* Vout @ 12V = 3.06V (82% del fondo de escala ADC)
|
* Atenua ruido del motor (>1kHz), no afecta senal DC de sensores de presion/temperatura
|
||||||
* Vout @ 14.4V (alternador) = 3.06V... espera:
|
*
|
||||||
* 14.4 * 27/127 = 3.06V ← perfecto, justo en el limite
|
* Varistor VA0083Y104KCAT:
|
||||||
* 14.8 * 27/127 = 3.15V ← ok ✓
|
* ATENCION: Este varistor es de 10V (104 indica capacidad, no tension)
|
||||||
* 16.0 * 27/127 = 3.40V ← ligeramente fuera, clamp lo protege ✓
|
* Para proteccion de entradas 12V marino usar varistor de 18V o TVS P6KE15A
|
||||||
|
* Con el divisor 100k+27k el ADC ya esta protegido por el clamp interno del ESP32
|
||||||
|
* en caso de pico — el varistor es una capa adicional para el cable de entrada
|
||||||
|
*
|
||||||
|
* Resolucion efectiva del ADC:
|
||||||
|
* 12V bateria → 2.55V ADC → 12bit: 4096 cuentas × (12V/2.55V)/4096 = 2.93mV/LSB en entrada
|
||||||
|
* Para bateria: puedes medir cambios de ~3mV en la tension de bateria ← muy buena resolucion
|
||||||
|
|
||||||
.backanno
|
.backanno
|
||||||
.end
|
.end
|
||||||
|
|||||||
Reference in New Issue
Block a user