Hace un tiempo tuve un proyecto que involucraba Dispositivos analógicos microconvertidor ADuC812 .
Entre el variado hardware de a bordo, el dispositivo tenía dos conversores DAC muy útiles, que podían generar 0-5V en sus respectivos pines e incluso mantener un amperaje respetable.
Sin embargo, hubo un problema. Si bien el manual decía que todo lo que tenía que hacer era escribir un valor específico en un registro específico, y el voltaje correspondiente a ese valor aparecería en la salida, la realidad no era exactamente tan simple.
Una escritura podría mover el valor de voltaje en aproximadamente 3.5V. Si quería cambiar de 0 a 5 V, tenía que realizar
MOV DAC0H,#00fh
MOV DAC0L,#0ffh
dos veces. (revertir el orden no ayudaría).
La primera escritura aumentaría el voltaje a unos 3 voltios y algo, y solo el segundo obtendría el valor correcto. Si comenzara desde 2V, lograría el objetivo 5V en una sola escritura. No es un gran problema, 4 ciclos en lugar de 2 para saltos rápidos, sin impacto para "diapositivas" suaves en absoluto, pero es una peculiaridad extraña.
Me gustaría preguntarle a cualquiera que haya trabajado con ese chip: ¿fue ese el problema de mi chip o es común a todos los ADuC812? ¿Aparece en otros chips de la familia ADuC? 814 etc?
Como beneficio adicional, ¿podría alguien con conocimientos electrónicos explicar cómo sucede eso? ¿Qué mecanismos internos pueden llevar a tal comportamiento?