Bienvenido a los foros de FT81x Manía. Te invitamos a regístrate totalmente gratis. Disfruta de tu experiencia con un grandes amigos y Staff.

Welcome, Guest
You have to register before you can post on our site.

Username
  

Password
  





Search Forums

(Advanced Search)

Forum Statistics
» Members: 96
» Latest member: tomy
» Forum threads: 156
» Forum posts: 525

Full Statistics

Online Users
There are currently 2 online users.
» 0 Member(s) | 2 Guest(s)

Latest Threads
desiredshoe
Screen flash during power...

Forum: Codigos
Last Post:  desiredshoe
11-12-2018, 06:23 42
» Replies: 5
» Views: 51
puddletown
Touch screen not working?...

Forum: Pantallas FT810, FT811 y FT813
Last Post:  puddletown
05-12-2018, 17:32 42
» Replies: 0
» Views: 15
lorcap
Bitmap corruption when sw...

Forum: Codigos
Last Post:  lorcap
29-11-2018, 13:40 55
» Replies: 2
» Views: 40
lorcap
Power Hungry FT81x

Forum: Codigos
Last Post:  lorcap
22-11-2018, 11:36 51
» Replies: 1
» Views: 87
TFTLCDCyg
NHD 7" en nucleo STM32 F7...

Forum: Library GD23ZU
Last Post:  TFTLCDCyg
21-11-2018, 01:41 53
» Replies: 1
» Views: 51

 
  Instalar IDE Arduino en Linux
Posted by:  lightcalamar - 18-09-2017, 11:03 16 - Forum: IDEs Desarrollo - Replies (1)

1a Parte.

Introducción.

En este hilo pretendo, que todos instalen correctamente su propio IDE de Arduino y que logré compilar en core STM32. No es dificil, sin embargo a traves de varias entregas del mismo veran lo fácil y sencillo que puede ser.

Soy consciente que no somos muchos los que usamos Linux para IDE de Arduino. Mucha de la documentación que existe por la red es erronea, al menos a la hora de recrear los script para que den permisos y no morir en el intento. Muchos (la mayoria) lo que han realizado es copiar y pegar la información.

ERROR GRAVE. Pues de aquí su mal funcionamiento o incorrecto. No pretendo escribir que Linux sea mejor, sino que existe esta posibilidad como sistema operativo alternativo.

Cada versión de IDE a instalar a diferencia de win necesita los ajustes de permisos de usuario y este es el problema a muchos le echa atras por no estar bien definidos. Se realiza este tutorial a través de la fecha de este mensaje la versión de Arduino 1.8.4 en modo 32 bits (tengo un PC de esta arquitectura)

La pueden descargar del siguiente; IDE Arduino 1.8.4 32 Bits

Advierto que no va ser una guía o tutorial de como usar Linux, sino de como se instala el IDE. Para mayor comodidad subrayaré y en negrita las palabras que tendran que buscar por ejemplo en Google, siendo este un ejemplo.
Hasta el proximo mensaje ...

Print this item

  Adición de variantes en el core genérico de danieleff
Posted by:  TFTLCDCyg - 16-09-2017, 18:42 35 - Forum: STM32 - Replies (3)

Hace algunas semanas, danieleff publicó un procedimiento general que permite adicionar variantes de MCU en el core STM genérico de su autoría. Aparentemente es muy sencillo, sin embargo es muy fácil perderse, ya que requerimos de conocer detalles de programas como el STM32CubeMX, así como de la configuración de relojes de los micros STM32.

Siguiendo los pasos uno a uno podemos crear nuevas variantes partiendo de existentes. Esto nos permitirá ampliar poco a poco el acervo de placas que podemos usar. Solo debemos tener en cuanta algunas precisiones que no viene en la guía de danieleff.

La mejor forma de poner en práctica, es creando una variante para la discovery STM32F429 que tengo en la mesa de pruebas. Aunque el core genérico tiene una variante específica, he notado que no funciona como debería, ya que reporta solo 1 Mb en flash y 128Kb en RAM (1 Mb/128 Kb), cuando debería ser 2 Mb/192 Kb.

?mage

Hay que tomar en cuenta que se usan 64Kb de RAM para tareas de gestión con el micro, siendo una regla general, descontar 64 Kb a la RAM que podemos usar en estas placas. La F429 tiene 256 Kb en total, por lo que podemos usar solo 256 Kb - 64 Kb = 192 Kb. Esta RAM de gestión no se puede usar como medio de programación, se denomina coupled memory. En placas como las F407, solo se pueden usar 128 Kb, de los 192 Kb que tienen como especificación.

Esto lo podemos corregir, creando una variante adicional para la F429ZI. Señalaremos los pasos que hemos seguido para conseguir una variante 100% funcional, tomando como referencia el procedimiento de danieleff

Procedimiento para crear una variante

Paso 1: Asignar una carpeta y nombre a la variante

Debemos crear una carpeta con el nombre de nuestra variante nueva, en la ruta: C:\arduino-1.8.4\hardware\STM32GENERIC_danielefF\STM32\variants
En este ejemplo, llamaremos a la variante: F429ZI_DISCO

?mage

Paso 2: Copiar los archivos de la carpeta de la variante similar a nuestra placa

Los archivos base de la variante que viene en el core genérico, están en la ruta: C:\arduino-1.8.4\hardware\STM32GENERIC_danielefF\STM32\variants\DISCOVERY_F429ZI 
Debemos copiarlos en la carpeta de la variante nueva.

?mage

Los archivos son: 

Code:
Idscript.Id
variant.c
variant.h

Se pueden modificar con ayuda de un editor de texto.

Paso 3: Despliegue de la variante en el selector de placas del IDE

Hasta ahora no hemos hecho modificaciones a la variante, solo agregamos una carpeta, para poder visualizarla en el selector debemos modificar el archivo boards.txt. Este es el descriptor de la variante que estamos usando como base

Code:
################################################################################
# Discovery F429ZI board

DISCOVERY_F429ZI.name = Discovery F429ZI

# TBD: correct memory settings here and in ldscript !!
[color=#ff3333]DISCOVERY_F429ZI.upload.maximum_size=1048576[/color]
[color=#ff3333]DISCOVERY_F429ZI.upload.maximum_data_size=131072[/color]

DISCOVERY_F429ZI.build.core=arduino
DISCOVERY_F429ZI.build.board=DISCOVERY_F429ZI

DISCOVERY_F429ZI.build.mcu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard
DISCOVERY_F429ZI.build.series=STM32F4
DISCOVERY_F429ZI.build.variant=DISCOVERY_F429ZI

DISCOVERY_F429ZI.build.extra_flags=-DSTM32F429ZI -DSTM32F429xx -DHSE_VALUE=8000000
# TODO f_cpu, and check SystemClock_Config() 
[color=#ff3333]# DISCOVERY_F429ZI.build.f_cpu=180000000L[/color]

DISCOVERY_F429ZI.upload.protocol=STLink
DISCOVERY_F429ZI.upload.tool=stlink_upload

DISCOVERY_F429ZI.menu.usb.SerialUSB=Serial [Virtual COM port]
DISCOVERY_F429ZI.menu.usb.SerialUSB.build.extra_flags_usb=-DMENU_USB_SERIAL
DISCOVERY_F429ZI.menu.usb.SerialMSC=Mass storage [testing, see documentation]
DISCOVERY_F429ZI.menu.usb.SerialMSC.build.extra_flags_usb=-DMENU_USB_MASS_STORAGE
DISCOVERY_F429ZI.menu.usb.Disabled=Disabled, no USB

DISCOVERY_F429ZI.menu.serial.SerialUSB=SerialUSB
DISCOVERY_F429ZI.menu.serial.SerialUSB.build.extra_flags_serial=-DMENU_SERIAL=SerialUSB
DISCOVERY_F429ZI.menu.serial.SerialUART1=SerialUART1 [PA9/PA10]
DISCOVERY_F429ZI.menu.serial.SerialUART1.build.extra_flags_serial=-DMENU_SERIAL=SerialUART1

Este segmento es el descriptor de la placa Discovery F429ZI, debemos copiarlo y pegarlo como siguiente bloque. Hay que hacer algunos cambios de nombre para adaptarlos a nuestra variante F429ZI DISCO. Si en este momento guardamos el archivo, tendremos dos bloques con el mismo identificador, pero solo se mostrará el primeros de ellos

?mage

El bloque con los ajustes adecuados para nuestra variante debe quedar de la siguiente forma:

Code:
################################################################################
# F429ZI_DISCO board

F429ZI_DISCO.name = F429ZI DISCO

# TBD: correct memory settings here and in ldscript !!
F429ZI_DISCO.upload.maximum_size=2097152
F429ZI_DISCO.upload.maximum_data_size=196608

F429ZI_DISCO.build.core=arduino
F429ZI_DISCO.build.board=F429ZI_DISCO

F429ZI_DISCO.build.mcu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard
F429ZI_DISCO.build.series=STM32F4
F429ZI_DISCO.build.variant=F429ZI_DISCO

F429ZI_DISCO.build.extra_flags=-DSTM32F429ZI -DSTM32F429xx -DHSE_VALUE=8000000
# TODO f_cpu, and check SystemClock_Config() 
F429ZI_DISCO.build.f_cpu=180000000L

F429ZI_DISCO.upload.protocol=STLink
F429ZI_DISCO.upload.tool=stlink_upload

F429ZI_DISCO.menu.usb.SerialUSB=Serial [Virtual COM port]
F429ZI_DISCO.menu.usb.SerialUSB.build.extra_flags_usb=-DMENU_USB_SERIAL
F429ZI_DISCO.menu.usb.SerialMSC=Mass storage [testing, see documentation]
F429ZI_DISCO.menu.usb.SerialMSC.build.extra_flags_usb=-DMENU_USB_MASS_STORAGE
F429ZI_DISCO.menu.usb.Disabled=Disabled, no USB

F429ZI_DISCO.menu.serial.SerialUSB=SerialUSB
F429ZI_DISCO.menu.serial.SerialUSB.build.extra_flags_serial=-DMENU_SERIAL=SerialUSB
F429ZI_DISCO.menu.serial.SerialUART1=SerialUART1 [PA9/PA10]
F429ZI_DISCO.menu.serial.SerialUART1.build.extra_flags_serial=-DMENU_SERIAL=SerialUART1

Destacan la asignación del nombre de variante, cantidad de flash, RAM, y he quitado el comentario para f_cpu. Más adelante veremos como obtener ese dato.

Guardamos el archivo; al reiniciar el IDE, ya podremos ver nuestra variante en el selector de MCU. 

?mage

Los ajustes siguen siendo visuales, no se han cambiado opciones que modifiquen el desempeño de la placa seleccionada, es decir, sólo tenemos una copia de las características de la variante base.

Print this item

  El video original
Posted by:  lightcalamar - 15-09-2017, 14:04 44 - Forum: La cantina, el Bar o el Pub - No Replies

Sultans of Swing by Dire Straits (1978)



Print this item

  Politica de Cookies
Posted by:  admin - 15-09-2017, 13:41 58 - Forum: Normas de los Foros FT81xmania - No Replies

Política de cookies
Una cookie es un pequeño fichero de texto que se almacena en su navegador cuando visita casi cualquier página web. Su utilidad es que la web sea capaz de recordar su visita cuando vuelva a navegar por esa página. Las cookies suelen almacenar información de carácter técnico, preferencias personales, personalización de contenidos, estadísticas de uso, enlaces a redes sociales, acceso a cuentas de usuario, etc. El objetivo de la cookie es adaptar el contenido de la web a su perfil y necesidades, sin cookies los servicios ofrecidos por cualquier página se verían mermados notablemente. Si desea consultar más información sobre qué son las cookies, qué almacenan, cómo eliminarlas, desactivarlas, etc., les rogamos se dirija a este enlace
Cookies utilizadas en este sitio web
Siguiendo las directrices de la Agencia Española de Protección de Datos procedemos a detallar el uso de cookies que hace esta web con el fin de informarle con la máxima exactitud posible.

Este sitio web utiliza las siguientes cookies propias:

  • Cookies de sesión, para garantizar que los usuarios que escriban comentarios en el blog sean humanos y no aplicaciones automatizadas. De esta forma se combate el spam.

Este sitio web utiliza las siguientes cookies de terceros:
  • Google Analytics: Almacena cookies para poder elaborar estadísticas sobre el tráfico y volumen de visitas de esta web. Al utilizar este sitio web está consintiendo el tratamiento de información acerca de usted por Google. Por tanto, el ejercicio de cualquier derecho en este sentido deberá hacerlo comunicando directamente con Google.
  • Redes sociales: Cada red social utiliza sus propias cookies para que usted pueda pinchar en botones del tipo Me gusta o Compartir.

Desactivación o eliminación de cookies
En cualquier momento podrá ejercer su derecho de desactivación o eliminación de cookies de este sitio web. Estas acciones se realizan de forma diferente en función del navegador que esté usando.Aquí le dejamos una referencia a los principales nanegadores.
Notas adicionales
  • Ni esta web ni sus representantes legales se hacen responsables ni del contenido ni de la veracidad de las políticas de privacidad que puedan tener los terceros mencionados en esta política de cookies.
  • Los navegadores web son las herramientas encargadas de almacenar las cookies y desde este lugar debe efectuar su derecho a eliminación o desactivación de las mismas. Ni esta web ni sus representantes legales pueden garantizar la correcta o incorrecta manipulación de las cookies por parte de los mencionados navegadores.
  • En algunos casos es necesario instalar cookies para que el navegador no olvide su decisión de no aceptación de las mismas.
  • En el caso de las cookies de Google Analytics, esta empresa almacena las cookies en servidores ubicados en Estados Unidos y se compromete a no compartirla con terceros, excepto en los casos en los que sea necesario para el funcionamiento del sistema o cuando la ley obligue a tal efecto. Según Google no guarda su dirección IP. Google Inc. es una compañía adherida al Acuerdo de Puerto Seguro que garantiza que todos los datos transferidos serán tratados con un nivel de protección acorde a la normativa europea. Puede consultar información detallada a este respecto en este enlace. Si desea información sobre el uso que Google da a las cookies le adjuntamos este otro enlace.
  • Para cualquier duda o consulta acerca de esta política de cookies no dude en comunicarse con nosotros a través de la sección de contacto.

Print this item

  Instalación Core STM32GENERIC (Windows)
Posted by:  RndMnkIII - 15-09-2017, 12:56 55 - Forum: Instalación Cores STM32 - Replies (2)

Saludos, en esta entrega vamos a explicar como instalar el Core STM32GENERIC, para poder compilar y subir sketches Arduino utilizando la familia de microcontroladores STM32. Hay que decir que dentro de los STM32 tenemos varias subfamilias de micros que si bien comparten una serie de características comunes, también poseen diferencias que es conveniente conocer. Básicamente tenemos las siguientes series:

  • STM32F1XX, podemos decir que es la gama de entrada a la familia STM32, un micro muy popular dentro de esta categoría es el STM32F103C8T6 por tener muy buena relación precio/prestaciones y ser con el que se originó el soporte STM32 en Arduino. Con una frecuencia de funcionamiento de 72MHz, y una capacidad de 20kb de SRAM y 128kb de Flash. Dentro de esta serie hay micros con mayor capacidad de RAM,FLASH y puertos de I/O, pero también se refleja en el precio.
  • STM32F4XX, gama más avanzada que la anterior. Incluye soporte para memorias externas de varios tipos (SRAM, NAND FLASH, SDRAM,...) y aumenta la velocidad de proceso hasta los 168MHz. Como característica realmente diferenciadora es que todos los micros de esta gama cuentan con unidad de coma flotante para realizar cálculos con números decimales de 32bits mediante hardware.
  • STM32F7XX, esta gama posee prestaciones todavía superiores a la anterior, mejorando el rendimiento de la unidad de coma flotante y las prestaciones en general mediante la inclusión de una memoria caché en el propio micro. Llegan hasta los 216MHz de velocidad.
La mejor forma de conocer cada micro concreto es consultar la documentación que facilita el fabricante (hoja de datos, manuales de usuario y de programación, notas de aplicación, etc). En la sección Manuales STM32 podéis consultarla para los principales micros que utilizamos y a los que da soporte el core STM32GENERIC.

Para instalar el soporte para el STM32GENERIC partimos de una versión de Arduino 1.8.1 ó superior. Seguir los siguientes pasos:
  1.  Instalar el soporte para tarjetas Arduino Due, ya que nos van a proveer del toolchain ó herramientas especificas para generar y subir el código para procesadores ARM Cortex M. Para ello desde Arduino desde el menú Herramientas > Placa xxx  > Gestor de placas... ?mage
    después seleccionar el paquete Arduino SAM Boards (32-bits ARM Cortex-M3) by Arduino: ?mage y pulsar el botón instalar:
  2. Una vez instalado dicho paquete cerrar el Arduino IDE.
  3. Descargar el archivo STM32GENERIC-master.zip de la siguiente dirección: https://github.com/danieleff/STM32GENERIC
  4. Descomprimir el contenido de dicho archivo dentro del directorio de instalación de Arduino en nuestro PC dentro de una carpeta que crearemos y llamaremos STM32GENERIC, quedándonos así:?mage
  5. Iniciar Arduino y veremos que el menú Herramientas > placa nos sale una nueva familia de placas bajo el título: STM32GENERIC for STM32 boards:
     
  6. Además ciertas placas como la BLACK F407VE/ZE/ZG admiten variaciones dentro de la gama, pudiendo seleccionar un modelo más concreto todavía en el menú Specific board que nos aparece según vemos en la captura: ?mage
  7. Seleccionaremos la placa en base al modelo hardware que poseamos. Sobre la elección de placas y como comprarlas ya se hablará en otro artículo de ello.
  8. Además si nos fijamos en la carpeta donde hemos descomprimido el core STM32GENERIC, dentro de la carpeta STM32, hay dos archivos: platform.txt y boards.txt
  9. Si editamos el archivo platform.txt, vemos que contiene una serie de opciones ya preconfiguradas para localizar donde se encuentra el toolchain gnu-arm (compilador, enlazador y otras herramientas) y los flags u opciones de compilación, en windows este suele encontrarse dentro de la carpeta de usuario en: C:\Users\<USUARIO>\AppData\Local\Arduino15\packages\arduino\tools\arm-none-eabi-gcc que es donde previamente se instaló el soporte para las placas Arduino Due.
  10. En el archivo boards.txt es donde aparecen las definiciones de las placas STM32 del menú del IDE Arduino. Aquí no es necesario tocar nada.
Con esto finaliza este breve tutorial de como instalar el soporte para el core STM32GENERIC. En otra entrega se verá que opciones poseen las placas STM32 para conectarse a nuestro PC para subir el código e incluso iniciar una sesión de depuración.

Hasta la próxima entrega!

Print this item