¿Cuáles son las ventajas y desventajas de ser un ingeniero de sistemas integrados?

El mayor profesional para mí es que es muy divertido. Me encanta escribir firmware que realmente termina haciendo algo físico. Escribes algo, tal vez no funciona. Usted juega con el código, tal vez escriba un código de prueba para descubrir por qué, finalmente obtenga lo que sea que esté trabajando para hacer lo suyo y el resultado final es muy satisfactorio.

Físicamente, puede ser tan mundano como parpadear un LED (el “hola mundo” del mundo integrado) o controlar el acelerador de un automóvil que funciona a 80 MPH (cuando diseñé un control de crucero para un automóvil Hyundai hace varios años).

Tengo experiencia en hardware y software (grados BSEE y MSCS), y trabajar con sistemas integrados me permite involucrarme en ambos aspectos del diseño si lo deseo. He tenido proyectos en los que realicé la arquitectura del sistema, el diseño detallado del hardware, el diseño de la PCB y el ensamblaje de algunas placas, luego probé el artículo terminado. En otros proyectos, podría hacer solo el firmware. O (más raramente), solo el hardware y dejar que alguien más escriba el firmware.

Probablemente escribirá la mayor parte de su firmware en C a menos que esté trabajando con un sistema más grande que ejecute Linux incorporado, donde C ++ puede entrar en juego. También uso Python para escribir scripts de prueba. Si está haciendo mucho diseño de hardware analógico, es posible que necesite aprender MATLAB.

Las desventajas son que se requieren muchos años de experiencia para llegar a ser realmente competente. Incluso si está planeando simplemente escribir firmware, y no realizar ninguno de los diseños o diseños de hardware, necesitará al menos poder leer un esquema y usar medidores digitales, osciloscopios, analizadores lógicos y otras herramientas. Todos los ingenieros integrados con los que he trabajado han tenido un osciloscopio en su escritorio.

A menudo trabajará en el llamado “nivel de registro” de microprocesadores / microcontroladores y periféricos. Debido a la docena de interfaces físicas que se encuentran en los chips más complejos de la actualidad (consulte mi respuesta aquí para obtener una lista típica), una “hoja de datos” para una bestia de este tipo puede tener más de 1000 páginas.

A veces, los problemas pueden ser difíciles de rastrear, y puede no ser obvio si el problema está en el hardware del software. El viernes pasado estaba trabajando en un circuito de audio, programando un FLL (Frecuencia de bucle bloqueado) para generar relojes maestros para una interfaz I2S que se ejecuta a una frecuencia de muestreo de 48 kHz. La frecuencia era estable, pero 63 kHz o 90 kHz en lugar de la velocidad deseada (a veces alternaba entre los dos en un reinicio). Verifiqué y verifiqué mis cálculos matemáticos para los parámetros del generador de reloj de N fraccional, y todo parecía estar bien.

Resultó que, dado que estaba manejando las salidas del códec, en lugar del modo más común donde el microcontrolador las envía al código, necesitaba habilitar algunas resistencias pull-up internas, aunque la hoja de datos nunca mencionó esto y solo lo descubrí. por prueba y error. Después de hacerlo, la frecuencia se bloqueó a 47.9995 kHz. Muy agradable. Ese es el tipo de comentarios que hacen que todo valga la pena. Es difícil dejar el trabajo al final del día cuando tienes un problema sin resolver. Afortunadamente, encontré mi solución un poco después de las 6 p. M. Y pude ir a casa y relajarme durante el fin de semana, de lo contrario, me habría roído hasta que llegué el lunes.

He estado haciendo esto durante más de 40 años y adquirí 27 patentes en el camino. Esa es otra ventaja: es mucho más fácil obtener una patente en un diseño combinado de hardware / firmware que solo el software en sí mismo.

¿Mencioné la parte divertida? Oh si.