lunes, 29 de noviembre de 2021

Las Guerras COB (III)

Queridos lectores:

Una vez más, Beamspot nos deleita con un nuevo post de su serie sobre las Guerras Chip-On-Board (COB), que nos dan el contexto de la presente y futura escasez de microchips para ciertas aplicaciones. Un nueva y apasionante entrega en la que Beamspot nos explica los tipos muy diferentes de hardware que englobamos dentro del concepto de "semiconductores".

Les dejo con Beamspot.

Salu2.

AMT

 

(enlace a la 2ª parte).

Las Guerras COB. 3ª parte.

Deformación Profesional.


 

Prólogo.


Si el título de esta entrada parece poco serio, es porque lo es.


Debo pedir disculpas. No por el título, si no por toda esta parrafada: hoy voy a escribir sobre mi pasión personal, eso que me da de comer y a lo que algunos llaman trabajo, pero que para el que esto suscribe es pura diversión.


Obviamente, esta va a ser la entrada más subjetiva de toda la serie, al menos en varios sentidos. También es posible que sea una de las más complejas en cuanto a temática, pues la idea es ir aclarando conceptos de electrónica que pueden (o no) venir al caso y que forman parte de todo el lío de escasez de semiconductores.


La ventaja, apreciado lector, es que si este texto le resulta árido, igual tampoco le aporta nada. En realidad, ayuda bastante a entender la electrónica, y de rebote, la problemática actual de los semiconductores, pero no es estrictamente necesario para entender dicha problemática.


Pero algo de culturilla específica aporta, y tiene bastante que ver con la tecnología moderna, que espero hacer visible en muchos sitios dónde actualmente no lo es.


Dicho lo cual, les dejo con esta friKada.


Glosario.


Procesador o CPU. Circuito electrónico que efectúa el procesado, o, dicho de otra manera, ‘ejecuta el programa’. Es el corazón de todo computador. También es un término genérico.


Microprocesador. Lo mismo que procesador, sólo que contenido dentro de un sólo circuito integrado. De hecho, ya no quedan apenas ‘procesadores’ que no sean de hecho microprocesadores. El término de CPU o Central Processing Unit (Unidad de Procesado Central), que antes se reservaba a aparatos enormes como muebles, ahora se ha ‘extendido’ como uso a los microprocesadores, ya no como muebles sino como ‘paquete’.


Su cometido, sin embargo, es el de procesar. Y como tal, NO SON UN ORDENADOR. Necesitan de componentes externos para hacer todo el trabajo, siendo el principal ‘periférico’ necesario la memoria (que veremos más adelante).


Core. O núcleo de procesado. Hoy en día muchos microprocesadores tienen más de un procesador dentro, y a cada uno de ellos se le llama core. Hay, incluso, muchos chips que tienen varios cores diferentes, es decir, de diferentes capacidades o diseño, que se suelen llamar asimétricos.


Subprocesador. Eso en realidad, es otro core, generalmente más específico, diferente, y habitualmente especializado en ciertas tareas. A veces se les ha llamado coprocesador, siendo éste uso específico de un tipo particular de subprocesador dedicado a hacer operaciones matemáticas, pero también se pueden encontrar para el procesado de imágenes o la ejecución de programas de inteligencia artificial sobre redes neuronales, donde los subprocesadores estarían específicamente diseñados para ciertas tareas concretas.


Digital Signal Processor o DSP. Es un caso específico de microprocesador con capacidades matemáticas muy potenciadas para cierto uso intensivo con señales (de ahí lo de Signal). Habitualmente se han usado para procesar audio o datos de señales procedentes de sensores y/o comunicaciones.


Eventualmente han evolucionado hacia otro tipo de procesado matemático, el procesado de vídeo… que tiene otro nombre:


Graphics Processing Unit o GPU. Ese es el nombre de un DSP especializado en procesar gráficos. Este está tan especializado que ciertas rutinas matemáticas (muy usadas en bastantes aplicaciones) están formadas directamente por circuitos específicos supereficientes y rápidos. Éstos, a su vez, han evolucionado cambiando (y simplificando) su diseño para hacer ciertos tipos de procesos matemáticos, también involucrados con gráficos, pero para otro tipos de usos.


Más específicamente: las GPU están ‘oficialmente’ especializadas en hacer, crear imágenes (renderizado, lo llaman) a partir de modelos que tienen en memoria, pero su evolución ha ido en dos direcciones: la de procesar imágenes obtenidas y sacar información de ellas (digamos que es el proceso inverso), y en la de ejecutar programas de Inteligencia Artificial (como conducir un coche, muchas veces, interpretando imágenes).


Estas unidades gráficas muchas veces están montadas sobre ‘enjambres’ de subprocesadores.


Microcontrolador (o MCU, Micro Controller Unit, o uC). Si desde la primera entrada de este glosario hemos ido ‘avanzando’ en la potencia de cálculo y especialización, esta entrada va ‘al revés’ a ese respecto.


Un microcontrolador es un microprocesador que contiene muchas más cosas dentro, aunque es menos potente en cuanto a potencia de cálculo.


Se puede decir que es un ‘pequeño ordenador’ en un sólo chip.


Parece mentira, pero hoy por hoy, es casi más omnipresente que los procesadores conocidos por la mayoría, ya que uno se lo encuentra en casi todas partes: el microondas, la vitrocerámica, la lavadora, la bicicleta, la radio, la tele (aunque no sea smart), y dentro de un coche, pues habrá docenas en el menor de los casos.


Son tan ubicuos que esta entrada les dedica bastante extensión.


Sin embargo, no estamos hablando de cosas que uno haya parado a pensarse que llevan un procesador dentro. Y eso que la potencia de cálculo que llevan es mayor que la que tenía el sistema de alunizaje del Apolo 11, imagen que encabeza este artículo.

 

Hablando del Apollo Guidance Computer, detrás hay otra heroína, la ‘madre de la Ingeniería de Software’,  Margaret Hamilton.


En la imagen de la izquierda, un microcontrolador ATmega32 en un Arduino Nano, con una potencia de cálculo similar (en cuanto a memorias, algo mejor éste en cuanto a velocidad) a la del citado Apolo Guidance Controller… pero en sólo 7 gramos.


No, estas pequeñas bestias trabajan en un mundo muy diferente: el

Tiempo Real.  Muchas cosas necesitan dar respuesta a ‘estímulos’ en un tiempo muy preciso y limitado, estipulado.


¿Alguien se imagina que cuando uno aprieta el pedal de freno con el coche, le salga un mensaje en el salpicadero diciendo “Un momento, verificando actualizaciones del sistema de ABS en Google, sírvase esperar antes de frenar”?


Por eso, el control del ABS tiene dentro un par de microcontroladores ejecutando un cierto programa con un control muy estricto tanto del tiempo como del correcto funcionamiento (por eso dos).


En general, todo lo que necesita trabajar en Tiempo Real es bastante peliagudo y está muy estipulado.


Por eso, esos microcontroladores llevan una serie de periféricos necesarios para su labor, como por ejemplo:


RAM o Memoria de Acceso Aleatorio. Es el tipo principal de memoria con la que trabajan los procesadores, microcontroladores, GPU’s y todo lo que hemos mencionado hasta este punto en este glosario.


Es una memoria que se puede escribir y leer, modificar, en cualquier momento y en cualquier posición, de ahí lo de acceso aleatorio. Para diferenciarlo de una cinta (antiguamente se usaban cintas en lugar de discos duros u otros medios de almacenamiento) en que el acceso es secuencial: se empieza por el principio y se va avanzando.


Este tipo de memoria tiene unas ciertas ventajas: es multiuso, y suele ser rápida, pero tiene una desventaja: cuando le quitas alimentación, pierde los datos almacenados.


Éste acrónimo, en realidad es una generalización, ya que hay varias tecnologías de memorias RAM.


DRAM o RAM Dinámica. Es la de mayor capacidad, velocidad, y de paso, menor precio. Pero tiene un defecto ‘de pez’: su almacenamiento se degrada con el tiempo, ‘pierde la memoria’, así que hay que irla refrescando. ¡Y la tasa de refresco es de miles de veces por segundo! Eso reduce su velocidad máxima.


DDR, LPDDR, PSRAM, y derivados. Todo esto en realidad son derivados de la DRAM con diferentes prestaciones. Las DDR son la memoria habitual que tienen los sistemas informáticos de hoy en día, y es uno de los puntales fuertes de Samsung (ojo, que hay otros fabricantes).


De hecho, la telefonía móvil lo que en realidad gasta es un tipo de LPDDR (es decir Low Power DDR o de bajo consumo) que tiene circuitos específicos de refresco incluidos, por lo que la llaman PSRAM o Pseudo Static RAM. O sea, RAM falsamente Estática.


SRAM. O RAM Estática. A diferencia de la RAM dinámica, ésta no necesita refresco, sus contenidos permanecen estáticos todo el tiempo que estén alimentadas, de ahí su nombre.


Técnicamente, tiene la capacidad de ser más rápida que la DRAM, pero es inevitablemente mucho más cara (contiene muchos más MOSfets por bit de memoria), así que su uso específico para alta velocidad se suele reservar a las llamadas memorias caché de los procesadores, ya que suele ser capaz de trabajar a la misma velocidad que dichos procesadores, aunque con un tamaño mucho menor.


Sin embargo, ciertas variantes de SRAM pueden tener un precio total más bajo a costa de una densidad (capacidad por chip) menor. Ese es el tipo de memoria que suelen usar los microcontroladores, y si en las DDR de hoy en día hablamos de Gigabytes de datos, en las SRAM estamos hablando de MB en el mayor de los casos, tres órdenes de magnitud menos (1024 veces, para ser exactos).


ROM o Read Only Memory. Es exactamente como una SRAM, sólo que no se puede escribir o grabar de forma fácil (obviamente, de alguna manera se graba, pero ese proceso puede ser lento y costoso en otros términos).


A diferencia de la RAM, aquí no se puede grabar, sólo leer (en ambos casos, de forma fácil), pero tiene la particularidad de mantener los datos aunque se vaya la alimentación. De hecho, los años que puede mantenerlos sin perderlos suele ser una de las características fundamentales de dichas memorias.


En realidad, hoy por hoy no quedan apenas dispositivos ROM. Pero sí muchas de sus variantes, las cuales muchas son bastante conocidas.


OTP o One Time Programming (ROM). Es un tipo de ROM en que el proceso de grabado se hace en base a ‘fundir fusibles’. Por eso sólo se puede programar Una Vez (One Time). Tiene ciertos usos, pero son más una reliquia.


EPROM. ROM Programable y borrable (Erasable en inglés). Es un tipo de ROM que, se puede borrar y programar varias veces. Generalmente, el grabado se suele hacer eléctricamente, con ‘altas tensiones’ (estamos hablando de dispositivos que se suelen alimentar a 5V, y la ‘alta tensión’ suele rondar los 20V), y se suelen borrar con rayos ultravioletas. Son curiosas de ver, pero eso es todo, una curiosidad.


Se usaban para almacenar la BIOS de los ordenadores de la década de los 90 (los 386 y 486 de entonces). Ahora se han reemplazado por las:


EEPROM, que es como la anterior, pero se pueden borrar ‘eléctricamente’ en lugar de por ultravioletas, de ahí la primera E, de Electrically


Con el avance de la tecnología, éste tipo de integrado ha ido siendo menos ‘costoso’ de borrar y volver a grabar. Así que se desarrolló una tecnología que al principio permitía borrar toda la memoria a la vez sin necesidad de lámparas de ultravioleta, pero pronto evolucionó hasta poder borrar bytes individuales.


Este último tipo de EEPROM se ha vuelto muy común, pero su uso suele ser particular, ya que el precio hace que, por byte, salga muy cara. Sin embargo, es bastante común para ciertas aplicaciones como la de almacenar el kilometraje del coche, o ciertos parámetros de configuración de dispositivo, por ejemplo.


Sin embargo, dado el interés por este tipo de tecnología, se continuó evolucionando, y el siguiente paso son las


Flash(EEPROM). Si, esas Flash, las de los móviles, los ordenadores y demás. En el fondo, son las EEPROM que se han comentado, donde el circuito de borrado sólo puede borrar bloques de un cierto tamaño, haciendo así mucho más sencillo (y barato) el chip.


Su velocidad de acceso y la bajada de precio ha hecho que hoy en día se use extensivamente en los 


SSD o Solid State Drive. O unidad de Disco Duro de estado sólido.


Cuando se trata de almacenar datos de forma fiable durante mucho tiempo y en grandes cantidades, se suelen usar lo que comúnmente se llama Discos Duros (HDD o Hard Disk Drive) un método de almacenamiento de los años setenta, que se basa en discos magnéticos (similares a las antiguas cintas magnéticas) imantables, más rápidos que las antiguas cintas sobre todo debido a la mayor facilidad de acceso al no ser éste del todo secuencial (sólo parcialmente).


Pero hace años que esta tecnología se ha quedado estancada y los precios apenas pueden bajar más, lo cual ha hecho que la bajada de precios (por volumen de demanda además de por los avances tecnológicos) de las Flash haya hecho competitivos los discos duros que usan este tipo de memoria en lugar de discos magnéticos.


Aunque estos SSD son más caros, son mucho más veloces… pero su vida útil también es más limitada, ya que apenas pueden aguantar los datos durante unos pocos años (habitualmente menos de cinco), y encima los ciclos de borrado son limitados (del orden de decenas de miles de veces, frente a decenas de millones de veces y décadas de los discos duros clásicos).


Las ‘buenas EEPROM’ pueden aguantar hasta un millón de ciclos de borrado (ojo, no todas, sólo las específicas para muchos ciclos), y más de diez años de retención.


Hay otro tipo de almacenamiento conocido hoy en día: las tarjetas SD, microSD, los ‘memory pen’ o memorias USB, las MMC, la eMMC, etc.


Todas ellas se basan en tecnología Flash (y las memorias USB además llevan un microcontrolador dentro), y todas tienen los mismos problemas de retención y demás.


Ojo, como las baterías, la retención de los datos depende de la temperatura. El mero proceso de soldar dichas memorias hace que todos los contenidos almacenados ANTES del dicho proceso tengan un tiempo de retención de entre un tercio y la mitad del nominal, incluso menos.


WOM o memorias de sólo escritura. La contra partida de las memorias de sólo lectura. En realidad, un chiste sólo para friquis: el enlace puesto al datasheet de semejante memoria es para desternillarse de risa.


Periféricos. Este es un término de doble uso. Se refiere, por una parte, a accesorios de ordenadores (como las impresoras, los escáneres, el ratón) como, por extensión, los elementos ‘añadidos’ a todo sistema procesador y que suelen configurar todo elemento que le permita interactuar con ‘el resto del universo’.



Von Neumann. Un señor, un ingeniero, que se inventó una arquitectura.

Alan Turing. Otro señor, que se inventó lo que hoy vienen a ser los procesadores.

Lady Ada Lovelace. Una señora que vivió bastante antes que Alan Turing, y que se inventó los algoritmos, la programación y se la considera (más que merecidamente) la madre de la informática.


En la imagen a la derecha, junto a una maqueta de la máquina diferencial de 

Charles Babbage.


Harvard. Una universidad, que se inventó otra arquitectura.


ARM. Un fabricante, que se inventó una tercera arquitectura.


Intel, Motorola. Otros fabricantes que se inventaron otras arquitecturas.


Arquitectura. Además de ser una carrera universitaria para diseñar edificios (principalmente dominados por la estética), en electrónica se refiere a cierto tipo de diseño o ‘forma’ de funcionar un circuito electrónico, muy especialmente aplicado al caso de ordenadores.


Pero, por si esto fuera poco, aún hay otro ‘invento’ en disputa:


FPGA, o Field Programmable Gate Array. Un tipo de circuito integrado que contiene lo que se viene denominando ‘lógica programable’, es decir, que contiene una serie de circuitos que se pueden ‘programar’, o, mejor dicho, ‘configurar’ para que tengan cierta arquitectura. No se trata de un procesador, sino de un circuito electrónico que se puede ‘rediseñar’ en cuanto a sus funciones electrónicas, no informáticas.


Otra manera de verlo, es un circuito que permite cambiar de arquitectura de forma ‘voluntaria’ por el diseñador. Pero estamos hablando de HardWare (HW), no de SoftWare (SW), ni de FirmWare (FW).


A nivel electrónico, esto es el pináculo de la tecnología, el sumum de la electrónica digital, lo que marca el State of Art.


Ya puestos:


HW: la ‘ferretería’ (traducción literal) o el conjunto de electrónica que hace funcional un circuito electrónico. La parte física. AKA Hardware,


SW: programas o conjunto de cosas que hacen que funcione un sistema informático, pero que no son físicas, son sólo datos/programas. AKA Software.


FW o Firmware: este término es exótico, pero tiene su sentido: es el programa ‘fijo’ (firme) que se halla en los microcontroladores, por ejemplo, el programa que tiene el microcontrolador del microondas. Es decir, es un tipo de SW que generalmente ‘no se toca’, y que suele ser muy específico.


Este autor escribe bastante FW, que habitualmente corre en uC sin ningún sistema operativo, y que trabaja directamente a nivel de bits, periféricos directos sin drivers, ‘el hierro pelado’ (que hace mucho más que lo que dice la wikipedia), etc. Mucha electrónica, y un tipo de programación muy muy diferente de lo que tienen por mano los informáticos.


I2C, SMBus, RS-232, RS-485, RS-422, SPI, USB, Ethernet, WiFi, ZigBee, BluetoothU(S)ART, PCI. Todo esto son acrónimos de buses de comunicación, o métodos para ‘comunicarse’.


Sólo se han nombrado unos pocos, los más conocidos, pero lejos de ser los únicos. El abanico de posibilidades, o, mejor dicho, intenciones o aplicaciones específicas es tan amplio como la lista.


Desde los buses dedicados a la comunicación entre diferentes periféricos dentro del mismo circuito (como el I2C, SPI, QSPI), a los pensados para comunicaciones a enormes distancias (Ethernet), comunicaciones inalámbricas (Wifi, Bluetooth, ZigBee) entre diferentes unidades, comunicaciones entre periféricos y ordenador (PCI, USB), buses ‘industriales’ como el RS-485, viejunos pero que aún aguantan (RS-232 y su base los U(S)ART) y muchas veces están ‘escondidos’ (muchos Bluetooth usan el U(S)ART de forma solapada), a los que habría que añadir una gran cantidad de buses industriales basados en Ethernet como el EtherCAT, etc.


En muchos casos, estos buses se destinan a comunicar entre diferentes procesadores, microcontroladores, y sobre todo, sensores y


MEMS. Abreviatura de Micro Electro Mechanic System (¿hace falta traducirlo?), que es un sistema semiconductor que contiene mecánica de tamaño realmente minúsculo. Es un tipo de sensor muy extendido, especialidad dónde las haya, y que se suele utilizar especialmente para sensores como las plataformas inerciales (IMU en la lengua del imperio, acelerómetros, giróscopos, magnetómetros – que hacen de brújula), sensores de presión/humedad/gases, y similares.


Estos MEMS se suelen comunicar con los sistemas microcontrolados y microprocesados mediante los buses I2C y SPI, aunque recientemente parece extenderse el uso del I3C.


También deberíamos hablar de la electrónica de potencia, con sus IGBT’s basados en la transmutación del silicio.


Al lío.


Bueno terminado el glosario, voy a empezar a explicar esto del revés.


La informática y la electrónica eran dos ciencias muy diferentes al principio, y poco relacionadas. De hecho, la única relación que tenían al principio es que ambas funcionaban usando energía. Incluso algunos sistemas programables usaban mecánica pura y dura en forma de tarjetas perforadas.


Aunque la informática que se inventó Lady Ada Lovelace se basaba bastante en sistemas mecánicos que bebían de las invenciones de Charles Babage, Blaise Pascal y Monsieur Jacquard con sus sistemas de tarjetas perforadas, no se considera su nacimiento ‘real’ hasta que Alan Turing se inventó su máquina (la Bombe) de descifrar códigos codificados con la máquina Enigma que usaban los alemanes en la 2ª GM.


Esa máquina ‘decodificadora’ realizaba un procesado ‘programable’ sobre los textos que le entraban sus operarios a base de girar piezas y hacer ‘pruebas’ eléctricas. En realidad, era una arma de criptoataque.


Aunque en realidad la primera unidad de procesado central fue alemana, la Z1, y en base a relés en lugar de a contactos giratorios, ésto no se supo hasta bastante más tarde, sin que lo supiesen incluso los alemanes, y encima todavía menos los militares, ya que esa máquina alemana era usada por el sistema postal.


La invención del transistor permitió el poder hacer buena parte de este procesado de forma más sencilla, aunque los primeros ordenadores concebidos como tal usaban válulas de vacío. El incorrectamente (por razones históricas) llamado ‘primer ordenador’, el ENIAC, que a su vez se derivaba de Colossus, que a su vez se derivaba de la Bombe, ya que se usaba para descifrar la máquina de Lorenz, similar a la Enigma, pero que a diferencia de ésta, sólo se usaba para comunicados del más alto nivel, estaba hecho con válvulas.


Consumía unos 160KW de electricidad, y de media fundía una de sus 17468 válvulas cada dos días. Ocupaba 168m2, y subía la temperatura de la sala en la que se encontraba hasta los 50 ºC. El pasar a microválvulas permitió hacer las cosas más sencillas.


Pero fue la invención del transistor lo que hizo que la electrónica cambiase radicalmente.


El desarrollo del MOSFET, que sobre el papel ya se había intentado en los años 20 sin éxito, permitió que se pudiesen meter muchos transistores dentro de un solo circuito integrado, aunque hay integrados que utilizan transistores bipolares, si bien en otra escala de integración.


Hoy en día, se alcanzan los billones de transistores dentro de un circuito integrado, y básicamente en memorias, que son las que tienen la densidad de componentes más altas de todos los circuitos integrados.

 

 Réplica del Colossus, un primitivo ordenador diseñado para descifrar mensajes nazis

Así pues, en este tipo de circuitos, la tecnología de integración prima sobre el resto, siendo habitualmente los componentes que se suelen fabricar en nodos pequeños… una vez éstos están maduros para entrar en el mercado.


Sin embargo, los primeros lotes de fabricación hechos con un nuevo nodo, no suelen ser las memorias de producción masiva, sino microprocesadores o circuitos de aplicaciones bastante particulares.


Entre otras cosas, porque las CPU’s, aunque tengan menos transistores por metro cuadrado, son bastante más complejas, además de ser (hasta hace poco) el ‘cuello de botella’ en el procesamiento. Eso implica que utilizan más mm² de silicio que no las memorias, y por tanto, son el punto que interesa optimizar.


Las CPU basadas en tecnologías RISC y con arquitecturas ARM son las más eficientes en cuanto a uso de silicio. Esto, junto con el gran ecosistema que ha suministrado ARM a la industria, hace que sean tan populares. Eso, y la política de licenciar el core a cualquier fabricante que se precie, a diferencia de otras arquitecturas (más viejas, tipo CISC) como las de Intel (familia x86 derivada de los primeros PC’s) o las de la reconvertida Motorola (ahora escindida entre Freescale, posteriormente comprada por NXP, y OnSemi) basadas en la familia 6800 y derivados.


La historia de los microprocesadores, íntimamente ligada con la de los ordenadores personales, es fascinante y compleja.


En un principio, se pasó de los grandes mainframes u ordenadores con CPU’s discretas (es decir, hechas con componentes individuales, con circuitos integrados no específicos), como por ejemplo, el ordenador de alunizaje del Apolo, que usaba memorias de ferrita como RAM, y cableadas como ROM.


También eran el tipo de ordenadores que se usaban por entonces, como los PDP-11 primigenios, o incluso los más potentes y veloces CRAY, cuya potencia de cálculo hoy en día está por debajo de la de un teléfono móvil.


En esos tiempos, un ordenado era, por defecto, multiusuario, multitarea, y multi-de-todo, ya que una única unidad de proceso se utilizaba por varios terminales a la vez.

 

Don't CRAY-2 for me, tecnología

Estos terminales daban bastante trabajo a las CPU’s, que por aquel entonces ya trabajaban con un sistema operativo bastante potente, el UNIX. Por eso, se empezaron a desarrollar terminales ‘inteligentes’. La conexión entre los mainframes y los terminales, se hacía usando un puerto serie como el RS-232 (o derivados similares como el RS-485).


La carrera por esos terminales inteligentes, así como por las CPU’s más potentes, derivó en las primeras CPU’s integradas, con el nacimiento del 4004 de Intel, inspirado en la película 2002 Una Odisea en el Espacio.


Era una CPU tremendamente limitada, ya que era de 4 bits, así que en breve la sucedió el 8008, de ocho bits, pero que tampoco era ninguna maravilla, pero sí un paso importante hacia su sucesor, el 8080 que fue el primer microprocesador utilizado masivamente, y poco después, el exitoso 8085.


El 8080 ‘inspiró’ a otro famoso, el Zilog Z80, que en aquella época fue el mayor ‘hit’ de la informática, llevándose casi todas las máquinas que usaban el sistema operativo CP/M.


El 8085, sin embargo, fue la piedra sobre la que se edificó el mayor éxito de Intel, el 8086 y la familia x86 derivada, la base de los PC’s de hoy en día, al calor de IBM.


Fue esta última familia la que ‘necesitaba’ un sistema operativo como había sido el CP/M, pero portado al 8086 para la aplicación en el IBM PC, la que sirvió a un avispado joven para que comprase esa versión de sistema operativo, le cambiase el nombre, la copiase en un disquete, y se la vendiese a IBM bajo el nombre de MS-DOS, abreviatura de MicroSoft Disk Operating System.


Ahí hubo el nacimiento de Microsoft, el boom de Intel, y el último gran negocio de IBM.


En paralelo, y dado que el manejo del teclado seguía siendo bastante oneroso en términos de potencia de cálculo en esa década de los 70 y principios de los 80, se desarrolló un ‘periférico’ nuevo que se encargaba de esa tarea utilizando un procesador más ‘pequeño’ para hacerse cargo de esas tareas y poco más. Así nació el microcontrolador, de la mano del Intel 8048, miembro más prominente de la familia MCS-48, donde MCS significa MicroController System.


El 8048 fue usado por IBM para controlar el teclado del primer PC, y posteriormente se hizo cargo de otras tareas incluso en el 80286.


Sin embargo, el microcontrolador más influyente fue el 8051 y la familia MCS-51 sucesora del anterior. Hasta bien entrada la primera década del siglo XXI, fue el microcontrolador más prominente.


Aún así, el uso de microcontroladores creció muchísimo, hasta el punto que Philips, uno de los grandes fabricantes de microcontroladores, casi todos derivados del 8051, percibió que tenía que apostar por algo nuevo.


Por aquellas épocas, sin embargo, ya había grandes cambios en el terreno de los microcontroladores. Desde sistemas basados en CPU’s obsoletas de la década de los 70, pero reconvertidas al añadir el novedoso sistema de ‘In Circuit Programming’ que hacían más fácil la vida del programador, como era el caso del PIC 16F84 (Arizona Microchip, ahora Microchip a secas, compró la patente de la CPU por algo así como un $, pues se obsoletó en 1971) que llevaba la novedosa memoria FLASH (hasta entonces, la mayoría eran EPROM borrable por Ultravioleta, muchas veces, externa) que se podía programar con el microcontrolador ya soldado en la placa, hasta sistemas mucho más avanzados basados en las nuevas tecnologías RISC como los AVR de Atmel.


La década de 1995 a 2005 fue la época dorada de los microcontroladores de 8 bits como los dos mencionados, con sus ‘guerras religiosas’ incluidas en las que servidor ‘luchó’ (por el bando ‘perdedor’, Atmel, que fue adquirida por Microchip por razones que veremos en breve).


Sin embargo, mientras esas guerras estaban en plena vorágine entre los usuarios, en las avanzadas de los fabricantes empezó a vislumbrarse un cambio hacia potencias muy superiores para aplicaciones mucho más importantes.


Ahí hubo tres fabricantes que rápidamente vieron el camino a seguir: Philips, que podríamos considerar como la ‘gran perdedora’ de las guerras de los micros de 8 bits, ST, que nunca llegó a gran cosa en ese ámbito, y la propia Atmel.


Philips había sido la gran proveedora de sistemas empotrados (embedded), es decir, en base a microcontroladores en la década de los 90, con la preponderancia del 8051 que Intel, poco interesada en ese campo, le licenció.


Cuando los usuarios más avanzados empezaron a pedir más prestaciones, Philips se reinventó en NXP, y dejó de lado la familia 8051 para meterse en los nuevos y prometedores ARM. La primera.


ST estaba en una situación peor: sus intentos para sacar adelante sus STM8 no funcionaron. A pesar de ser un buen uC, Microchip (y su política de comprar propiedad intelectual de otros, campaña de márqueting agresiva, precios baratos, y sobre todo, regalar los PIC en los cereales de los estudiantes universitarios de electrónica que hacían el proyecto final de carrera) y Atmel (con una familia mucho más potente que en muchas ocasiones superaba los microcontroladores de 16 bits) les habían  cerrado el paso a ese mercado.


Atmel, por otra parte, viendo las necesidades de potencia de cálculo, su gran baza para imponer los AVR, también apostaron por los ARM tal y como hicieron ST y NXP..


Esta apuesta de futuro chocó con la política de Microchip de utilizar CPU’s ‘obsoletas’, que apostó por una arquitectura de 32 bits con escaso tirón.


Eso hizo que Microchip tuviese que afrontar una decisión difícil: hacer algo radical o perder ese lucrativo mercado.


El resultado fue caro: compró Atmel. Aún así, están siendo relegados del mercado por ST y NXP.


De todas maneras, las tendencias en este sector han abierto otro melón, el del IoT. Internet of Things.


En este caso, otros fabricantes como Texas Instruments, que también tuvo sus historias y terminó sacando sus propios microcontroladores ARM ante sus problemas para competir en el mercado (sus DSP’s han sido líderes en ese sector, pero la potencia de cálculo de los ARM los ha llegado a superar), han apostado, como antes, por el aumento de potencia yendo hacia sistemas no tan microcontrolados, y más microprocesados.


Es el caso de las CPU que corren Linux a un nivel inferior que los ordenadores personales, pero con capacidad para hacer cosas típicas de microcontroladores, dentro de unos límites.

 

Arduino Uno: Puerta de entrada al IoT para aficionados

Es el caso de la familia OMAP.


Esa misma apuesta, sin embargo, ha surgido con fuerza en otro sector afín, pero que venía de las mismas guerras de los micros de 8 bits.


En esa vorágine de microcontroladores de uso general que fue la base sobre la que crecimos toda una generación de ingenieros electrónicos, vio nacer un concepto ‘simple’ para acercar la electrónica a otros sectores que no fuesen el de los ingenieros.


Tampoco es nada nuevo. El PC es una máquina hecha por ingenieros para ingenieros y programadores con conocimientos de ingeniería. Pero alguien con mucha vista comercial vio que había potencial en vender máquinas para gente que NO fuesen ingenieros: San Steve Jobs sacó los McIntosh (basados en el rival de Intel, Motorola y su familia 68000) y el Windows, perdón, el sistema operativo gráfico.


En esa misma línea, un par de ingenieros electrónicos hicieron un sistema microcontrolado sencillo para su uso por parte de un estudiante de Bellas Artes con conocimientos ligeros de programación (pero no de ingeniería).


Había nacido el Arduino.


En un concepto similar y con unos años de retraso, un grupo de una ONG intentó hacer ‘ordenadores baratos’ para su distribución a gente sin recursos y del tercer mundo, basado en arquitecturas ARM baratas, escasas en cuanto a potencia y capacidad, y corriendo el gratuito Linux, una versión de UNIX libre que ha alcanzado cotas enormes.

 

Raspberry Pi en su versión 4, un ordenador monoplaca muy popular por menos de 100€.

Había nacido la Raspberry Pi.


Ambas, ‘motorizadas’ con Atmel (AVR/ATMega el Arduino, ARM’s de Atmel la RPi primigenia, las últimas ya no son Atmel).


Ambas fueron un éxito entre los estudiantes de ingeniería la primera, y de informática la segunda.


En la segunda década de este siglo, que es cuando ha salido la RPi, Texas Instruments ha sacado su propia versión, claramente orientada a los ‘ahumadores de integrados’ como el que esto suscribe: la BeagleBoard, BeagleBone y demás familiares Beagle.


ST, viendo la situación y el camino claro desde su posición de preponderancia de los microcontroladores de 32 bits, hace poco ha sacado su propia versión para competir con Texas Instruments, el STM32MP1, con el que trabajo actualmente.


Estas últimas hornadas de sistemas son la base sobre la que se está implementando tanto el IoT como la Industria 4.0.


Y este es el punto en el que estamos ahora… y más o menos lo que se puede ver venir es que los derroteros van a ir más o menos por dónde han ido hasta ahora.


Aunque la parte de historia debería cubrir también los avances en telefonía móvil, íntimamente ligados, dejaremos esta parte para más adelante.


Android, Qualcomm y las FPGA se tendrán que esperar.


Por eso, y echando la vista atrás para extraer conclusiones que puedan servirnos para el análisis de la situación actual de la electrónica en general, y de los semiconductores en particular, hay que explicar un poco más sobre la diversidad actual de electrónica, el qué hacen los microcontroladores, otros semiconductores, qué hace un circuito, etc.



Porque es aquí dónde se halla el meollo de la cuestión, el nudo gordiano en que nos encontramos, y las razones de peso, múltiples, variadas, y sobre todo complejas incluso para ingenieros curtidos.


He comentado bastante sobre los microcontroladores y cómo éstos se desarrollaron para hacer ciertas labores que ‘eliminaban’ tarea de las ‘grandes CPU’s’.


Obviamente, hacen mucho más que eso, hasta el punto que hoy en día se venden más microcontroladores que no microprocesadores… y eso que se venden cientos de millones de los últimos.


¿Porqué?


Pues porque los microcontroladores están en multitud de sitios. El microondas, el router WiFi que tienes en casa, el coche (a docenas, por cierto), la impresora, el monitor, la tele, el ratón (si, el ratón), el teclado de tu PC, el teclado inalámbrico, tu SmartWatch, la nevera, la lavadora, el contador de la luz, el cargador de las baterías de tu bicicleta eléctrica, el propio pack de baterías, tu radiodespertador, Alexa, el reproductor MP4, la cámara de fotos, los cargadores de pared de cochepilas (WallBox integra una variante de la RPi), el lavavajillas, el portero electrónico, las cerraduras electrónicas, tu DNI, tu tarjeta de crédito…


Los microcontroladores son ubicuos.


Incluso muchos ordenadores llevan microcontroladores dentro que hacen cosas.


Hasta para cosas sencillas donde antes se utilizaba electrónica analógica se usan. Incluso los he visto en los ventolines para gente con asma.


Por esa razón, los obsoletos PIC16F84 todavía se venden, igual que los TinyAVR de Atmel.


Ciertamente en menor volumen, pero no es algo marginal. Para un microondas no necesitas más.


Al fin y al cabo, para ‘controlar’ un microondas sólo hace falta un puñado de entradas/salidas digitales (pines) para ‘leer’ el teclado y activar el display de 7 segmentos a LED más una o dos para activar el magnetrón emisor de microondas (un cacharro que se inventaron los británicos para usar en los radares y que les dio mucha ventaja en la 2º GM), una entrada para detectar la puerta cerrada, y un temporizador o timer que cuente el tiempo.


Casi se puede decir que es una aplicación básica de manual para aprender a programar Arduinos, de lo más sencillo.


Otra aplicación sencilla en apariencia, es el controlador de batería de plomo de ciertos coches. Sólo hace falta un par de entradas analógicas (ADC’s) para medir la tensión de la batería y la corriente que entra/sale de la misma, un temporizador de precisión, y un bus CAN de comunicaciones. En el fondo, tres chips (el micro, el transceiver de CAN, y el regulador, del que hablaremos más adelante).


También podría usar un interfaz LIN que va sobre USART en lugar de CAN, con lo que cambia el tipo de transceiver. Ambos son buses determinísticos ideales para trabajar en tiempo real.


Sin embargo, esta última aplicación, requiere un uC potente para hacer frente a la cantidad de cálculos necesarios para el algoritmo secreto y propiedad intelectual (es decir, con derechos de copia) de cierto fabricante. En este caso, además el temporizador requiere algo de precisión.


Y es sólo uno de las decenas (en algunos casos más de dos centenas) de uC’s que hay en el coche.


Otra aplicación de los uC’s son la de ‘pilotar’ vehículos. Sí, lo dicho, pilotar vehículos.


Quizás la aplicación ejemplar de este tipo de aplicación es el control de alunizaje del Apolo XI, ese que se sobrecargó y no podía completar todas las tareas.


La potencia de cálculo de ese procesador de más de 35 Kg y varios miles de puertas OR discretas, de 3 bits (las puertas, que la CPU era de 8 bits), se puede asemejar mucho a la que da el Arduino Nano de menos de 10 gramos, incluso es inferior a la de este último.


Así no es de extrañar que con el mismo Arduino se hayan desarrollado pilotos automáticos de drones y aviones no tripulados (UAV’s), en código abierto, como el Ardupilot.


Ciertamente, manejar un dron no necesita una potencia de cálculo excesiva si se aplica un filtro de Madgwick, pero se queda corto para correr un Kalman, que es precisamente lo que utilizaba la NASA para manejar el Apolo en el despegue, que es cuando necesita más potencia de cálculo.


Para ello, usaban grandes mainframes de las universidades de Florida, Texas y California, ya que encima no era el Kalman clásico sino el extendido debido a la enorme variación no lineal de masa del cohete (razón por la que no se puede usar el más nuevo y sencillo Madgwick).


Ese tipo de aplicaciones fue lo que le dio la puntera a los USA en la carrera espacial y en el guiado de misiles, especialmente el desarrollo del Filtro de Kalman (un miembro del equipo de Wernher Von Braun).


Sin embargo, un uC basado en ARM (como casi cualquier STM32 por ejemplo) sobra para realizar un Kalman, lo que lo hace perfectamente capaz de guiar cualquier misil, aunque para ello haga falta algún otro tipo de giróscopo (como los ring laser usados en el guiado de aviones y cohetes) con muy bajo ruido en comparación con las plataformas inerciales de bajo costo que se utilizan hoy en día.


Obviamente, este tipo de aplicaciones no se puede permitir el lujo de esperar actualizaciones del señor Google, ni problemas de pérdidas de enlaces de datos. Tienen que trabajar en tiempo real, con un tiempo de respuesta claramente estipulado y estudiado.


Ese es su domino.


En muchas ocasiones, también se pueden encontrar en aplicaciones que se podrían hacer con electrónica discreta o analógica, incluso más barata, pero en cuyo uso se puede sacar algo más de valor añadido al utilizar un uC, por ejemplo la posibilidad de diagnóstico vía algún bus (como el I2C), temporizaciones, etc.


Eso hace que sean ubicuos, y que en la automoción se usen en profusión: control de luces, la centralita de control de inyección (que necesita una cierta potencia de cálculo, aunque se puede realizar una sencilla con el mismo Arduino), los elevalunas, la radio, el cierre centralizado, el ABS, etc.


Incluso en casos como el del inverter de un vehículo eléctrico, similarmente con el ABS, se utilizan microcontroladores con electrónica redundante como los TriCore de Infineon, con dos ARM Cortex M4 para el cálculo redundante y un Cortex M0 que se encarga de las tareas de menor nivel como la adquisición de datos calibrados de tensiones y corrientes, buffer del bus CAN, temporizaciones de los sensores de las ruedas en un ABS, etc.


Incluso hay sensores que llevan integrado el uC dentro del mismo. Un ejemplo es el receptor de GPS, o la conexión Bluetooth (que utiliza un uC ARM de 32 bits, muchas veces para dar comunicaciones a un Arduino de 8 bits mucho menos potente).

Como se puede ver, están en todas partes, muchas veces de forma insospechada (la nevera y la lavadora son buenos ejemplos, pero hay a patadas). De todos los tipos y de todos los tamaños.


Sin embargo, no son los únicos semiconductores presentes por todas partes. Hay otros, muchos de ellos ‘specialty’, que están presentes incluso en más sitios.


Es el caso del regulador, o los reguladores de tensión que ya se comentó en el ejemplo del control de batería de plomo.


Son integrados que ‘convierten’ la tensión de entrada (los 12V de la batería del coche, en jerga conocido como KL30/KL15 o Ubat) a la tensión necesaria de funcionamiento de la electrónica.


Se encargan del suministro de energía en las condiciones adecuadas.


En muchas ocasiones, son varias tensiones, no sólo una.


Y sin embargo, este tema, el de las tensiones, juega un papel mucho más fundamental de lo que parece en el tema de la electrónica, no sólo por la necesidad de tener uno o varios reguladores en el circuito.


El asunto es que según la tecnología que se use, hay una tensión máxima de trabajo para el semiconductor. Por regla general, cuanto menor es el nodo, menor es la tensión de trabajo, y menor la tensión máxima que puede soportar.


Los AVR de los Arduino, así como los 8085, Z80, 8086, trabajaban a la tensión estándar de 5V, también conocida como TTL.


Los ARM utilizados en los microcontroladores, sin embargo, ya están limitados a una tensión máxima de 3,3V, aunque algunos pines toleran que se les metan 5V.


La razón es meramente física: al reducirse el tamaño de la puerta del MOSFET, a igualdad de tensión aumenta el campo eléctrico aplicado, de tal manera que puede ‘saltar la chispa’ por decirlo de alguna manera, estropeando el circuito.


Afortunadamente, con tecnologías de nodos pequeños se pueden hacer transistores grandes, pero entonces se pierden velocidad y superficie.


Por eso, las tecnologías más avanzadas, que trabajan a tensiones más bajas, como los 1,8V de las DDR, los 1,2V de algunos ‘core’ ARM, incluso algunos trabajan a menos de 1V, tienen parte de la circuitería que trabaja a tensiones más elevadas, velocidades más bajas, y que se suelen encargar de ‘intermediar’ entre el core y el mundo exterior.


Eso implica que el circuito lleva más de una alimentación, a veces, incluso lleva un regulador interno, pero además también lleva ‘traductores de nivel’ que se encargan de adaptar las tensiones entre las diferentes partes del integrado.


Eso aumenta la complejidad de la circuitería y exige un trabajo de diseño y componentes extras (con el espacio que ocupan, o sea, precio).


El resultado de todo esto es que mientras que un AVR que puede funcionar en el rango de 2,5 a 5V sin problemas, fabricado en nodos de 45 a 90 nm, tendría que ser rediseñado para poderse fabricar con nodos de 10 nm o menos, añadiendo innecesariamente componentes dentro y un gran trabajo de rediseño, para, al final apenas ahorrar un porcentaje de circuito desdeñable debido a que de todas formas una parte muy importante se tiene que continuar ‘haciendo grande’ para poder soportar los 5V. Amén del hecho de añadir reguladores y demás.


Lo mismo aplica a los microcontroladores ARM de 32 bits que habitualmente trabajan a 3,3V, aunque algunos de ellos llevan algún regulador interno con partes que trabajan a menor tensión, pero siguen estando fabricados con nodos de 45nm.


Peor aún es el caso de los reguladores de tensión, aunque sean conmutados y más  complicados para la gran cantidad de tensiones que suele haber presente en algunos de estos circuitos (a veces más de 30).


Es decir, gran cantidad de aplicaciones que conllevan un gran volumen de producción no se fabrican ni tiene sentido que se fabriquen con tecnologías punta.


Volvemos de nuevo a visitar el campo de los rendimientos decrecientes, en este caso, en cuanto a tecnología, y que volveremos a revisitar en la entrada con respecto a Android, FPGA, 5G, etc.


En este caso, podemos concluir que hay una serie de ‘tecnologías adecuadas o establecidas’ para una gran parte de las aplicaciones que se basan en lo que muchos consideran ‘tecnologías obsoletas’, pero que sin embargo incluyen grandes partes de lo que es el mercado de los semiconductores.


Ahí cobran mucho sentido los fabricantes de especialidades. Los reguladores de tensión, más ubicuos incluso que los microcontroladores, son un gran ejemplo, ya que la mayoría se fabrica con tecnologías bastante particulares donde los nodos pequeños apenas tienen cabida.


El uso de transistores bipolares en lugar de MOSFET’s es una de las causas.


Sin embargo, el concepto importante con el que hay que quedarse hoy es que una parte cada vez más importante de la electrónica utiliza ‘tecnologías adecuadas’, que se hallan en un punto muerto en el cual apenas se avanza hacia tecnologías nuevas puesto que es un mercado relativamente estancado, y con capitales moviéndose más lentamente y de forma mucho más ajustada.


Ahí entra en juego precisamente la automoción, ya que tira más aún de estas tecnologías, siguiendo unas pautas de desarrollo muy diferentes de lo que son las tecnologías en desarrollo.


Ahondaremos en este otro frente, el de las tecnologías en desarrollo como los Smarphones, ordenadores, Android (y otros sistemas operativos) en otro momento, puesto que la relación entre electrónica de consumo, nuevas tecnologías de integración, automoción y tecnologías establecidas, que también podríamos llamar commodities, son una parte más de este entuerto.


Pero por hoy ya me he excedido.


Saludos.

Beamspot