Diseñé un PCB de sensor pequeño para mi tesis de maestría con un microcontrolador ATtiny44 . Necesito alrededor de 200 de estas tarjetas para mi aplicación y 16 siempre están conectadas localmente a la tarjeta del controlador. Toda la red se ve así:
Paracomunicarmeentreelcontroladorylasplacasdesensores,escribímipropiobusde1pin(basadoentemporización).Elúnicoproblemaesquelaplacadelsensordebetenerunadirecciónparasabersuubicaciónenlared,cuandoenvíosusdatosalaplacadelcontrolador.
Comosolomequedaba1pinenelATtiny,semeocurrióuncircuitoDACbasadoenpuentequedeberíagenerarunatensiónanalógicabasadaenlaconfiguracióndecuatropuentes.Comoelcircuitodelsensorusalosvalores(47,470,1k,3k,4k7,10k,100ky220k)yqueríaoptimizarparalaproducción,utilicélosvaloressiguientesparaelDAC(básicamente100k,50k,20ky10k).).Loquedeberíadarmeunbuenvalorentre0Vy760mVsegúnlaconfiguracióndelpuente.Exactamenteloquenecesitabaleercomounatensiónanalógicaconlareferenciainternade1.1VdelaATtiny.Enelarranque,elATtinyleeestevoltajeydebeconocersuposición.
simular este circuito : esquema creado usando CircuitLab
En teoría, esto funciona bien. Incluso hice un análisis de Monte Carlo en LTspice para confirmar que no tengo áreas superpuestas, al considerar la tolerancia de las resistencias (todas son 1% BTW). A continuación puede encontrar las imágenes de este análisis.
Ahoraprodujevarios(afortunadamenteno200)deestostablerosy,sinembargo,algunosnolograronobtenerlecturascorrectasensudirección(especialmenteenlasregionesdedireccionessuperioresdondetodaslastoleranciasvienenajugaralmismotiempo).Medítodaslassolucionesposiblesyfinalmenteresolvímiproblema.Mianálisisoriginalnoincluíalatoleranciadelatensióndealimentaciónde5V,quesegeneralocalmenteapartirde12Vconun
Después de que descubrí esto, modifiqué el análisis de Monte Carlo. Ahora se ve así:
Como puede ver, hay áreas superpuestas agradables, donde no puedo decir definitivamente que este voltaje solo puede significar esta dirección. Básicamente todas las direcciones que comienzan con no. 8 puede obtener una lectura falsa (con mayores posibilidades de lecturas falsas para direcciones más altas).
no quisiera agregar valores de resistencia diferentes a los que ya se usaron en la pizarra (en cuanto a la tesis que quiero optimizar para la producción).
no desea agregar una referencia de voltaje (por ejemplo, diodo Zener) para alimentar la red de resistencias DAC.
No puedo modificar la placa del controlador (y usar un regulador de voltaje más preciso).
¡ puedo seguir modificando el diseño / esquema de PCB de la placa del sensor!
¿Cómo puedo asegurarme de obtener siempre lecturas correctas en la dirección (ya sea por programa o cambiando el circuito)?