CIAA-Z3R0

140 views
Skip to first unread message

Eric Pernia

unread,
Oct 9, 2017, 5:27:00 PM10/9/17
to ciaa-h...@googlegroups.com, Pablo Ridolfi, Ariel Lutenberg, Martin Ribelotta, Mariano Matias Bustos
Buenas tardes,

Estuve avanzando con la idea de la placa que le he comentado a varios integrantes hace unos meses. Martín me ayudó mucho y de hecho hizo todo el trabajo pesado del ruteo de la misma mientras que yo elegí el micro y entre ambos definimos forma y componentes. También armé bastante de la sAPI (aún faltan algunos módulos) y probé el debugger (que me lo recomendó Martín).

El motivo de esta placa es tener una alternativa a la EDU-CIAA de costo muy inferior (menor a los 10 dólares, en unos días tendremos el precio) y tamaño muy reducido (DIP40, un poquito más larga pero casi la mitad de ancho que la picoCIAA). Además el debugger va a estar separado para que no duela dejar un micro por cada aparato donde quieran poner la placa y poder con un solo debugger flashear varias placas, también quizá podamos incluirle un bootloader USB (pero esta verde el tema). Otra idea de Martín es migrar el Firmware  para que cada placa pueda hacer las veces de debugger o microcontrolador.
 
Empezó todo porque mis alumnos en UNQ del primer cuatrimestre querían hacer varios proyectos y el costo de la EDU-CIAA frente a un Arduino hacia que muchos no quieran comprarla. Entonces me pareció que tener una alternativa más barata era muy importante para el proyecto.

Por otro lado está el tema del CIAA-BOT que Leandro está haciendo para su tesis y yo ayudándolo y queríamos una placa más barata y chica para armar pequeños robots que quiero usar en un proyecto de extensión de UNQ donde se enseña a chicos de secundaria con robots.

Finalmente está el tema de los cursos de CIAA para INET en los cuales usamos al EDU-CIAA y ahora quieren hacer unos cursos específicos de robótica. Con esto último aceleré el proceso para que no terminen decantando por usar un Arduino por el tema de precios y factor de forma. En esto Ariel llevó a cabo varias reuniones con sus autoridades donde los ha convencido de que esta era una buena opción.

Entonces la placa esta está pensada para educación y proyectos muy chicos y va a tener el micro más chico de la familia CIAA, un EFM32HG de 25 MHz, 64 KB de flash y 8 KB de RAM, es un micro de 2 dólares en bajas cantidades:

Como cosas importantes a tener en cuenta:
  • El USB es SOLO DEVICE.
  • Tiene 6 entradas analógicas. 12-bit 1 Msamples/s
  • 5 entradas de comparadores analógicos.
  • Tiene 35 GPIOs. 16 asynchronous external interrupts
  • Tiene un IDAC en lugar de DAC.
  • 3 Timers (16 bits). 3×3 Compare/Capture/PWM channels
  • 1 I2C.
  • 2 UART/SPI/SmartCard
  • 1 UART low energy.
  • Encriptación por Hardware AES 128-bit keys
  • RTC

La placa la llamamos "CIAA Z3R0" (cero) y sería así, con opción de soldar pines (como un DIP40) o borde castellated para soldar sobre otro diseño:

Imágenes integradas 1    


Imágenes integradas 2


Es lo mejor en cuanto a precio / periféricos encontré.

Es mucho más simple para explicar bajo nivel como ser assembler o registros de periféricos que el de la EDU-CIAA que es un micro hiper complicado y de por si dual core, los registros de periféricos son mucho más simples.

El ADC es de 12 bits en lugar de 10.

Del lado del Firmware, grabación y demás ya está todo OK y funcionando, faltaría la parte de la sAPI para SPI de este micro y ejemplos de USB. Ya están los scripts de complicación y debug y la plantilla de Embedded IDE, estoy emprolijándola antes de subirla.

El repo del PCB está en:

https://github.com/martinribelotta/ciaa-z3r0

Quería saber qué les parece para incluirla de manera oficial a las CIAAs soportadas por el proyecto. En 2 o 3 semanas tendríamos la primer tanda de placas aquí.


Abrazos.
Eric.
3dview002.png (537×518)

Carlos Pantelides

unread,
Oct 9, 2017, 6:45:25 PM10/9/17
to Eric Pernia, ciaa-h...@googlegroups.com, Pablo Ridolfi, Ariel Lutenberg, Martin Ribelotta, Mariano Matias Bustos
Buenísimo sres.

Entiendo que con cambiar BOARD y TARGET en project.mk el código de aplicación existente debería funcionar casi sin modificaciones?


usaron kicad? habría que darla de alta allí

saludos

--
Has recibido este mensaje porque estás suscrito al grupo "CIAA-Hardware" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a ciaa-hardware+unsubscribe@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.



--

Eric Pernia

unread,
Oct 9, 2017, 7:20:08 PM10/9/17
to Carlos Pantelides, ciaa-h...@googlegroups.com, Pablo Ridolfi, Ariel Lutenberg, Martin Ribelotta, Mariano Matias Bustos
Todavía no está integrado en firmware v2 pero sería la idea. Desde Embedded IDE ya se puede usar aunque le estoy haciendo unas mejoras.

Abrazos.
Eric.

Leandro Lanzieri Rodriguez

unread,
Oct 10, 2017, 7:02:16 AM10/10/17
to CIAA-Hardware
Felicitaciones! Muy buen trabajo. La verdad es que van a ser muy útiles por su tamaño y bajo costo, creo que resultan perfectas para proyectos que no requieran un micro tan potente como el de la EDU-CIAA. Esperemos que lleguen pronto!

Eric Pernia

unread,
Oct 10, 2017, 1:11:36 PM10/10/17
to Carlos Pantelides, Eduardo Filomena, ciaa-h...@googlegroups.com, Pablo Ridolfi, Ariel Lutenberg, Martin Ribelotta, Mariano Matias Bustos
Gracias!!

Cuando sepemos los precios y tiempos les comento por acá.

Abrazos.
Eric.

diego javier brengi

unread,
Oct 10, 2017, 1:27:32 PM10/10/17
to ciaa-h...@googlegroups.com
Muy buena!
Me parece bien sumarla a la familia CIAA.
> * El USB es SOLO DEVICE.
> * Tiene 6 entradas analógicas. 12-bit 1 Msamples/s
> * 5 entradas de comparadores analógicos.
> * Tiene 35 GPIOs. 16 asynchronous external interrupts
> * Tiene un IDAC en lugar de DAC.
> * 3 Timers (16 bits). 3×3 Compare/Capture/PWM channels
> * 1 I2C.
> * 2 UART/SPI/SmartCard
> * 1 UART low energy.
> * Encriptación por Hardware AES 128-bit keys
> * RTC
>
> La placa la llamamos "CIAA Z3R0" (cero) y sería así, con opción de
> soldar pines (como un DIP40) o borde castellated para soldar sobre otro
> diseño:
>
> Imágenes integradas 1
>
>
> Imágenes integradas 2
>
>
> Es lo mejor en cuanto a precio / periféricos encontré.
>
> Es mucho más simple para explicar bajo nivel como ser assembler o
> registros de periféricos que el de la EDU-CIAA que es un micro hiper
> complicado y de por si dual core, los registros de periféricos son mucho
> más simples.
>
> El ADC es de 12 bits en lugar de 10.
>
> Del lado del Firmware, grabación y demás ya está todo OK y funcionando,
> faltaría la parte de la sAPI para SPI de este micro y ejemplos de USB.
> Ya están los scripts de complicación y debug y la plantilla de Embedded
> IDE, estoy emprolijándola antes de subirla.
>
> El repo del PCB está en:
>
> https://github.com/martinribelotta/ciaa-z3r0
>
> Quería saber qué les parece para incluirla de manera oficial a las CIAAs
> soportadas por el proyecto. En 2 o 3 semanas tendríamos la primer tanda
> de placas aquí.
>
>
> Abrazos.
> Eric.
>
> --
> Has recibido este mensaje porque estás suscrito al grupo "CIAA-Hardware"
> de Grupos de Google.
> Para cancelar la suscripción a este grupo y dejar de recibir sus
> mensajes, envía un correo electrónico a
> ciaa-hardwar...@googlegroups.com
> <mailto:ciaa-hardwar...@googlegroups.com>.
> Para acceder a más opciones, visita https://groups.google.com/d/optout.

--
Mg. Ing. Diego Javier Brengi INTI - Micro y Nanoelectrónica (CMNB)
Av. General Paz 5445 San Martín - B1650KNA
Edificio 42 Buenos Aires * Argentina
Directos:(5411) 4724-6430 o 4724-6315
Conmut.: (5411)4724-6200/6300 Internos: 6730 o 6315
________________________________________________________________________

Ricardo Casimiro

unread,
Dec 6, 2017, 11:04:22 PM12/6/17
to CIAA-Hardware
me viene como anillo al dedo, se puede programar en eclipse? seria muy buen punto de partida, ademas, ya programo stm32 y el st link tambien me viene como anillo al dedo

Eric Pernia

unread,
Dec 6, 2017, 11:10:22 PM12/6/17
to Ricardo Casimiro, CIAA-Hardware
Si, el micro es un Silicon Labs Happy Gecko. Se puede programar con Eclipse, Embedded IDE o el IDE del Fabricante. Estoy terminando la sAPI para ese micro también asi se programa igual que la EDU-CIAA.

Saludos.
Eric.

--
Has recibido este mensaje porque estás suscrito al grupo "CIAA-Hardware" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a ciaa-hardware+unsubscribe@googlegroups.com.

Ricardo Casimiro

unread,
Dec 7, 2017, 4:29:26 PM12/7/17
to CIAA-Hardware
buenisimo, me estuve fijando y puedo usar el Embedded IDE con los templates para el efm32, pero parece que la sAPI todavia no tiene soporte para timer's verdad? te cuento, para finalizar una materia(el lunes 18 de dic.) voy a presentar un brazo robotico tipo scara y necesito usar timer por interrupcion, uart y adc (y el resto puros algoritmos en c) hasta ahora esta portado para pic, avr y stm32, y estaria buenisimo tenerlo portado para la ciaa, me faltaria lo de timers, vi que la sAPI esta basada en emlib, tengo una duda con este codigo
#include "em_timer.h"
...
void TIMER0_IRQHandler(void)
 {

 TIMER_IntClear(TIMER0, TIMER_IF_OF);
 }
...
NVIC_EnableIRQ(TIMER0_IRQn);
TIMER_IntEnable(TIMER0, TIMER_IF_OF);
TIMER_Init_TypeDef timerInit =            
  {.enable     = true,.debugRun= true,.prescale= timerPrescale1,.clkSel= timerClkSelHFPerClk,    
.fallAction = timerInputActionNone,.riseAction = timerInputActionNone,.mode       = timerModeUp,             
.dmaClrAct  = false,.quadModeX4 = false,.oneShot= false,.sync = false,
  };
  TIMER_TopSet(TIMER0, TOP); 

el codigo compila bien pero como calculo el  valor de TOP de la func. TIMER_TopSet ? segun lei en la doc. el valor TOP se escribe directamente en el registro de comparacion, preferentemente quiero ese valor en microsegundos :D 
ah, podria portar el stm32f103c8t6 a sAPI basandome en HAL(lo de timer, usart y gpio lo hago directamente de CMSIS con registros) si les gusta la idea me puedo sumar
saludos

Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a ciaa-hardwar...@googlegroups.com.

Ricardo Casimiro

unread,
Dec 7, 2017, 10:28:23 PM12/7/17
to CIAA-Hardware
disculpa, estaba portando el proyecto para la CIAA Z3R0 y no puedo incluir math,h, estoy usando Embedded IDE 

Eric Pernia

unread,
Dec 11, 2017, 8:18:40 PM12/11/17
to Ricardo Casimiro, CIAA-Hardware
Ya tenés la placa Z3R0? Ojo que hay que cortarle una pista porque si la conecta por USB sin ese cambio se puede quemar. Además es necesario por ahora el debugger o un conversior USB-Serie (para grabarle usando el bootloader) para grabar el programa.

En cuanto a portar para STM estoy renovando la sAPI, si querés comenzá a portarla como está ahora y luego actualizamos (no son taaantos cambios y lo que hagas de base va a venir muy bien).

En cuanto a los timers aún no los usé los de Silicon Labs del EFM así que no te sabría decir, justamente por eso falta esa parte de la sAPI para ese micro, todavía no llegué. Por eso eso todavía está publicado pero de manera preliminar, aún faltan completar algunos drivers. En esta web hay un montón de ejemplos que podés usar de base: https://www.silabs.com/products/mcu/32-bit/makers-guide-to-the-iot, también en las Notas de Aplicación (tiene montones) y la documentación de la emLib: https://siliconlabs.github.io/Gecko_SDK_Doc/efm32hg/html/group__TIMER.html

Para saber como pasar de el valor TOP en cuentas de comparación del Timer a microsegundos necesitas saber el prescaler del Timer y el valor de frecuencia del clock que uses en el misimo, por ejemplo el clock del MCU. Si usas el clock del micro tenes la variable SystemCoreClock que guarda el valor.


La idea es tratar de dejar disponible la API del fabricante y homogeneizar todas las placas soportadas del proyecto usando la sAPI. Así se pueden hacer programas portables entre las diferentes placas y a su vez se puede elegir que usar. A veces por optimizar conviene no usar algunas funciones del fabricante y pegarle directo a registros.

Saludos.
Eric.



Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a ciaa-hardware+unsubscribe@googlegroups.com.

Ricardo Casimiro

unread,
Dec 12, 2017, 9:46:52 AM12/12/17
to CIAA-Hardware
no la pude comprar todavia estoy ahorrando(beca de $500 -_-) para el mes que viene la pido, que pista hay que cortar?
con respecto a los timers ya lo entendi :D si estoy usando fcpu=25mhz, si pongo un prescaler de 25000 y pongo el valor del timer a 1000 voy a tener una interrupcion de 1 segundo
con lo de stm32, usando HAL(del fabricante) usando timer y usart(lo mas basico) me ocupa 21kb en la flash, si uso puro registros me ocupa menos de 1kb en la flash! 

me parece buenisima la idea de la sAPI, una consulta, la Z3R0 tiene algun tipo de proteccion contra ruido o algo para uso industrial? la combinacion Z3R0 y Embedded IDE me parece buenisima, yo creo que muchos se van a prender en esto

Eric Pernia

unread,
Dec 12, 2017, 12:07:52 PM12/12/17
to Ricardo Casimiro, CIAA-Hardware
Ya lo van a hacer para las próximas placas lo de la pista. En la CIAA-Z3R0 en la primera tanda de 100 que se fabricó (y única hasta que se vendan) hubo una confusión del micro en el BOM, en lugar del EFM32HG322F64, se puso el EFM32HG222F64 que es idéntico pero no incluye USB y en su lugar tiene unos GPIOs y lo que pasa es que en uno de esos pines el 322 tiene un Vin de 5V de USB para un regulador interno y el 222 no tiene y le estas metiendo 5V a un pin que no es 5V tolerante, entonces o se le cambia el micro al 322 o se le corta la pista y listo (obviamente no funciona el USB en las que tienen el 222).

La CIAA-Z3R0 no tiene ninguna protección, es el micro pelado, con fuente y USB para que la puedan soldar directo en un diseño o bien:

Imágenes integradas 4


Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a ciaa-hardware+unsubscribe@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages