Autor Tema: Mi primer proyecto con Cortex M7, un Atmel SAM S70 a 300Mhz  (Leído 1708 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2784
Mi primer proyecto con Cortex M7, un Atmel SAM S70 a 300Mhz
« en: 05 de Mayo de 2017, 19:27:22 »
.

Me decidí, ayer recibí los micros Atmel SAM S70 que pedí a Mouser, también un Kinetis MK26 porque descubrí que es igual que el MK66 pero sin Ethernet y más barato. Voy a usar el SAM S70 para reemplazar el Kinetis MK66 en uno de mis diseños actuales, a veremos que tal, me parece un micro fantástico, Cortex M7, 300Mhz, 2Mb de Flash, en TQFP100, TQFP144 y varios BGA, y además es más barato que muchos M4 (a 7-8€ en Microchip Direct desde una pieza).

Si todo me sale como espero, dejaré de usar los STM32 y los Kinetis y me quedaré únicamente con los SAM de Atmel. También tienen otros Cortex, M0, M3 y M4, que aún deben de ser más baratos. La compra directamente a Microchip Direct, los M7 están entre los 7 y 8€ desde una pieza. Además de nuevo he podido volver a pedir samples a Microchip/Atmel con un pequeño truco, porque mis dominios estaban sin web desde hacía tiempo y por hotmail/gmail y similares no te hacen ni caso, he agotado mi cupo de 3 pedidos/mes, con 18 micros SAM S70 TQFP100 y algunos TQFP144.

He pedido a Mouser una placa de evaluación SAME70-XPLD para los SAM E70 (igual que el S70, pero con Can bus y Ethernet). Me he pillado el manual de esta placa de evaluación, para ver los esquemas, y más o menos lo veo todo claro, salvo algunos detalles. En los esquemas se ve el oscilador a cuarzo de 12Mhz, con sus dos condensadores, ninguna resistencia de por medio, ni la típica en serie en una patilla del cuarzo, ni la típica de 1Mohm en paralelo.

El acceso para programar/debugear, sin problemas por SWD;  SWDCLK, SWDIO, GND, +3v3 y RESET. Aunque no tengo muy claro si el RESET es necesario, con los STM32 si no cableas el RESET no puedes hacer Debug (comprobado), en otros micros he leído que no es necesario. Por si acaso, cablearé ese pin, mejor que esté y no haga falta.

En el USB, veo ese bloque de diodos TVS, supongo que para proteger el puerto de la estática. Nunca los he instalado en mis diseños con micros y USB, no se si son importantes. Me llama la atención el montón de condensadores de desacoplo que necesita, cuento 14 en el esquema (me parece una barbaridad), supongo que en los TQFP100 serán menos.

El tarjetero SD, con acceso paralelo a 4 bit, bueno lo probaré, por ahora mis tarjeteros SD iban por SPI, supongo que el SDHC/SDIO a 4bit debe de ser mucho más rápido. Lo que me desconcierta del esquema son las resistencias de pull-up en todas las lineas. No he profundizado todavía en este micro, pero supongo que al igual que los STM32 o los Kinetis se podrán activar resistencias internas de pull-up o pull-down en cualquier puerto, ¿ entonces para que ponen resistencias en placa ?.

Y creo que nada más. El footprint con su símbolo para el SAM S70, como era de esperar no lo he encontrado, pero lo solucioné rápido pillando el encapsulado TQFP100 y TQFP144, y como símbolo modificando unos que he encontrado para otros SAM M0 y M4.

Entorno de desarrollo, Atmel Studio con GCC. Ya lo he estado tanteando y es muy similar a Eclipse, sin problemas, muy bien documentado, con todas sus librerías y un generador de código muy similar al Cube de ST.  Programador/Debugger, el Jlink de Segger o el Atmel ICE que compré en Mouser.














« Última modificación: 06 de Mayo de 2017, 01:09:03 por planeta9999 »

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2173
Re:Mi primer proyecto con Cortex M7, un Atmel SAM S70 a 300Mhz
« Respuesta #1 en: 05 de Mayo de 2017, 19:51:42 »
Felicitaciones por el salto!!!
Mantenenos al tanto de los avances!

En los esquemas se ve el oscilador a cuarzo de 12Mhz, con sus dos condensadores, ninguna resistencia de por medio, ni la típica en serie en una patilla del cuarzo, ni la típica de 1Mhz en paralelo.

Nunca usé esas resistencias en ningun diseño con ningun micro... Me parece que con los cuarzos comunes esas resistencias no son necesarias.

El tarjetero SD, con acceso paralelo a 4 bit, bueno lo probaré, por ahora mis tarjeteros SD iban por SPI, supongo que el SDHC/SDIO a 4bit debe de ser mucho más rápido. Lo que me desconcierta del esquema son las resistencias de pull-up en todas las lineas. No he profundizado todavía en este micro, pero supongo que al igual que los STM32 o los Kinetis se podrán activar resistencias

Seguro trae pull up/down, pero tengo entendido que son weak pull Down/Up, por ejemplo, no se pueden utilizar como terminacion de un I2C. Cuando necesitas un poco de fuerza en la señal debes ponerlas externas. O por lo menos eso tenía entendido.

En el USB, veo ese bloque de diodos TVS, supongo que para proteger el puerto de la estática. Nunca los he instalado en mis diseños con micros y USB, no se si son importantes. Me llama la atención el montón de condensadores de desacoplo que necesita, cuento 14 en el esquema (me parece una barbaridad), supongo que en los TQFP100 serán menos.

Esos TVS están en todos los equipos comerciales buenos. Son imprescindibles para equipos que van a estar fuera de tu taller.

Saludos!
-
Leonardo Garberoglio

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2784
Re:Mi primer proyecto con Cortex M7, un Atmel SAM S70 a 300Mhz
« Respuesta #2 en: 05 de Mayo de 2017, 20:20:30 »
Felicitaciones por el salto!!!
Mantenenos al tanto de los avances!

Gracias, iré posteando todo lo que vaya probando. Ahora estoy con el esquema, y creo que la semana que viene enviaré a fabricar el PCB a los chinos.


Citar
Nunca usé esas resistencias en ningun diseño con ningun micro... Me parece que con los cuarzos comunes esas resistencias no son necesarias.

Pues no tengo ni idea, por ejemplo en los esquemas de las FRDM de NXP, les meten la de 1Mega en paralelo, y en el de las Discovery de ST le ponen una resistencia en serie con una de las patillas del cuarzo.


Citar
Seguro trae pull up/down, pero tengo entendido que son weak pull Down/Up, por ejemplo, no se pueden utilizar como terminacion de un I2C. Cuando necesitas un poco de fuerza en la señal debes ponerlas externas. O por lo menos eso tenía entendido.


Desconocía eso. De todas formas mirando los esquemas de las placas de evaluación FRDM de NXP, no les ponen resistencias externas de pull-up, ni al tarjetero por SDHC ni al que va por SPI. Pondré las resistencias en el PCB y probaré a ver si funciona con y sin resistencias.






Citar
Esos TVS están en todos los equipos comerciales buenos. Son imprescindibles para equipos que van a estar fuera de tu taller.

Si no me complica mucho el ensamblaje, igual los pongo, o al menos los dejo en el PCB y ya veré si los instalo.


Saludos.


Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 6161
Re:Mi primer proyecto con Cortex M7, un Atmel SAM S70 a 300Mhz
« Respuesta #3 en: 05 de Mayo de 2017, 21:18:18 »
Por lo que lei el unico pin que posee pull-up de las tarjetas es el CS ( Pin 1 ) en modo SPI. Los demas no necesitan ningun pull-up. Que las tarjetas ya traen de forma interna

Por las respuestas sobre una placa MSP430 realizada por TI, las resistencias simplemente estan para que cuando inicia el micro hasta que se configuran las salidas como SPI, los pines de SCK/DI/DO no esten en flotando. Es decir que tengan un estado conocido asi la tarjeta no entra en un "posible" estado erroneo.

Pero aca va el tema, la misma persona que respondio eso, dice que en sus diseños jamas puso una resistencia alli (pero considera buena practica dejarle lugar), pero si una pequeña de 33ohms en VCC ya que tuvo problemas de que la corriente (inrush current) al insertar la tarjeta le reseteaba el microcontrolador, Y como una resistencia es mas barata que agrandar el capacitor la usa... ( Lo comento por si alguno le pasa, aunque siempre sobredimensionamos el capacitor de entrada ).

Siguiendo sobre el tema, lo que es mas absurdo es que si posee una pull-up en el CS (me refiero a internamente las SD), implica que no deberia recibir nada por SCK/DI/DO y no entrar en ningun estado "erroneo". pero se dejaria flotando las entradas que si importa el tema del consumo se sabe bien que no debe dejarse entradas flotando sino que deben estar conectadas por un pull-up o a GND.

La otra version dando vuelta es por la del SPI, que con el mismo SPI se podria manejar otros dispositivos mas. Pero lo veo insensato a esto.

------------------

Buscando sobre alguna otra, veo que las tarjetas SD Toshiba

https://www.mikrocontroller.net/attachment/21920/SDHC_SDM04G7B7_08G7B7.pdf

Dice que hay algunas entradas que necesitan si o si el pull-up en modo SPI. (pin 8 y 9)
« Última modificación: 05 de Mayo de 2017, 21:35:45 por KILLERJC »

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2173
Re:Mi primer proyecto con Cortex M7, un Atmel SAM S70 a 300Mhz
« Respuesta #4 en: 05 de Mayo de 2017, 21:37:58 »
No recuerdo si tenía habilitadas las pull up internas, pero en un diseño que hice con el F411 si no ponia pull ups en las lineas de datos (MOSI, MISO) del orden de 47K, la uSD no me funcionaba, o por lo menos no a velocidades altas. Si mal no recuerdo leí sobre el uso de dichas resistencias. A partir de ese momento, siempre pongo PU en esas lineas en las SD...

Saludos!
-
Leonardo Garberoglio

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2784
Re:Mi primer proyecto con Cortex M7, un Atmel SAM S70 a 300Mhz
« Respuesta #5 en: 05 de Mayo de 2017, 22:47:23 »
.

Gracias Killer y elgarbe.
Mis experiencias con los STM32 quitando las resistencias de pullup en el tarjetero SD por SPI, no fueron buenas, la tarjeta me hacía cosas raras y al final las dejé puestas. Si que pude quitar unas resistencias de pullup que tenía en unos pulsadores, eso fue perfecto con las resistencias internas activadas por software.

Por si acaso, en el diseño con el SAM S70, pondré las resistencias, que además están en el esquema de la placa de evaluación de Atmel. Cuando lo monte todo, probaré sin las resistencias a ver que pasa, y si falla las pongo y arreglado.

Cuando hago placas propias, me fijo en los esquemas de las placas de evaluación del fabricante, y copio lo mismo. Por ejemplo las resistencias que algunos fabricantes ponen en el cuarzo, otros no las ponen. Con el tarjetero SD, pasa lo mismo, ahí están los esquemas de NXP en sus placas FRDM, con el tarjetero SDHC y SPI sin resistencias de pullup externas, sin embargo Atmel si que las pone en su placa para los SAM S70, ST creo que también las pone en la Discovery.

No tengo ni idea de porque unos ponen resistencias y otros no, cuando el tarjetero y la tarjeta son las mismas. Lo mismo me pasa con el cuarzo, ni idea de porque unos le ponen resistencias y otros no. Para no meter la pata, pongo lo mismo que ha puesto el fabricante y luego ya probaré a quitar y poner.

Con el USB, nunca he tenido problemas a pesar de no poner nunca los TVS, pero los pondré en el esquema para que salgan en el PCB, luego ya veré si los monto o no. Lo he mirado en los polacos y es un componente barato, de ponerlo ya dependerá de la pereza que tenga a la hora de ensamblar, suelo poner lo justo y necesario para ahorrar tiempo en el ensamblaje.

Si tengo que poner resistencias en el tarjetero SD, miraré de usar unos arrays SMD, no los he usado nunca, y los que tengo de muestras me parecen super enanos, pero bueno, posicionándolos a microscopio espero que no pierda mucho tiempo, además el microcontrolador siempre lo posiciono a microscopio, aprovecharé para colocar bien los arrays.

Lo que no me gusta nada, son los 14 condensadores de desacoplo, que burrada. Como es posible que termine montando el chip de 100 pines, puede que me ahorre algunos condensadores.
« Última modificación: 05 de Mayo de 2017, 23:10:08 por planeta9999 »

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2784
Re:Mi primer proyecto con Cortex M7, un Atmel SAM S70 a 300Mhz
« Respuesta #6 en: 06 de Mayo de 2017, 01:43:23 »
.

Fundamental, para mi, para desarrollos comerciales con micros, disponer de un buen bootloader encriptado. He tenido suerte, en la web de Atmel te lo dan para los SAM V7/E7/S7, con código fuente y gratuito.

Este booloader se comunica por USB, es el único inconveniente, porque todas mis placas se actualizan con tarjetas micro SD, así que a este booloader le tendré que añadir código para gestionar tarjetas SD con FAT/FAT32. No creo que sea mayor problema, porque las librerías que suministran incluyen gestión de tarjetas SD y volúmenes FAT/FAT32, no recuerdo si es con FATFS u otras librerias. Encripta con el algoritmo AES CBC (creo que con una clave de 128 bit).






Esta es la nota aplicativa del bootloader encriptado y las descargas del manual en PDF, fuentes, binarios y aplicativo para el PC para Windows y Linux. El aplicativo para PC, permite encriptar entrando la clave que queramos, previo a enviar el binario, o tambien guardarlo encriptado en el disco duro.

AT16743: SAM V7/E7/S7 Safe and Secure Bootloader
(file size: 925KB, 25 pages, revision A, updated: 06/2016)
This application note discusses the boot sequence, upgrade sequence, safety, and security in bootloader. It also provides an example bootloader implementation for Atmel SAM V7/E7/S7 ARM Cortex-M7 based microcontrollers.

http://www.atmel.com/Images/Atmel-42725-Safe-and-Secure-Bootloader-for-SAM-V7-E7-S7-MCUs_AT16743_ApplicationNote.pdf

http://www.atmel.com/Images/Atmel-42725-Safe-and-Secure-Bootloader-for-SAM-V7-E7-S7-MCUs_AT16743_ApplicationNote.zip


Las direcciones de ubicación del bootloader y de la aplicación de usuario están documentadas en el manual, así como las modificaciones a realizar en el linker script para compilar la aplicacion de usuario:




El producto es casi perfecto, si soportara bootloader por tarjeta SD sería de 10. La verdad es que este aplicativo me ha ahorrado mucha faena. Siempre que toco una nueva familia de micros, lo primero que busco es un buen bootloader, encriptado y por tarjetero SD, si no existe lo tengo que programar, en este caso está hecho al 90% de lo que necesito.

Esta nota aplicativa sobre la seguridad en los sistemas de actualización de firmware con bootloaders, se ve interesante.
http://www.atmel.com/images/doc6253.pdf

Me atrae sobre todo ver los de la "hash function" y las firmas digitales para preservar la integridad del firmware encriptado, es algo que nunca he contemplado en mis bootloader encriptados.

« Última modificación: 06 de Mayo de 2017, 02:24:02 por planeta9999 »

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2784
Re:Mi primer proyecto con Cortex M7, un Atmel SAM S70 a 300Mhz
« Respuesta #7 en: 06 de Mayo de 2017, 04:12:05 »
.

En el manual del SAM S70, ponen que la resistencia (de 1K) en serie con el cuarzo, solo es necesaria si el cuarzo es de una frecuencia inferior a 8Mhz. En mi caso el cuarzo será de 12 Mhz, igual que en la placa de evaluación. 

Tal vez esta regla, sirva para otros micros, no lo se, las Discovery llevan cuarzo de 8Mhz y una resistencia en serie de 220 ohm.



Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2784
Re:Mi primer proyecto con Cortex M7, un Atmel SAM S70 a 300Mhz
« Respuesta #8 en: 08 de Mayo de 2017, 09:29:52 »
.

Me llegó el nuevo juguete, a veremos que tal. Es una placa de evaluación Xplained de Atmel con un Cortex M7 SAME70, 300Mhz, 2Mb Flash, 384K RAM, TQFP144. 38 euros en Mouser.

El Atmel Studio no está mal, pero le faltan algunos detalles para ser tan bueno como el de ST, de aspecto es un calco de Visual Studio. Le tengo muchas ganas a este micro, las prestaciones y el precio son muy buenos.



















« Última modificación: 08 de Mayo de 2017, 09:32:13 por planeta9999 »

Desconectado george.manson.69

  • PIC10
  • *
  • Mensajes: 24
    • Microcontroladores en General
Re:Mi primer proyecto con Cortex M7, un Atmel SAM S70 a 300Mhz
« Respuesta #9 en: 08 de Mayo de 2017, 11:11:44 »






Se ve muy buena la placa, espero que subas avances con esta tarjeta para ver si me compro una,

¡Saludos!

Desconectado juaperser1

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2389
Re:Mi primer proyecto con Cortex M7, un Atmel SAM S70 a 300Mhz
« Respuesta #10 en: 09 de Mayo de 2017, 08:46:26 »
¿como van las actualizaciones del software para atmel desde que lo compro microchip, están al día o parece que se van estancando?



Un saludo
Visita mi canal para aprender sobre electrónica y programación:

https://www.youtube.com/channel/UCxOYHcAMLCVEtZEvGgPQ6Vw

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2784
Re:Mi primer proyecto con Cortex M7, un Atmel SAM S70 a 300Mhz
« Respuesta #11 en: 09 de Mayo de 2017, 09:31:39 »
¿como van las actualizaciones del software para atmel desde que lo compro microchip, están al día o parece que se van estancando?

Un saludo

Yo de Atmel apenas se nada. Solo usé algunos micros de 8 bit en el 2001, y nunca mas volví a usar chips de Atmel.

La documentación que facilitan la veo muy bien, y los samples que he pedido ya me los han enviado.

Por cierto NXP, un cero patatero en samples, y eso que te cobran 18€ por el transporte, hace una semana que los pedí y todavia estan en estado "pendiente".

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2784
Re:Mi primer proyecto con Cortex M7, un Atmel SAM S70 a 300Mhz
« Respuesta #12 en: 22 de Mayo de 2017, 08:10:24 »
.

Aleluya, me llegaron los samples, han tardado 2 semanas, aunque ya tenía algunas unidades que pedí a Mouser. Hoy recibí 18 micros SAM S70 en TQFP100 y 144 pines. Hace unos días diseñé una placa de evaluación para el SAM S70 de 100 pines, que ya envié a fabricar a ALLPCB.

He estado probando Atmel Studio y sin problemas. También tengo la placa de evaluación SAM E70 Xplained y programador Atmel ICE.

En definitiva, ya tengo todo para poder empezar a probar este potentísimo y barato micro Cortex M7. Lo complicado es portar un proyecto hecho para Teensy con Arduino, a este micro.












« Última modificación: 22 de Mayo de 2017, 08:13:27 por planeta9999 »

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4354
    • Picuino
Re:Mi primer proyecto con Cortex M7, un Atmel SAM S70 a 300Mhz
« Respuesta #13 en: 22 de Mayo de 2017, 10:50:17 »
Me suscribo. Enhorabuena.

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2784
Re:Mi primer proyecto con Cortex M7, un Atmel SAM S70 a 300Mhz
« Respuesta #14 en: 22 de Mayo de 2017, 11:04:57 »
.

Cada vez que miro lo de los cores de Arduino, me dan mareos, es un galimatías terrible.

Ya lo podían haber documentado mejor, pillo algunas cosas, pero no hay un patrón a seguir. La asignación de puertos a direcciones de memoria es lo único que veo claro, algo menos claro el tema de las interrupciones, el resto ni papa. También meten muchos defines para constantes, como Pi y otras, pero sin ningún orden ni concierto, es una anarquía total.

Picuino, tú que eres un experto en Arduino, ¿ esto de los cores no lo has tocado ?.


 

anything