Atmel vs Microchip

Estado
Cerrado para nuevas respuestas.
Pues TI tiene una Wiki, la introducción a lauchpad su mini curso con ejemplos y el code composer studio tiene acceso a más como los enfocados en USB, video pues de mis pruebas solo tengo dos, una de hace mucho con la FRDM-KL25Z del AirMouse y otra de un sensor reflexivo de cuando trabajé en el carrito con la Stellaris, pero no muestran mucho, ahora estaba modificando el AirMouse para mejorar la respuesta de movimiento y ya he agregado clic sostenido, ahora quiero implementar un gesto de scroll usando el touch
 
necesitas soldar un montón de componentes para disfrutarlos, desde el regulador de 5V a 3,3V, el chip ya que no es DIP,

Saludos, yo estoy acostumbrado a utilizar la plataforma avr, attiny24, 25 y 261 principalmente, pero ya me dió curiosidad por comenzar a utilizar la plataforma ARM y resulta que hay uno de NXP que es DIP8 y otro DIP28, funcionan a 5v y ¡son muy baratos! Perfectos para comenzar a conocer la plataforma y darles una probada en proto.

Algo que me ha evitado utilizar otros micros como los de freescale que me parece que tienen buenas prestaciones es que no hay documentación por ejemplo para hacer tu propio programador, como atmel o microchip que te dan las instrucciones y los retardos para hacer la programación, pero al parecer con estos ARM es muy fácil, voy a darles una prueba.
 

Se ven muy interesante para empezar con ARM, yo los había visto pero no los recordaba.

Especificaciones

Los ARM de nxp por experiencia les digo que son buenos y tienen el JTAG accesible, es decir pueden armar uds. fácilmente la herramienta, pero requiere de puerto paralelo.

Sobre los integrados SMD, no les tengan miedo, soldarlos parece cosas de ciencia ficción, pero si el PCB casero está bien hecho y se usa flux, hasta se puede soldar usando un soldador convencional (no es lo ideal, porque no podés controlar la ºT y podés dañar el componente, pero si son cuidadosos no pasa nada).

Obviamente en producción solo tenés que preocuparte que el PCB este bien hecho para que el armador pueda soldarlo sin problemas.
 
Mucho de apreniz y poco de Maestro..

A menos que aprendas ensamblador, no le veo el problema, es decir, solo los registros tienes que aprenderte, una ves que lo haces el resto de programación en C es igual, claro que si no sabes programar bien en C pues no llegarás a maestro de ninguno :LOL: y si dependes de librerías no estandarizadas de X compilador pues menos :p

De los SMD no le temo, he metido el soldador barato de 35W a mi notebook, primero tienes que llenar de estaño los pads, luego limpias bien los puentes usando maya desoldadora y flux, colocas el chip encima con flux y le das una pasada a los pines, con el estaño que quedaba en los pad basta para que se suelden bien y como es rápido no se calienta mucho, con el que uso mi micro cautin es cuando sueldo el USB micro, esa cosa si es demasiado pequeña para meter la punta hasta el fondo, pero igual generalmente uso la temperatura alta. Bueno, mientras tengan patitas por que si es un QFN esa es otra historia.
 
Última edición:
Mucho de aprendíz, poco de maestro.

Ocurre en cualquier cosa que te metas.

En cuanto a ARM, hay nuevas noticias como estas.
bea8d3_chip-arm_news.jpg


El fabricante británico ARM ha anunciado su nuevo diseño de núcleo Cortex-A17 con la gama media como objetivo. La nueva propuesta irá encaminada hacia dispositivos móviles a partir de 200 euros pero aproximando la eficiencia a la gama alta. El nuevo A17 no llegará al mercado general hasta 2015 pero MediaTek ya ha anunciado que lo incluirá en su nuevo procesador octa-core MT6595.

Los teléfonos inteligentes y tabletas que utilicen el Cortex-A17 ofrecerán una mayor autonomía y mejorarán el rendimiento en un 60% respecto al actual Cortex-A9. Los chips correrán a velocidades de hasta 1,5GHz y con capacidad para 1TB de memoria RAM.

El A17 utilizará un proceso de fabricación de 28 nanómetros, pero el fabricante de Cambridge asegura que para el año que viene comenzará a utilizar procesos de 20 nanómetros para este modelo. El chip soporta las últimas APIs de computación para GPUs, incluyendo Open GL ES 3.0, Open CL y Render Script.

Pese a que el mercado de los dispositivos móviles está avanzando inexorablemente hacia la arquitectura de 64 bits, ARM ha desarrollado el Cortex-A17 como un procesador de 32 bits. La compañía asegura que la demanda para los 32 bits en la gama media sigue en auge y que la nueva arquitectura ya la cubren los existentes Cortex-A57 y A53.

Durante el presente año MediaTek estrenará el nuevo diseño en su procesador MT6595 con conectividad LTE y ocho núcleos, cuatro A17 y cuatro A7. El fabricante taiwanés intentará desafiar con su nuevo modelo a Qualcomm y a su Snapdragon 805, especialmente teniendo en cuenta que MT6595 será un procesador más económico.

Fuente:
http://www.elotrolado.net/noticia_arm-anuncia-el-procesador-de-gama-media-cortex-a17_23481
 
a lo que dijo Don cosme

que se requiere un puerto paralelo
aca hay un proyecto que usan un pic18f2550 para hacer el jtag

lo queria probar por que una placa de un ploter se murio y queria revisar una FPGA que contiene y clonarla bueno ya me explaye :LOL:

el chiste es que aca les pongo el link de la construccion de un Jtag USB

http://electronicia4u.blogspot.mx/2011/07/dangerousprototypes-ir-infrared-toy-as.html

no lo probe por que descubri que la falla era una EEPROM que se borro que le daba las instrucciones al Chip puente de la placa del Ploter :rolleyes: por desgracia no se que instrucciones llevaba esa EEPROM asi que la tengo en espera de ser operada :LOL:
 
Sobre los integrados SMD, no les tengan miedo, soldarlos parece cosas de ciencia ficción, pero si el PCB casero está bien hecho y se usa flux, hasta se puede soldar usando un soldador convencional (no es lo ideal, porque no podés controlar la ºT y podés dañar el componente, pero si son cuidadosos no pasa nada).

Flojera, no miedo, con pistola de calor es fácil soldarlos, también está el método del horno tostador para que la tensión superficial acomode a los componentes en su lugar. Pero para hacer un hello world y pruebas sencillas y rápidas nada mejor que un protillo. También del DIP28 me sacó de onda que puede llegar a los 50mhz con un oscilador interno de 12mhz y pll, ya me estoy imaginando tu generador de señales con uno de esos.
 
Pues mira que he leído noticias que iban a dejar de fabricar IC tipo DIP, solo se quedarán componentes superficiales.

De todas maneras, para hace pruebas, hacesmuchos PCB con pines para la protoboard y en la plaquita lo sueldas.
 
Para pruebas nada mejor que esas tarjetitas, te evitas enredos de cables, interesante eso del JTAG con PIC, claro que como se tan bien japones para leer lo que dice la página :rolleyes: 話をできるだけど漢字がまだ読むできません :LOL: la traducción de Google marea, preferiría otro PIC que pueda trabajar a 3,3V el PIC18F2550 y hermanos si no mal recuerdo necesita mínimo de 4,2V para operar a los 48MHz necesarios para el USB,
Estaba probando los ejemplos de la Stellaris, según uno del uDMA ejecutandose a 50MHz realizó una transferencia de memoria de 39.4MB/s y UART de 23kB/s con 4% de uso en el CPU, interesante lo que hace este chip, es la primera ves que se me ocurre ver para que es el uDMA :unsure:
 
Hola:

El PIC18F4550 si es a 5 V como tensión normal. Puedes conseguir otros PIC equivalente. Desde hace un tiempo, los PIC de la misma marca están los de 5V, otro de 3.3V y otro de 1.8 V, cada vez más se usa el 3.3V para casi todo. No es tan estandar como los 5V pero lo será, también en 1.8V.

Si optas por usar el 18F4550 porque te da la gana, no lo niegues o pases de él, hay conversores de 5V a 3.3V para ello. AVR también pasa lo mismo.

Ejemplo.
image003.gif


Los más usados son estos.
74HC4050

HEX4050BP o el 75LVC245.

También te vale para el protocolo I2C de 5V a 3.3V.

Por mi parte, prefiero un PIC similar pero que use directamente los 3.3V. Con demás marcas ocurre lo mismo, incluido ARM.

Un saludo.
 
... preferiría otro PIC que pueda trabajar a 3,3V el PIC18F2550 y hermanos si no mal recuerdo necesita mínimo de 4,2V para operar a los 48MHz necesarios para el USB,

Estan los pic18f14k50 que trabajan a 3.3V sin problemas.
Pero sí, para aprovechar al máximo el ancho de banda del USB (o de cualquier puerto: i2c, spi, uart, can, i2s, paralelo,etc) el DMA es imprescindible.
 
Hola:

¿Qué es DMA?

Un cordial saludo.

Direct Memory Access, permite transferir los datos reduciendo la intervención del CPU y mejorando la velocidad, este chip solo soporta de periferico a SRAM y SRAM a SRAM, pero es interesante por que permitirá capturar datos y transmitirlos a altas velocidades, me pregunto cual seria la tasa en el USB
 
Acceso directo a memoria (Direct Memory Access).

La idea es que los periféricos puedan acceder directamente a la memoria RAM sin necesidad de que el Core del uC deba intervenir, de esta forma conseguís que esos componentes puedan trabajar con grandes cantidades de datos en forma más veloz.
 
Yo le tenía ganas, pero desde que por estos pagos nos cerraron las importaciones de "paquetitos", no llegué a traerlo.

Algo con lo que te enfrentás con los cortex, es que por el momento no hay modelo para simularlo en el proteus, por lo tanto si vas hacer un proyecto grande, si o si necesitas una herramienta para hacer el debug (incluso con Proteus y todo).
 
Hola:

¿Qué es DMA?

Un cordial saludo.

Ya respondieron antes, pero para dar un ejemplo práctico y no quedarse en la definición...

Supongamos que tenemos un micro con el que medimos 8 variables a través del conversor analógico digital y las enviamos a la PC a través de un puerto UART.

En micros sin DMA habría que escribir un programa para que mueva byte a byte los resultados del CAD al UART.
Pero en un micro de más recursos con DMA (no hace falta que sea de 32 bits, uso los msp430f5510 que son de 16 bits y traen 3 canales DMA) lo que se puede hacer es establecer un canal DMA entre los resultados del conversor CAD, y la transmisión por UART; y todo puede funcionar sin que el programa ejecute ningún otro código aparte de la configuración inicial.
En el msp430f5510 uno podría hacer:

  1. Configurar el conversor AD para que muestre las entradas analógicas A0 a A6 en secuencia cada 20 milisegundos (el trigger de inicio de conversión lo daría un timer cuya salida se conecta al CAD).
  2. Configurar el puerto UART con el baud rate deseado.
  3. Configurar el canal DMA0 (hay DMA1 y DMA2 también) para que la fuente de datos (source address) sea el registro donde se guarda el resultado del CAD, el destino de los datos sea el registro donde se escribe para transmitir el dato por UART, y que las direcciones de origen y destino no se incrementen. El trigger de la transferencia se configura para que sea la señal de fin de conversión del CAD.
Una vez configurado eso se arranca el timer y ualá!!!!, tenemos un flujo de datos sin que sea necesario ejecutar nada de código en el micro, uso mínimo de ram y flash, sin interrupciones, nos queda un gran ancho de banda para ejecutar el resto de la aplicación (atender entrada de usuario por botones y actualizar un LCD, ejecutar filtros, etc).
Estamos transfiriendo 8 variables de 10 bits (pongamos 16 porque el tamaño de registro del CAD se lee como 16 bits) cada 10 ms prácticamente gratis:
8*16/10e-3 = 12.8 Kbps (ya no nos alcanzaría los típicos 9600 bps del uart, lo tendríamos que poner a 19200 mínimo).

Respecto de las incrementar/decrementar las direcciones destino y fuente, está para transferir datos desde/hacia un buffer hacia/desde un puerto serie u otro buffer.
El trigger puede ser en general señales de interrupción de cualquier tipo (de un puerto serie uart/spi/i2c, de una señal externa, timers, etc).

////////////////////////////////////////////////////////////////////////////////////////////////////////

Por ejemplo, otro caso de uso: tenemos lo mismo que antes pero funciona a baterías (por lo tanto es importante tener al micro durmiendo lo más posible) y guardamos los datos en una memoria flash externa.
Las memorias flash manejan bloques de 256/512/1024 bytes, supongamos que es de 512 (como las tarjetas SD), y también se pueden poner en bajo consumo (a través de comandos o si no tienen esa funcionalidad cortando la alimentación con un mosfet P) (sino en reposo pueden consumir cientos de uA, lo que para bajo consumo es mucho).

En este caso conviene juntar uno o más bloques para enviar a la memoria, y energizar/despertarla solo cuando hayamos juntado varios segundos/minutos de datos. Claro que para esto tenemos que tener micros con varios KB de ram, el msp430f5510 tiene 4/6 KB así que podría usarse.

  1. La configuración del CAD sería igual
  2. Configurar el SPI para manejar la memoria
  3. Canal DMA0: origen = CAD; destino = buffer en memoria RAM; trigger = fin de conversión CAD; cantidad de datos = 4096 bytes (8 bloques); incrementar dirección origen = no; incrementar dirección destino = sí
  4. Canal DMA1: origen = buffer en RAM; destino = puerto SPI para mandar los datos a la memoria; trigger = manual; cantidad de bytes = 4096; incrementar dirección origen = sí; incrementar dirección destino = no
Acá sí precisaríamos un mínimo de código en interrupciones y bucle principal. Cuando se active la interrupción de DMA0 (al tener ya 4096 bytes en buffer) va a haber que despertar la memoria (por comandos) o energizarla si no tiene funcionalidad de bajo consumo <10 uA (y en tal caso habrá también que inicializarla).

Luego enviarle los comandos para escritura de múltiples bloques, y cuando ya esté lista para aceptar los datos iniciar la transferencia de los 4096 bytes a través de DMA0 (acá ya podríamos apagar la CPU de vuelta para ahorrar energía).

Finalmente cuando nos despierte la interrupción del DMA1, enviamos los comandos para que empiece a grabar, esperamos durmiendo el fin de grabación; y luego apagamos/mandamos a dormir la memoria.

En resumen los estados serían (CAD y DMA trabaja siempre, no lo incluyo):

  • Llenando buffer RAM: memoria apagada + CPU durmiendo
  • Buffer RAM lleno: todo trabajando, encender memoria y enviarle comandos.
  • Inicio vaciado RAM: empezamos transferencia buffer a memoria por DMA, CPU apagado, memoria encendida
  • Grabación memoria: enviamos comando grabación, la memoria queda encendida un tiempo hasta completar tiempo de grabado, la CPU está la mayor parte del tiempo apagada
  • Repetir...
Hay detalles que no contemplo porque se hizo muy largo y se trata de dar una idea más que una implementación.
En este último para guardar 4KB tendríamos despierto al micro la fracción de tiempo necesario para iniciar la transferencia de datos a la memoria, y para terminarla. Para dar un número, algo entre 10 y 50 milisegundos. Pongamos 25 ms.

Para juntar 4096 bytes (32Kbits) a 12.8Kbps tardamos 2.56 segundos. Ok... es poco tiempo, una aplicación portátil maneja tasas de muestreo más bajas normalmente, pero no importa.
Entonces con el DMA tenemos el micro con un ciclo de trabajo de 25e-3 s / 2.56 s < 1%.
Sin usar DMA el ciclo de trabajo podría ser algo del orden de 50%.

El consumo del micro en reposo (no en el modo de potencia más bajo porque precisamos tener los sistemas de reloj trabajando para usar el DMA) sería =
sistemas reloj siempre activo + el CAD trabajando continuamente con la referencia interna + el SPI cuando tenemos los datos listos para transferir + etc... seamos generosos y digamos 400 uA.
En modo activo corriendo a 8MHz consume aprox 3 mA

Consumo con DMA: 1% (activo + reposo) + 99% * reposo = 0.01 * 3 mA + 0.99 * 0.4 mA = 0.42 mA = 426 uA
Sin DMA: 50% (activo + reposo) + 50% reposo = 0.5 * 3 mA + 0.5 * 0.4 mA = 1.7 mA -> 4 veces más
Si es una pila botón de 220mAh con DMA: 21 días; sin DMA: 5 días

////////////////////////////////////////////////////////////////////////////////////////////////////////
Se me fué la mano escribiendo :D, pero quería dejar claro que en algunas aplicaciones donde el micro maneja un buen volumen de datos el DMA hace la diferencia.

Edito: aparentemente exageré mucho con el consumo en reposo, que estaría más cerca de los 100uA, así que la diferencia sería más tirando a 80 días vs 6 días
 
Última edición:
Buen día Amigos.

El KIT STM32L1-Discovery tiene incluido el programador y puedes hacer debug con el, todo en UNO.

Les anexo un proyecto de titulación que encontré en la RED sobre este Kit, esta en Español pero se ve algo mal.

También tengo otro en Ingles por si les interesa.

Saludos...
 

Adjuntos

  • jorge_caballero_escribano.pdf
    3.4 MB · Visitas: 2
Estado
Cerrado para nuevas respuestas.
Atrás
Arriba