Leer Primero

Como se utiliza este blog?

jueves, 22 de julio de 2021

FTDI como programador ISP

Bienvenido a mi blog, hoy hablaremos un poco de Future Technology Devices International Ltd, comúnmente conocida por su abreviatura FTDI, la cual es una empresa privada escocesa especializada en tecnología Universal Serial Bus (USB). FTDI desarrolla, fabrica y da apoyo a dispositivos y sus correspondientes controladores de software (drivers) para la conversión de transmisiones serie RS-232 o TTL a señales USB, con el fin de permitir la compatibilidad de dispositivos heredados con los ordenadores modernos. El adaptador interfaz USB serial FT232RL permite comunicarte a través del puerto USB de tu PC con la UART (Universal Asynchronous Transmitter Receiver) de un microcontrolador, un arduino o cualquier otro dispositivo que tenga este tipo de interfaz. Usualmente la interfaz UART se emplea para la descarga de programas (mediante bootloader), para la configuración de los parámetros de operación en equipos electrónicos, o como interfaz para mensajes de depuración en sistemas embebidos. Por lo tanto, este adaptador es ideal para todos los estudiantes, técnicos e ingenieros que trabajan con microcontroladores y tarjetas electrónicas.

Las ventajas del adaptador interfaz USB serial FT232RL es que puede utilizarse con sistemas electrónicos cuyo funcionamiento es a +5 y +3.3 voltios cc, pudiendo seleccionar el voltaje de las señales correspondientes mediante un jumper o switch. La interfaz UART soporta 7 u 8 bits de datos, 1 ó 2 bits de parada, y paridad par/impar/marca/espacio/sin paridad y el Buffer de recepción es de 128 Bytes mientras el de transmisión es de 256 bytes. Vamos a ver en el post de hoy como utilizar los 6 pines amarillos que traen los conversores FTDI, como un ISP normal. La placa de conexión USB-TTL FTDI habitual, se ve así:

Recientemente, se encuentra una variante del tablero que se muestra a continuación. Sin embargo, algunos usuarios se preguntan ¿para qué sirven los pines de encabezado amarillos adicionales en esta placa que están etiquetados como ISP? ¿pueden realmente usarse como un ISP/ICSP estándar?

De acuerdo con el diagrama a continuación, proporcionado por el fabricante, se etiquetan los 6 pines en cuestión:

El fabricante acota: "Como nueva característica, hay disponible un encabezado ISP de 6 pines. Con él, avrdude y avrftdi, se puede programar los cargadores de arranque (bootloaders) Atmels y Arduino. Es necesaria una versión especial de avrdude con el controlador FTDI compilado". El encabezado se utiliza para el "modo Bit Bang síncrono" como se documenta aquí: Modos Bit Bang para FT232R y FT245R (Nota de aplicación AN_232R-01, Documento de referencia No .: FT_000339)

De hecho, puede configurar ese encabezado para que sea un programador SPI, como se describe, por ejemplo, en FT232R Bitbang ProgrammerComo el fabricante no dio el soporte necesario, ni libero el software que se debe utilizar, se hace necesario bajar el código fuente de avrdude de github y volver a compilarlo para que soporte ISP en esta placa con el FT232RL. Para este ejemplo se utilizara una versión de linux como ubuntu, antes de compilar se debe instalar <libusb> y <libftdi> ejecutando los comandos:

sudo apt-get install libusb-1.0-0-dev
sudo apt-get install libftdi-dev

Ahora compilamos, hacemos avrdude después de extraer el archivo y navegamos a su carpeta:

./configure --enable-libusb --enable-libftdi
make

Ahora debemos buscar la configuración correcta, dentro del archivo que viene con avrdude <avrdude.conf> se debe encontrar:

# see http://www.geocities.jp/arduino_diecimila/bootloader/index_en.html
# Note: pins are numbered from 1!
programmer
  id    = "arduino-ft232r";
  desc  = "Arduino: FT232R connected to ISP";
  type  = "ftdi_syncbb";
  connection_type = usb;
  miso  = 3;  # CTS X3(1)
  sck   = 5;  # DSR X3(2)
  mosi  = 6;  # DCD X3(3)
  reset = 7;  # RI  X3(4)
;

El mapeo de pines a números funcionara con base en la siguiente tabla:

Los números se refieren al número de bits (es decir, en el rango de 0 a 7) en el byte de datos "bit banged". Podemos ver de la tabla anterior que, por ejemplo, el MISO en el encabezado ICSP está asociado al CTS en el FT232RL. Por lo tanto, MISO es el bit de datos 3, del mismo modo, SCK es el bit de datos 5, y así sucesivamente.

Intentemos ahora probar ejecutando el siguiente comando:

./avrdude -C avrdude.conf -carduino-ft232r -pm328p  -v

Ahora debemos corregir permisos creando un archivo en la carpeta /etc/udev/rules.d/ llamado <71-FTDI.rules> dentro de esté ira:

SUBSYSTEMS=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", MODE:="0666"

Los números pueden variar para su tablero. Debe encontrar el proveedor y el identificador del producto. En Ubuntu puedes hacer lsusb y ver (entre otras cosas):

Bus 003 Device 061: ID 0403:6001 Future Technology Devices International, Ltd FT232 Serial (UART) IC
                       ^^^^ ^^^^

Tengamos en cuenta los dos números hexadecimales, que se copian en el archivo de reglas. Después de hacer eso, le decimos al sistema que vuelva a cargar las reglas ejecutando el comando:

sudo udevadm control --reload-rules

A continuación, desconectamos y volvemos a conectar la placa FTDI para que se actualicen o recarguen los nuevos permisos.

Ahora vamos a verificar si se detecta una placa de prueba que posee un ATmega328P (como la Diavolino), utilizaremos cable dupont hembra-hembra o un cable plano ribbon de 6 hilos uno-a-uno, avrdude debería funcionar y leer el chip:

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x1e950f (probably m328p)
avrdude: safemode: hfuse reads as DE
avrdude: safemode: efuse reads as FD

avrdude: safemode: hfuse reads as DE
avrdude: safemode: efuse reads as FD
avrdude: safemode: Fuses OK (E:FD, H:DE, L:FF)

avrdude done.  Thank you.


Como acabamos de constatar, esta placa FTDI se puede utilizar tanto como un convertidor de USB a serie, como también un programador ICSP para los chips AVR.

Descarga aquí avrdude.exe con soporte FTDI bitbang para Windows 10




AVR DUDE = AVR Downloader/UploaDEr, AVRdude es un software de código abierto que se utiliza para programar Microcontroladores AVR de Atmel (ahora microchip). También puede usarlo para programar EEPROM's, memorias Flash e incluso fusibles y bits de bloqueo. ademas al instalar AVRDUDE éste no toca la variable %PATH%, por lo que no causará ningún problema con el IDE de Arduino.


Quieres aportar algo que complemente este articulo? crees que hay algo que se deba corregir? Escríbenos este blog es para todos.

Finalmente recuerda que en https://jorgechac.blogspot.com nos dedicamos a construir una electrónica mejor! y apoyamos el proyecto CTC GO! (Creative Technologies in the Classroom) que es un programa de educación steam personalizable.


Si te sirvió deja un comentario de agradecimiento, comparte el post en tus redes sociales o recomiéndale el blog a un amigo, eso me motiva a seguir realizando estos pequeños posts y espero que vuelvas a mi blog, publico nuevo material con base en los softwares y apps que utilizo y la experiencia que he adquirido. Por último si deseas colaborar voluntariamente y crees que mi trabajo y mi tiempo lo ameritan, considere hacer una pequeña donación a mi NEQUI +573177295861.



También te puede interesar:


Convierte fácilmente una Fuente ATX de PC en una Fuente para alimentar tus proyectos Arduino y/o Raspberry Pi

USB a Serial en Arduino - Generalidades

Como Grabar el Bootloader de Arduino

Como se utiliza este blog?

Algunos lectores me han preguntado sobre temas específicos que ya he publicado, pero que no pueden encontrarlo o visualizarlo, así que vamos a ver como se utiliza este blog, como buscar dentro del blog, como comprar y como anunciar tu empresa, producto, servicio y/o negocio.

1. De que trata este blog?

Esté es un blog personal donde se publican artículos, descargas y noticias, acerca del apasionante mundo del software, los sistemas, la informática y la electrónica. También se realizan algunos post sobre electricidad y Programación, y por lo general, todo lo que tenga que ver con tecnología.

2. Cómo se navega en este blog?

En la parte superior o cabecera del blog, podrás encontrar las pestañas o categorías, allí se organizan los posts por tema, si bajas encontraras los posts organizados por fecha de publicación, además si haces click en la pestaña <inicio>, volverás a la página inicial donde se mostrara el último tema publicado.



En la columna izquierda también hay un ítem llamado <archivo del blog> allí el mismo blogger lleva un consecutivo o historial de las entradas publicadas, organizadas cronológicamente:



En las columnas laterales del blog encontraras publicidad de los patrocinadores, la cual ofrece hipervínculos a páginas externas, donde por lo general compraras artículos de interés, la mayoría de páginas web se mantienen gracias a la publicidad!





3. Cómo se busca?

En la parte superior derecha del blog encontraras la casilla "buscar en este blog", allí te ubicaras y escribirás el tema que investigas o del cual quisieras indagar y harás click en el botón buscar, si hay algo publicado sobre ello, aparecerá en el medio de la pantalla, en el cuerpo del blog. Trata de utilizar palabras claves en tus búsquedas.



4. Quien es el autor y como me contacto con el?

En la columna derecha encontraras una sección llamada <acerca de mí>, allí aparecen mis datos y la información personal básica, como no tengo que esconderme ni le debo nada a nadie, muestro mi foto real y mi número personal de contacto, también aparece mi perfil de LinkedIn y hasta puedes enviarme un mensaje de WhatsApp, hay un código QR que permite agregarme o encontrarme más fácil en WhatsApp. No soy millonario, ni hijo de papi y mami, me considero una persona sencilla, que trata de salir adelante igual que tú.



5. Porque al volver a visitar un post este ha cambiado?

Cuando se escribe y publica un post, se hace con información de la fecha en la que se publicó, sin embargo, al transcurrir el tiempo, algunos parámetros pueden cambiar o un procedimiento se puede mejorar, así que el autor edita el post con la nueva información y lo que él crea importante y pertinente, por ejemplo, se publico el instalador del software WinRAR 5.9 pero a la fecha ya hay una nueva versión 6.1 en este caso el autor edita el post y aunque el titulo sea 5.9 en ese post encontraras la última versión, de esa forma se evita publicar un nuevo post del mismo tema, llenando el blog solo de relleno y refrito, personalmente yo prefiero calidad que cantidad.

6. Cómo se compra?

En la parte superior derecha del blog, podrás encontrar la pestaña <Ventas>, allí se publican los productos que vendo, los cuales puedes comprar vía NEQUI o mercado libre. Algunos son de diseño y fabricación propia, las placas pcb se mandan hacer a pcbway, jlcpcb o aisler, empresas chinas profesionales que se dedican hacer circuitos impresos de alta calidad.




7. Cómo me puedo anunciar?

Si te interesa mi tipo de público lector, mi trafico, y quieres dar a conocer tu empresa, producto, servicio y/o negocio, puedes publicar en mi blog, contáctame vía email en mi correo jorgechac@icloud.com


Finalmente recuerda que en https://jorgechac.blogspot.com nos dedicamos a construir una electrónica mejor!





martes, 20 de julio de 2021

Ventas



1. Arduino Pro Mini + 1 Regleta Pin Macho 24 pines + 1 Regleta Pin Macho 6 pines en L.

$35.000 + envió




Arduino Pro Mini de 5v/16MHz es una placa de microcontrolador basada en la MCU Atmel, el ATmega328P-AU tiene 32 kB de memoria flash para almacenar código (de los cuales 0,5 kB se utilizan para el gestor de arranque o bootloader). Tiene 2 kB de SRAM y 1 kBs de EEPROM.

Descripción completa del articulo en:

https://jorgechac.blogspot.com/2022/08/arduino-pro-mini.html


Incluye:


1 Arduino Pro Mini 5v/16MHz

1 Regleta Pin Macho 24 pines

1 Regleta Pin Macho 6 pines en L


No incluye conversor serial usb



2. ATX Power Board Fuente Regulada Dual para Arduino, ESP32, Raspberry Pi Pico, proyectos y/o laboratorio.

$30.000 + envió



Convierte fácilmente una fuente ATX de PC, en una fuente para alimentar nuestros proyectos Arduino, ESP32  y/o Raspberry Pi, así como servomotores, motoreductores, relés, optoacopladores. triacs, transistores bipolares de puerta aislada (IGBT's), etc.

Esta placa de alimentación, fue creada para proporcionar un acceso rápido a los voltajes típicos necesarios al desarrollar proyectos con Arduino, ESP32 y/o Raspberry Pi. Después de adquirirla, tendrás acceso a cuatro voltajes diferentes (+3,3Vcc, +5Vcc, +12Vcc y -12Vcc) cada uno con su propio fusible reemplazable y conectores de salida tipo poste de rosca.

Descripción completa del articulo en:

https://jorgechac.blogspot.com/2020/09/convierte-facilmente-una-fuente-atx-de.html



Incluye:


1 ATX Power Board


No incluye fuente ATX
No incluye puntas
No incluye postes de plástico


3. Raspberry Pi Pico, Microcontrolador Rp2040 + 1 Regleta Pin Macho 40 Pines

$40.000 + envió



Microcontrolador RP2040, que cuenta con un procesador dual core ARM Cortex M0+ de 32 bits funcionando a 133 MHz, acompañado de 264KB de RAM y 2MB de almacenamiento integrado.

Descripción completa del articulo en:

https://jorgechac.blogspot.com/2021/02/nuevo-microcontrolador-raspberry-pi-pico.html




Incluye:

1 raspberry pi pico.

1 regleta 40 pines macho.


No incluye cable micro USB



En esta sección encontraras artículos electrónicos en venta:


Artículos de calidad y diseños propios, probados, que podrás pagar vía nequi o en mi mercadolibre.com.co


domingo, 11 de julio de 2021

Arduino UNO Rev3

Bienvenido a mi blog, hoy hablaremos un poco de la placa Arduino UNO Rev3 o también llamada Genuino Uno, Arduino es una plataforma de creación de electrónica de código abierto, la cual está basada en hardware y software libre, flexible y fácil de utilizar para los creadores o desarrolladores, para hacerlo, utiliza el lenguaje de programación Arduino (basado en Wiring) y el Software Arduino IDE (basado en Processing, una herramienta basada en Java). Recordemos que Arduino es un proyecto, un ecosistema y no solo un modelo concreto de placa, Arduino Uno Rev3 es una placa basada en el Microcontrolador ATmega328P de 8 bits. Es una de las placas más ampliamente utilizadas de la familia Arduino y una de las mejores documentadas.

Antes de iniciar quiero recordar que el nuevo Arduino IDE 2.0 esta ahora basado en el marco Eclipse Theia.

Theia se basa en el mismo código subyacente que el popular y ampliable "Visual Studio Code" de Microsoft, esto permite que Arduino avance a un editor más potente y moderno y ahora el DARK MODE o Modo Oscuro viene nativo.

Arduino Uno Rev3 a grandes rasgos cuenta con 14 pines de E/S digitales (6 pines se pueden usar como ~ PWM), 6 entradas analógicas, un resonador cerámico de 16MHz, una conexión USB, conector de alimentación, un cabezal ICSP y un botón de reinicio o reset.


La placa Arduino UNO Rev3 contiene:

1. Microcontrolador ATmega328P: En este caso el Microcontrolador o MCU Atmel ATmega328P tiene memoria flash programable de 32 KB, SRAM de 2 KB, EEPROM de 1 KB (ROM programable y borrable eléctricamente). El microcontrolador ATmega328P opera entre +1.8 y +5.5 voltios cc, trabaja a una frecuencia de 16 MHz, contiene 26 pines de entrada/salida en los que hay 23 líneas de E/S de uso general. La placa Arduino UNO Rev3 actualmente la podemos encontrar con el microcontrolador ATmega328 tanto en encapsulado DIP (dual in-line package) de 28 pines, como SMD - PQFP (Plastic Quad Flat Package) de 32 pines.

2. Puerto USB: Tiene un puerto USB Hembra Tipo B para la conexión. Aunque algunos técnicos opinan que es un conector demasiado voluminoso (grande) y ordinario, su punto fuerte es la robustez, ya que el conector micro USB por ejemplo, tiende con el tiempo, a levantarse y arrancarse de la tarjeta de tanto conectar y desconectar el cable y cuando es así, suele despegarse con todo y pistas, averiando la tarjeta permanentemente. El conector USB tiene principalmente 3 propósitos. El primero cargar nuestro programa ya compilado en la memoria flash del micro, el segundo conectarnos al puerto Serie (UART) predefinido en cada Arduino para comunicarnos durante la ejecución del programa y el tercero, alimentar de corriente a Arduino.

Pin 1 => Alimentación con un voltaje de +5VDC y máximo 500mA.

Pin 2 y 3 => Sirven para la transmisión de datos del BUS.

Pin 4 => GND, Masa o tierra.

3. Puerto de alimentación: el Arduino UNO Rev3 se puede alimentar con un adaptador de CA a CC, una batería, una power bank, etc. Se utiliza un enchufe de centro positivo de 5.5x2,1mm para alimentar la placa Arduino. El voltaje de alimentación de entrada recomendado es de +7 a +12 Vcc.


Según pruebas reales en laboratorio, se ha expuesto que Arduino UNO R3 consume unos ~46mA en reposo y por si mismo (es decir sin nada conectado). Así que con el diseño actual no se puede afirmar que esté modelo de placa sea eficiente energéticamente. Arduino UNO R3 original (hecho en Italia) con una fuente de alimentación externa de 9 VCC, tenemos que el regulador lineal de voltaje NCP1117 comienza a apagarse térmicamente con un consumo de corriente de poco más de 700mA, del mismo modo que a 12VCC, comienza a apagarse térmicamente con un consumo de corriente de poco más de 250mA. Sin embargo, tengamos en cuenta que en esta etapa la temperatura externa de este regulador de baja caída LDO es de alrededor de 95°C a 110°C, extremadamente caliente y capaz de reducir la vida útil de los componentes cercanos en la placa.

4. Chip de interfaz USB: El microcontrolador ATmega16U2, encontrado en las placas Arduino UNO Rev3 originales, pertenece a la compañía Microchip, utiliza una arquitectura AVR de 32 registros de 8 bits cada uno, este microcontrolador es de bajo consumo y cuenta con 16 KB de memoria flash, 512 bytes de memoria EEPROM y 512 bytes de memoria SRAM, también dispone de un oscilador interno para la sincronización de instrucciones, 22 pines de entradas y salidas, una interface UART, 2 de SPI y 5 pines PWM. En la placa electrónica Arduino UNO Rev3, tenemos un chip ATmega16U2 programado con el firmware necesario para la transmisión de información con el protocolo USB, de esta manera cuando nos conectamos a través del puerto USB de nuestro ordenador a la placa Arduino, el encargado de comunicarse, situándose como intermediario entre el ordenador y el ATmega328P, es el microcontrolador ATmega16U2.


5. Pines de E/S digitales: En la placa Arduino UNO Rev3 contamos con 14 pines de E/S digitales numerados del pin D0 al pin D13 estos pines se pueden utilizar como entradas o salidas mediante las funciones pinMode (), digitalWrite () y digitalRead () y tienen una resistencia pull-up interna (desconectada por defecto) de 20-50 kOhms, de igual forma de estos 14 pines, los pines número 3, 5, 6, 9, 10 y 11 son pines ~ PWM de 8 bits con la función analogWrite () (modulación de ancho de pulso). Los pines PWM simulan la salida de hardware analógico mientras que otros pines simulan la salida analógica de software. Estos 6 pines PWM encuentran aplicaciones en las que necesitamos regular algo, por ejemplo la velocidad de un motor DC o el brillo de una lámpara. Algunos de estos pines de entrada/salida digitales también pueden servir como interfaz SPI (interfaz periférica en serie) desarrollada por Motorola, recordemos que a diferencia de I2C, en SPI solo puede existir un dispositivo maestro y no existe límite para el número de esclavos. En los pines Rx (D0) Tx (D1), tenemos el puerto serial UART, que se utiliza para recibir y transmitir datos en serie TTL, estos pines están conectados a los pines correspondientes del micro ATmega16U2 y en los pines D2 y D3 tenemos las interrupciones externas, estos pines se pueden configurar para activar una interrupción en un valor bajo, un flanco ascendente o descendente o un cambio de valor. Consulte la función attachInterrupt () para obtener más detalles. Trabajan a máximo 40mA.

6. Pines de entrada analógica: Hay un total de 6 pines analógicos en la placa Arduino UNO Rev3 cada uno de las cuales proporciona 10 bits de resolución (es decir, 1024 valores diferentes). Por defecto miden desde tierra hasta 5 voltios, aunque es posible cambiar el extremo superior de su rango usando la función analogReference(). Los 6 pines de entrada analógica numerados del pin A0 al pin A5 toman la señal de los sensores analógicos y la convierten en un valor digital. Los pines miden el voltaje, no la corriente porque tienen un valor muy alto de resistencia interna. Entonces, el valor de la corriente es mucho menor en comparación con el voltaje, además los 6 pines indicados como entradas analógicas (A0-A5), también pueden ser configurados como entradas o salidas digitales. Resaltar que en los pines A4 (SDA) y A5 (SCL) tenemos el protocolo I2C (TWI), el software Arduino incluye una biblioteca <Wire> para simplificar el uso del bus I2C.

7. Pines de potencia

  • Vin: Es el voltaje de entrada a la placa Arduino/Genuino cuando se está usando una fuente de alimentación externa, recomendable alimentarlo con +7 a +12 Vcc. Se debe tener precaución ya que la entrada de voltaje por este pin no está protegida por el diodo ante inversión de polaridad, la conexión va directamente a la entrada del regulador NCP1117. Si se esta alimentando al Arduino por el jack, por este pin Vin también saldrá dicho voltaje suministrado.
  • 5V: este pin emite 5V regulados desde el regulador NCP1117 en la placa.
  • 3V3: este pin genera una fuente de alimentación regulada de 3.3 voltios generada por el regulador LP2985-33 integrado. El consumo máximo de corriente de este pin es de 50mA.
  • GND: Pines de tierra o masa.
  • AREF: Este es la referencia de voltaje del conversor Análogo/Digital (ADC) del micro, de 10 bits, este ADC convierte los voltajes entrantes entre 0V y 5V a valores enteros entre 0 y 1023. Esto da como resultado una resolución de aproximadamente 4.8mV. AREF se puede usar en lugar de la referencia estándar de 5V para el extremo superior del espectro analógico; por ejemplo, si desea usar el ADC para monitorear una señal que tenía un rango de 0 a 1.5 voltios, podría obtener la escala completa del ADC conectando AREF a una señal de 1.5V. ¡OJO NO CONECTE UNA SEÑAL FUERA DE LA GAMA 0V A 5V O FREIRA EL MICROCONTROLADOR! Tenga en cuenta que para que esto funcione, debe ejecutar analogReference(EXTERNAL); antes de usar analogRead(). También, después de cambiar la referencia analógica, las primeras lecturas de analogRead() pueden no ser precisas. Para obtener más información, consulte gratis aquí la Referencia analógica.
  • IOREF: este pin en la placa Arduino/Genuino proporciona la referencia de voltaje con la que opera el microcontrolador, es un voltaje correspondiente a la E/S de esa placa, por ejemplo, Arduino UNO suministrara 5v por este pin.

8. Regulador de voltaje 5V: el trabajo principal del regulador lineal de voltaje NCP1117 es regular el voltaje de entrada y salida de la placa Arduino Uno Rev3. Regula el voltaje para el pin de 5V, se debe considerar que si el voltaje de alimentación del puerto es superior a 12 V (como vimos anteriormente), el regulador de voltaje puede sobrecalentarse y dañar la placa.

9. Botón de reinicio maestro: Este botón es útil para resetear la placa Arduino UNO Rev3 y reiniciar el programa desde el origen. Es útil cuando el programador quiere ejecutar el programa desde el punto de partida. Al presionar el botón de reset, envía el pulso lógico al pin de reset del microcontrolador ATmega328P, cuando se resetea la placa, se está reseteando el procesador principal ATmega328P, sin cerrar la conexión USB, que es mantenida por el chip ATmega16U2 si es un Arduino UNO Rev3 Original, o el CH340G si es un Arduino UNO Rev3 genérico o clon.

10. Pines de encabezado de ICSP ATmega16U2: ICSP es In-Circuit Serial Programming. En este caso concreto se utiliza para programar el Microcontrolador ATmega16U2 con el firmware necesario para la transmisión de información con el protocolo USB.

11. Leds Rx/Tx: los Leds Rx y Tx de la placa parpadearán cuando los datos se transmitan a través del chip USB a serie ATmega16U2 y la conexión USB a la computadora.

12. Pines de encabezado de ICSP ATmega328P: ICSP es In-Circuit Serial Programming. En este caso concreto se utiliza para programar el Microcontrolador ATmega328P con el bootloader necesario para trabajar en el IDE de Arduino. También se pueden pasar sketch's por estos pines.

13. Fusible: Fusible de restablecimiento PTC, corriente de retención 500mA, corriente de disparo 1A y resistencia inicial máxima 1 ohm. Para Arduino se mandan hacer de ese color especifico, en las placas más nuevas este fusible lleva ahora el símbolo de "infinito" ∞.

14. Diodo de Prevención de Reflujo: diodo DO-214AC 1kV 1A.

15. Regulador de voltaje 3.3V: regulador LP2985-33 de baja deserción SOT-23-5 regula el voltaje para el pin de +3.3V por el cual se maneja máximo 50mA.

16. Mosfet pch: Mosfet de canal P SOT-23 de 2A 1.5V un Mosfet es un transistor cuyo funcionamiento no se basa en uniones PN, como el transistor bipolar, sino que está basado en la estructura MOS, la placa Arduino UNO Rev3 puede ser alimentada por el puerto USB o por el jack DC de corriente y este mosfet es el que switchea y elige automáticamente una sola de las fuentes de alimentación (en caso de que las 2 estén presentes a la vez).

17. Varistor para la Linea de Datos USB: Varistor de 5.5V en la placa Arduino UNO Rev3, es el encargado de proteger los dispositivos USB de la electricidad estática.

18.  Oscilador de Cristal del ATmega16U2: circuito de oscilación de 16 MHz para el ATmega16U2.

19. Resonador Cerámico: Es un dispositivo que en su interior posee el cristal de 16MHz (CSTCE16M0V53-R0) y la capacitancia necesaria para el circuito de oscilación del ATmega328P, por esta razón posee 3 pines de SMD (2 para el oscilador y tierra para la capacitancia). Los resonadores cerámicos están construidos con cerámica piezoeléctrica de alta estabilidad. Con capacitancia de carga incorporada, estos resonadores cerámicos SMD eliminan la necesidad de capacitores de carga externos.

20. LED de encendido: El Led de encendido de la placa indica que la alimentación suministrada a la placa esta presente. Dicho led por lo general siempre es verde.


Programación

1. El Arduino UNO Rev3 se puede programar con la descarga del software Arduino IDE.

El ATmega328P en el Arduino UNO Rev3 viene pregrabado con un cargador de arranque (bootloader) y es básicamente un archivo ".hex" que se ejecuta cuando se energiza la placa. Es similar al BIOS/UEFI que se ejecuta en una PC al inicializarse. El bootloader de Arduino está programado en la memoria flash del ATMega328P y ocupa 0,5 KB de los 32KB disponibles. El bootloader se comunica usando el protocolo STK500 original. El bootloader de Arduino es, esencialmente, el bootloader STK500 versión 2 de Atmel.

2. Otra forma de programar tu Arduino UNO Rev3 es compilar el código por separado usando el compilador AVR-GCC para generar el archivo ejecutable y luego usar Avr-ObjCopy para convertirlo en un archivo .HEX finalmente, Avrdude se usa para cargar el archivo hexadecimal en el tablero.

AVRDUDE es un acrónimo de AVR Downloader/UploaDEr. Es un software de código abierto que se utiliza para programar microcontroladores AVR de atmel (ahora microchip). También puede usarlo para programar EEPROM's, memorias Flash e incluso fusibles y bits de bloqueo. ademas al instalar AVRDUDESS éste no toca la variable %PATH%, por lo que no causará ningún problema con el IDE de Arduino.



Correspondencia entre los pines del ATmega328P y la placa Arduino UNO R3


También contamos con el "Interactive Board Viewer" del Arduino UNO Rev3 donde podemos ver la vista del esquemático original, la vista PCB y el visor 3D de la placa (cortesía: Altium 365 Viewer):
 
 


Dimensiones Reales de la Arduino UNO Rev3 en mm




Que diferencia hay entre el ATmega328P-PU del Arduino UNO y el ATmega328P-AU del Arduino NANO?

Obviamente aparte de la diferencia física del encapsulado tipo DIP (ATmega328P-PU) y PQFP (ATmega328P-AU), esta la diferencia en el numero de pines. El ATmega328P-PU tiene 28 pines y el ATmega328P-AU (SMD) tiene 32 pines, este ultimo cuenta aparte de las mismas funciones del ATmega328P-PU con 4 pines extras los cuales son otro Vcc, otro GND, A6 y A7, por esta razón en el Arduino NANO contamos en las entradas analógicas con A6 y A7 por estos pines extras que ofrece el ATmega328P-AU.


Tengamos en cuenta que esta ya es una placa muy básica, hoy en día ya tenemos microcontroladores de 32 bits, que funcionan a mucha más velocidad y soportan muchos más periféricos, hay placas como la TTGO T-CALL donde se incluye wifi, bluetooth y conectividad GSM, todo en una sola placa, además ya es muy normal agregar a la misma placa sensores de movimiento de varios ejes, coprocesadores criptográficos y muchas cosas más, así que como ves, ya este modelo de Arduino UNO R3 se puede considerar "muy modesto".


Quieres aportar algo que complemente este articulo? crees que hay algo que se deba corregir? Escríbenos este blog es para todos.

Recuerda que en https://jorgechac.blogspot.com nos dedicamos a construir una electrónica mejor! y apoyamos el proyecto CTC GO! (Creative Technologies in the Classroom) que es un programa de educación steam personalizable.


Si te sirvió deja un comentario de agradecimiento, comparte el post en tus redes sociales o recomiéndale el blog a un amigo, eso me motiva a seguir realizando estos pequeños posts y espero que vuelvas a mi blog, publico nuevo material con base en los softwares y apps que utilizo y la experiencia que he adquirido. Por último si deseas colaborar voluntariamente y crees que mi trabajo y mi tiempo lo ameritan, considere hacer una pequeña donación a mi NEQUI +573177295861.





También te puede interesar:


viernes, 2 de julio de 2021

Google Play Store le dirá adiós al formato APK y solo permitirá AAB desde agosto de 2021

Bienvenido a mi blog, hoy hablaremos un poco de la actualización al formato .aab ya que ahora los desarrolladores Android, que quieran publicar sus apps en la tienda de Google Play Store, tendrán que prestar atención a los cambios que llegan. A partir de agosto de 2021, la tienda no publicará aplicaciones que estén en el estándar APK, en su lugar, deberán estar en Android App Bundle (AAB).

Para aquellos que ya tienen sus aplicaciones, no tienen que hacer nada. La tienda seguirá funcionando para las apps ya existentes y los usuarios no experimentarán cambios en su experiencia. Estos cambios aplican solo para las nuevas aplicaciones que quieran ser distribuidas a través de la tienda de Android. Los App Bundles de Android no son algo nuevo, Google nos los presentó en el Google I/O de 2018 y la empresa asegura que más de un millón de aplicaciones ya funcionan en este formato; algunas son Adobe, Duolingo, Gameloft, Netflix,  y Twitter. «Para traer los beneficios de AAB a más usuarios y centrarnos en la distribución moderna de Android, le exigiremos estos cambios a los desarrolladores», enfatiza Google en su blog.

Una de las promesas de Android es que con este estándar las aplicaciones serán más pequeñas, ocupando 15~20% menos espacio en la memoria, lo que según la empresa asegura que se descarguen e instalen más rápido. En esencia, un App Bundle contiene todos los recursos de una aplicación, aunque no se puede instalar directamente en el móvil. Es decir, se incluye la base y el resto de recursos como lo son gráficos, layouts y textos para todas las configuraciones posibles. Teniendo tantas cosas dentro, hay una pregunta que se hace sola: ¿Cómo puede ser que una de las ventajas de los App Bundle sea que ocupan menos espacio? La respuesta es que el App Bundle que crea el desarrollador ocupa más que un APK. El tamaño menor está en la descarga del APK que llega a los usuarios y que Google Play genera a partir de dicho App Bundle.



Si un desarrollador crea una aplicación y la publica en formato APK, lo normal es que se incluyan todos los recursos como, por ejemplo, gráficos en los 30 idiomas que soporta la aplicación. Por simplificar, si cada gráfico son 100 Kb, tendremos 3.000 KB dentro de dicho APK. En un App Bundle en formato .AAB se incluye absolutamente todo, pero los servidores de Google analizan su contenido y generan archivos APK con todas las configuraciones posibles y que incluyen sólo los recursos de dicha configuración. Es decir, el usuario se descarga un APK que en vez de tener los gráficos para 30 idiomas, sólo incluye los que tiene configurados en el móvil. En vez de 3.000 KB, son 100 o 200 KB.

Mientras que las aplicaciones publicadas con APK son un único APK, las publicadas como App Bundle tienen un APK de base y varios APK para distintas configuraciones, llamados Split APK. Finalmente en resumen, App Bundle es un reemplazo de APK a la hora de publicar una aplicación en Google Play, pero no a la hora de instalarlo. En el móvil se siguen instalando archivos APK, aunque no uno, sino varios e incluyendo sólo lo necesario para que funcione en tu móvil. Con el App Bundle que sube el desarrollador, Google genera infinidad de archivos APK personalizados que permiten que la descarga de aplicaciones sea más rápida. App Bundle y APK no son conceptos opuestos, sino complementarios. Es una buena implementación, aunque innegablemente complica la instalación de aplicaciones desde fuentes externas.

Ventajas de Android App Bundle

  • La principal ventaja de Android App Bundle es la reducción de tamaño de las aplicaciones y juegos. De media las aplicaciones ven reducido su tamaño en un 20% en comparación con un APK universal.
  • Gracias a las aplicaciones modulares Google Play puede personalizar su aplicación de manera eficiente para cada dispositivo. Esto se traduce a que las aplicaciones se descarguen e instalen más rápido.
  • Los desarrolladores pueden lanzar más rápido sus aplicaciones y actualizaciones, ya que no tienen que lanzar múltiples APK, Google Play es la que se encarga de crear el APK específico según la configuración del dispositivo.
  • Android App Bundle ofrece a los desarrolladores una guía adicional de informes y optimización en la Play Console, opción que no está disponible con los APK.
  • Las aplicaciones modulares permiten añadir el nuevo requisito de 64 bits sin aumentar significativamente el tamaño de la aplicación. Google Play entregará el código nativo apropiado para cada dispositivo.
  • Los desarrolladores pueden reducir los tiempos de desarrollo diseñando, construyendo y probando funciones como módulos de funciones dinámicas independientes.
  • Los tiempos de compilación son más rápidos desde una aplicación modular. Las aplicaciones monolíticas son más lentas de construir.
  • Las aplicaciones modulares ahora también se adaptan a los funciones del dispositivo, como las capacidades de realidad aumentada o realidad virtual, o dependiendo del país del usuario, con lo que el APK generado añade las funciones compatibles para el dispositivo.
  • Las aplicaciones pueden instalar funciones a pedido según sea necesario durante la instalación, o bien desinstalar funciones que ya no son necesarias.
  • Android App Bundle protege al desarrollador contra la pérdida de claves. Ahora podrán podrán iniciar sesión y confirmar su identidad con Google y obtener una nueva clave de carga. Con un APK normal, si pierde su clave de firma no podrá recuperarla y no podrías actualizar su aplicación.
  • Se puede actualizar una clave débil o comprometida a una nueva clave. Así las aplicaciones pueden solicitar una clave criptográficamente más sólida.
  • Viene integrada la biblioteca Play Core, con lo que las aplicaciones pueden solicitar y realizar una actualización sin que el usuario salga de la aplicación.
  • Finamente, la última razón que da Google es que el Android App Bundle es el futuro, ya que más herramientas para mejorar la distribución de aplicaciones y juegos, están en camino.



Quieres aportar algo que complemente este articulo? crees que hay algo que se deba corregir? Escríbenos este blog es para todos.

Recuerda que en https://jorgechac.blogspot.com nos dedicamos a construir una electrónica mejor! y apoyamos el proyecto CTC GO! (Creative Technologies in the Classroom) que es un programa de educación steam personalizable.



Si te sirvió deja un comentario de agradecimiento, comparte el post en tus redes sociales o recomiéndale el blog a un amigo, eso me motiva a seguir realizando estos pequeños posts y espero que vuelvas a mi blog, publico nuevo material con base en los softwares y apps que utilizo y la experiencia que he adquirido. Por último si deseas colaborar voluntariamente y crees que mi trabajo y mi tiempo lo ameritan, considere hacer una pequeña donación a mi NEQUI +573177295861.



También te puede interesar: