138 lines
10 KiB
HTML
138 lines
10 KiB
HTML
<!doctype html>
|
||
<html lang="es">
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||
<title>Prueba de banco — módem 4G en batería</title>
|
||
<script src="../js/tema.js"></script>
|
||
<link rel="stylesheet" href="acta.css">
|
||
</head>
|
||
<body>
|
||
<div id="acta"></div>
|
||
<script src="flota.js"></script>
|
||
<script src="series.js"></script>
|
||
<script src="acta.js"></script>
|
||
<script>
|
||
const FILAS = ['0:15','0:30','0:45','1:00','1:30','2:00'];
|
||
const COLS = [
|
||
{ k:'main5v', txt:'MAIN5V mín', u:'V', num:true, ph:'4.7' },
|
||
{ k:'sw5v', txt:'SW_5V mín', u:'V', num:true, ph:'4.9' },
|
||
{ k:'v3m', txt:'3V3_MODEM mín', u:'V', num:true, ph:'3.3' },
|
||
{ k:'ledm', txt:'LEDs módem', opciones:['apagados','encienden y se apagan','parpadeo rápido','parpadeo lento','fijo'] },
|
||
{ k:'uart', txt:'UART simpleRTK2B', opciones:['lento ~1/s','rápido','sin parpadeo'] },
|
||
{ k:'k1', txt:'K1', opciones:['sin clic','clic (MODOB ON)','clic repetido'] },
|
||
{ k:'vbat', txt:'vbat / vbatmin', ph:'3.92 / 3.71', ancho:'110px' },
|
||
{ k:'srv', txt:'Servidor', opciones:['nada','$PHLG 🔋','posición','posición + $PHLG'] },
|
||
];
|
||
const tabla = (clave, txt, sub) => ({ tipo:'tabla', clave, txt, sub, etiquetaFilas:'t', filas:FILAS, columnas:COLS });
|
||
const dioA = v => String(v.c2_resultado || '').startsWith('Sigue igual');
|
||
const modemOn = v => String(v.c1_reposo_modem || '').startsWith('Sigue');
|
||
|
||
Acta.render({
|
||
tipo: 'prueba-bateria-modem',
|
||
repetible: true,
|
||
tecnicoDesdeUsuario: true,
|
||
nombres: { alan: 'Alán Basurto', daniel: 'Daniel Martínez', leo: 'Leo Rodríguez' },
|
||
unidades: window.SERIES,
|
||
etiquetaSerie: 'Unidad bajo prueba',
|
||
titulo: 'Acta: módem 4G en batería',
|
||
subtitulo: 'Corridas de diagnóstico 0–4 (fw 0.5.3–0.5.7). Procedimiento: Taller → Módem 4G en batería §4.',
|
||
textoOK: 'PRUEBA COMPLETA',
|
||
intro: 'Separa dos causas de que el módem no transmita en batería: <b>A</b> riel del boost hundido por la ráfaga LTE, o <b>B</b> camino por K1 (Modo B). '
|
||
+ 'Multímetro obligatorio: en batería <code>v5</code> mide el 5 V del vehículo, no el riel. '
|
||
+ 'Puntos: <b>MAIN5V</b> = U6 pin 1 / C32 / P11 pin 1 · <b>SW_5V</b> = MOD1 pin 5 / C3 · <b>3V3_MODEM</b> (alimenta el módem) = J7 pin 1 / J8 pin 7 · negro a GND. '
|
||
+ 'Consola HBOX a 115200 grabando a archivo; teclas <code>s</code> STAT · <code>v</code> puntos · <code>B</code> Modo B.',
|
||
secciones: [
|
||
|
||
{ titulo: '0 · Configuración',
|
||
items: [
|
||
{ tipo:'fecha', clave:'fecha', req:true, guardaEn:'fecha', txt:'Fecha' },
|
||
{ tipo:'radio', clave:'tarjeta', req:true, guardaEn:'clasificacion', txt:'Tarjeta', opciones:['V5','V4','V3'] },
|
||
{ tipo:'texto', clave:'fw', rows:'1', req:true, txt:'Firmware (línea BOOT o banner)', ph:'hbox-v5-bringup 0.5.5 built …' },
|
||
{ tipo:'texto', clave:'bateria', rows:'1', req:true, txt:'Batería en vacío y temperatura ambiente', ph:'4.02 V · 27 °C' },
|
||
{ tipo:'radio', clave:'cielo', req:true, txt:'Antena GNSS', opciones:['Cielo abierto','Ventana','Interior (sin fix)'] },
|
||
{ tipo:'check', clave:'usb', req:true, txt:'Ningún USB en el simpleRTK2B ni en el módem; solo el de consola.' },
|
||
{ tipo:'check', clave:'monitor', req:true, txt:'Monitor abierto con la unidad.' },
|
||
] },
|
||
|
||
{ titulo: 'Corrida 0 · Referencia con 24 V',
|
||
sub:'Todo con 24 V. Si no sale limpio, detente: el problema no es la batería.',
|
||
items: [
|
||
{ tipo:'medida', clave:'c0_main5v', req:true, txt:'MAIN5V', esperado:'5.2 – 5.4 V', u:'V' },
|
||
{ tipo:'medida', clave:'c0_sw5v', req:true, txt:'SW_5V', esperado:'≈ 5.0 V', u:'V' },
|
||
{ tipo:'medida', clave:'c0_v3m', req:true, txt:'3V3_MODEM (zócalo XBee pin 1)', esperado:'3.25 – 3.35 V', u:'V' },
|
||
{ tipo:'texto', clave:'c0_ledm', rows:'1', req:true, txt:'LEDs del módem (cuál, color, ritmo)', ph:'NET verde parpadeo lento; PWR rojo fijo' },
|
||
{ tipo:'radio', clave:'c0_uart', req:true, txt:'LEDs UART del simpleRTK2B', opciones:['rápido (correcciones + NMEA)','lento ~1/s','sin parpadeo'] },
|
||
{ tipo:'check', clave:'c0_k1', req:true, txt:'Clic de K1 a los ~13 s y consola <code>MODOB ON</code>.' },
|
||
{ tipo:'check', clave:'c0_srv', req:true, txt:'El monitor muestra la unidad con Salud (<code>$PHLG</code>) y ⚡.' },
|
||
{ tipo:'texto', clave:'c0_stat', rows:'2', txt:'Línea STAT (tecla s)', ph:'STAT stack=ON …' },
|
||
] },
|
||
|
||
{ titulo: 'Corrida 1 · Batería con Modo B (la falla)',
|
||
sub:'Quita 24 V y arranca el cronómetro. La que importa es el despertar #1 a los ~10 min.',
|
||
items: [
|
||
{ tipo:'texto', clave:'c1_perdida', rows:'2', req:true, txt:'Al quitar 24 V: clic y módem en 30 s', ph:'clic de K1 inmediato; el módem se apagó y reencendió / siguió igual' },
|
||
{ tipo:'medida', clave:'c1_reposo_sw5v', req:true, txt:'En reposo (tras DUTY reposo): SW_5V', esperado:'0 V', u:'V' },
|
||
{ tipo:'medida', clave:'c1_reposo_v3m', req:true, txt:'En reposo: 3V3_MODEM', esperado:'0 V con 0.5.5 (con 0.5.4 y anteriores queda ≈2 V: es la falla)', u:'V' },
|
||
{ tipo:'medida', clave:'c1_reposo_v3rtk', req:true, txt:'En reposo: 3V3 del simpleRTK2B (pin 3V3 del header UNO)', esperado:'0 V con 0.5.5', u:'V',
|
||
aviso:'Si queda > 0.5 V, el MCU sigue alimentando al simpleRTK2B por el UART (PA2). Con 0.5.5 no debe pasar; si pasa, anotar la versión exacta del firmware.' },
|
||
{ tipo:'medida', clave:'c1_reposo_din', txt:'En reposo: DIN_4G (zócalo XBee pin 3)', esperado:'0 V', u:'V' },
|
||
{ tipo:'radio', clave:'c1_reposo_modem', req:true, txt:'En reposo: el módem…', opciones:['Se apagó (LEDs apagados)','Sigue encendido'],
|
||
aviso:'Si sigue encendido con SW_5V = 0 V, algo lo alimenta por otro lado. Anótalo y avisa antes de seguir.' },
|
||
{ tipo:'texto', clave:'c1_reposo_nota', si:modemOn, rows:'2', req:true, txt:'Qué está conectado al módem o al simpleRTK2B' },
|
||
{ tipo:'texto', clave:'c1_wake', rows:'1', req:true, txt:'Hora del cronómetro en <code>DUTY despertar #1</code>', ph:'10:02' },
|
||
tabla('c1', 'Registro del despertar #1 (los 2 minutos de ventana)', 'Anota el valor <b>más bajo</b> que alcances a leer en cada intervalo. Tecla <code>s</code> a los 0:30 y 1:30 para vbat/vbatmin.'),
|
||
{ tipo:'texto', clave:'c1_fin', rows:'2', req:true, txt:'Cómo terminó la ventana (línea DUTY reposo y qué decía el monitor)', ph:'DUTY reposo: ventana 120s fix=RTK_FIX phlg_aire=4 … monitor: nada' },
|
||
{ tipo:'archivo', clave:'c1_log', etiqueta:'bateria-c1', txt:'Captura de consola de la corrida 1 (opcional aquí; la completa va al final)' },
|
||
] },
|
||
|
||
{ titulo: 'Corrida 2 · Batería SIN Modo B',
|
||
sub:'En reposo, tecla B → «MODO B BLOQUEADO por operador». Registra el despertar #2 igual.',
|
||
items: [
|
||
{ tipo:'check', clave:'c2_b', req:true, txt:'La consola confirmó <code>MODO B BLOQUEADO por operador</code> antes del despertar.' },
|
||
{ tipo:'texto', clave:'c2_wake', rows:'1', req:true, txt:'Hora del cronómetro en <code>DUTY despertar #2</code>' },
|
||
tabla('c2', 'Registro del despertar #2 (Modo B bloqueado)'),
|
||
{ tipo:'radio', clave:'c2_resultado', req:true, txt:'Resultado de la corrida 2',
|
||
opciones:['El módem registró y el simpleRTK2B parpadea rápido → hipótesis B (camino por K1)',
|
||
'Sigue igual que la corrida 1 → hipótesis A (riel) → hacer corrida 3'] },
|
||
{ tipo:'check', clave:'c2_b_restore', txt:'Tecleé <code>B</code> otra vez para dejar Modo B permitido.' },
|
||
] },
|
||
|
||
{ titulo: 'Corrida 3 · Solo si la 2 dio A: fuente de banco en lugar de la batería',
|
||
si: dioA,
|
||
sub:'Con 24 V y etapa apagada, cambia la batería por fuente a 3.9 V, límite 3 A (mide polaridad). Repite la corrida 1.',
|
||
items: [
|
||
{ tipo:'medida', clave:'c3_vfuente', req:true, txt:'Fuente ajustada a', esperado:'3.90 V · límite 3 A', u:'V' },
|
||
{ tipo:'texto', clave:'c3_wake', rows:'1', req:true, txt:'Hora del cronómetro en el despertar' },
|
||
tabla('c3', 'Registro del despertar con fuente de banco'),
|
||
{ tipo:'radio', clave:'c3_resultado', req:true, txt:'Resultado de la corrida 3',
|
||
opciones:['Funciona con la fuente → es el paquete (resistencia interna)',
|
||
'Falla igual → es la etapa de boost (LTC4040 / MAIN5V) — hardware, no tocar nada'] },
|
||
{ tipo:'texto', clave:'c3_tbat', rows:'1', txt:'tbat que reportaba STAT con la batería puesta', ph:'38.5 °C' },
|
||
{ tipo:'check', clave:'c3_restore', req:true, txt:'Batería reconectada y fuente de banco retirada al terminar.' },
|
||
] },
|
||
|
||
{ titulo: 'Corrida 4 · Regreso de los 24 V (sin reset)',
|
||
sub:'En batería con el módem oscuro, vuelve a poner 24 V sin tocar reset (como al arrancar el vehículo).',
|
||
items: [
|
||
{ tipo:'radio', clave:'c4_modem', req:true, txt:'Al volver el 24 V, el módem…', opciones:['Arranca solo (LEDs, registra)','Sigue oscuro','Arranca pero no registra'] },
|
||
{ tipo:'medida', clave:'c4_v3m', req:true, txt:'3V3_MODEM con el módem oscuro y 24 V puesto', u:'V',
|
||
aviso:'Si marca ~3.3 V y el módem sigue oscuro, el módem está <b>alimentado pero sin power-on reset</b> (con 0.5.4 y anteriores: el UART del GNSS sostenía su riel). Con 0.5.5 la tarjeta suelta el UART y cicla la etapa 10 s al volver el 5 V.' },
|
||
{ tipo:'texto', clave:'c4_recupera', rows:'2', req:true, txt:'Qué lo revivió', ph:'Solo el reset de la tarjeta' },
|
||
{ tipo:'texto', clave:'c4_consola', rows:'2', txt:'Líneas de consola al volver el 5 V', ph:'V5 PRESENTE … DUTY fin … PWR_RETURN_CYCLE … STACK ON reason=recovery' },
|
||
] },
|
||
|
||
{ titulo: 'Cierre',
|
||
items: [
|
||
{ tipo:'archivo', clave:'log', req:true, etiqueta:'bateria-consola', txt:'Log completo de consola' },
|
||
{ tipo:'foto', clave:'f_banco', etiqueta:'banco', txt:'Banco con los multímetros conectados.' },
|
||
{ tipo:'radio', clave:'accion', req:true, guardaEn:'accion', txt:'Conclusión',
|
||
opciones:['A — riel: el paquete','A — riel: etapa de boost','B — camino por K1 (firmware)','No concluyente (explica)'] },
|
||
{ tipo:'texto', clave:'observaciones', rows:'4', txt:'Observaciones' },
|
||
] },
|
||
]
|
||
});
|
||
</script>
|
||
</body>
|
||
</html>
|