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:
De hecho, puede configurar ese encabezado para que sea un programador SPI, como se describe, por ejemplo, en FT232R Bitbang Programmer. Como 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.
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:
Como se puede compilar en windows
ResponderBorrarHola, muchas gracias por comentar, al final del post hay un hipervinculo con "descargue aqui avrdude.exe con soporte FTDI bitbang para Windows 11", aunque ten en cuenta que hoy en dia es muy facil montar linux en una máquina virtual bajo windows, con VMware-workstation por ejemplo.
Borrar