- Identifique los requisitos, especialmente con miras a establecer IO y dispositivos periféricos. En esencia, defina cómo el dispositivo interactúa con el mundo real.
- Identifique qué tipos de periféricos y circuitos relacionados realizarán esa interfaz con el mundo real.
- A partir de las interfaces eléctricas y lógicas utilizadas por sus sensores, controladores y otros dispositivos electrónicos, identifique una plataforma de CPU que se interconecte bien con esas partes.
- Identifique qué tipo de código necesitará para convertir las partes en algo que haga lo que quiere que haga. Estime los recursos que necesitará para que funcione; memoria, especialmente. Agregue la memoria y cualquier otro hardware a su lista en el paso 2.
- Obtenga las hojas de datos detalladas de todas las partes clave; CPU, memoria, periféricos, componentes relacionados con la alimentación, etc.
- Diseñe un diagrama esquemático del circuito, utilizando un editor esquemático. Para esto, necesitará datos de nivel lógico, como símbolos de partes con nombres y números de pin.
- Traduzca el esquema a un diseño de PCB, también utilizando herramientas de software. Esto requerirá datos sobre el diseño físico, las dimensiones, etc. de todos los componentes, conectores, hardware de montaje, etc. Es una buena idea permitir cosas como puntos de prueba en puntos lógicos clave, enchufes si planea ejecutar código desde una EPROM o tecnología de memoria similar, o de alguna manera para llevar el programa a la placa de destino, como JTAG. Permitir conectores y otros aspectos mecánicos.
- Diseñe el aparato de alojamiento / montaje, si eso es parte del proyecto. Probablemente entrará en juego otra herramienta CAD. Con suerte, alguien más se dedica a ese trabajo, pero al menos, deberá extraer las dimensiones mecánicas, los detalles de montaje y montaje de esta parte del diseño.
- Envíe la placa para su fabricación. Esto podría incluir simplemente obtener PCB desnudos que llene al soldar sus componentes a la placa, o podría significar que todo se haya soldado y ensamblado. Para los primeros prototipos, probablemente se ensamble usted mismo, e incluso podría usar técnicas de tablero si puede usar la lógica DIP.
- Configura tu entorno de programación. Eso podría ser tan simple como instalar desde un CD o DVD en una PC con Windows, o podría significar construir su propia cadena de herramientas cruzadas a partir de software de código abierto. Depende de la CPU de destino y de cuánto trabajo quieras hacer.
- Escriba el código para que la pizarra haga algo cuando salga del reinicio. Instale, pruebe hasta que pueda ver que el código se ejecuta como se esperaba.
- Escriba módulos de código que ejerciten todos los diversos componentes de hardware que requiere su diseño. También conocido como escribir controladores. Pegue todo esto junto con algo con lo que pueda interactuar para invocar a los controladores con diferentes valores de prueba para comenzar a ver cómo funcionan los dispositivos en la exposición del mundo real.
- Diseña y escribe el software.
Una persona con experiencia podrá realizar la mayoría de los primeros cuatro o cinco pasos en minutos, principalmente desde la memoria y esperando reutilizar partes de diseños anteriores. El diseño, la fabricación y las pruebas de hardware requerirán bastante esfuerzo incluso para diseñadores experimentados.
El diseño y la implementación del software deben seguir las mejores prácticas habituales. Lo que no es es una aplicación estándar de escritorio, servidor o web. Por lo general, deberá hacer todo usted mismo. Eso significa escribir rutinas para imprimir en algún tipo de pantalla, o alternar un LED como su GUI. Si tiene suerte, puede tener acceso a una herramienta de depuración a nivel de hardware, pero son caras.
Gran parte del proceso es iterativo. Tiende a descubrir que uno o más de los periféricos en realidad no funcionan de la manera que pensaba, o que hay errores en el diseño esquemático o PCB, o que se olvidó de alguna parte o que el tamaño y la forma del las partes han cambiado, o no tienes tanta memoria o CPU como pensabas, o el cliente quiere que tenga una forma un poco diferente, o libera el humo mágico en algunas condiciones imprevistas.
- ¿Qué te interesó en la programación de sistemas embebidos?
- ¿Qué significa el microcontrolador de 8,16,32 bits desde el punto de vista de un programador?
- ¿Es Arduino una mala forma de aprender sistemas embebidos? Mis habilidades en C son buenas y quiero ser un ingeniero de software integrado profesional. Compré un kit Arduino y comencé a hacer proyectos, pero fue fácil. No estoy aprendiendo ¿Cuál debería ser el siguiente paso?
- ¿Qué tan útil es BITS Work Integrated Learning Programme (WILP) para M.Tech Embedded Systems en términos de ganar exposición?
- ¿El software de código abierto está sobrevalorado? Cual es la realidad ¿Las startups y otras empresas de sistemas integrados realmente usan código abierto en su proyecto?