Buenas, recientemente NXP sacó una serie de micros Cortex M0+ con muy buenas prestaciones como Driver's en ROM para USB, UART, I2C, actualizacion de firm por DFU, USB compilant, DMA, Fast gpio y un monton de cosas más. En mi caso he podido conseguir y he elegido para uno de mis proyectos el LPC11U67.
Algunas características:
Features and benefits
• System:
• ARM Cortex-M0+ processor (version r0p1), running at frequencies of up to 50 MHz
• with single-cycle multiplier and fast single-cycle I/O port.
• ARM Cortex-M0+ built-in Nested Vectored Interrupt Controller (NVIC).
• AHB Multilayer matrix.
• System tick timer.
• Serial Wire Debug (SWD) and JTAG boundary scan modes supported.
• Micro Trace Buffer (MTB) supported.
• Memory:
• Up to 256 KB on-chip flash programming memory with page erase.
• Up to 32 KB main SRAM.
• Up to two additional SRAM blocks of 2 KB each.
• Up to 4 KB EEPROM.
• ROM API support:
• Boot loader.
• USART drivers.
• I2C drivers.
• USB drivers.
• DMA drivers.
• Power profiles.
• Flash In-Application Programming (IAP) and In-System Programming (ISP).
• 32-bit integer division routines.
• Digital peripherals:
• Simple DMA engine with 16 channels and programmable input triggers.
• High-speed GPIO interface connected to the ARM Cortex-M0+ IO bus with up to 80
• General-Purpose I/O (GPIO) pins with configurable pull-up/pull-down resistors,
• programmable open-drain mode, input inverter, and programmable glitch filter and
• digital filter.
• Pin interrupt and pattern match engine using eight selectable GPIO pins.
• Two GPIO group interrupt generators.
• CRC engine.
• Configurable PWM/timer subsystem (two 16-bit and two 32-bit standard
• counter/timers, two State-Configurable Timers (SCTimer/PWM)) that provides:
• Up to four 32-bit and two 16-bit counter/timers or two 32-bit and six 16-bit
• counter/timers.
• Up to 21 match outputs and 16 capture inputs.
• Up to 19 PWM outputs with 6 independent time bases.
• Windowed WatchDog timer (WWDT).
• Real-time Clock (RTC) in the always-on power domain with separate battery supply
• pin and 32 kHz oscillator.
• Analog peripherals:
• One 12-bit ADC with up to 12 input channels with multiple internal and external
• trigger inputs and with sample rates of up to 2 Msamples/s. The ADC supports two
• independent conversion sequences.
• Temperature sensor.
• Serial interfaces:
• Up to five USART interfaces, all with DMA, synchronous mode, and RS-485 mode
• support. Four USARTs use a shared fractional baud generator.
• Two SSP controllers with DMA support.
• Two I2C-bus interfaces. One I2C-bus interface with specialized open-drain pins
• supports I2C Fast-mode plus.
• USB 2.0 full-speed device controller with on-chip PHY. XTAL-less low-speed mode
• supported.
• Clock generation:
• 12 MHz internal RC oscillator trimmed to 1 % accuracy for 25 C Tamb +85 C
• that can optionally be used as a system clock.
• On-chip 32 kHz oscillator for RTC.
• Crystal oscillator with an operating range of 1 MHz to 25 MHz. Oscillator pins are
• shared with the GPIO pins.
• Programmable watchdog oscillator with a frequency range of 9.4 kHz to 2.3 MHz.
• PLL allows CPU operation up to the maximum CPU rate without the need for a
• high-frequency crystal.
• A second, dedicated PLL is provided for USB.
• Clock output function with divider that can reflect the crystal oscillator, the main
• clock, the IRC, or the watchdog oscillator.
• Power control:
• Integrated PMU (Power Management Unit) to minimize power consumption.
• Reduced power modes: Sleep mode, Deep-sleep mode, Power-down mode, and
• Deep power-down mode.
• Wake-up from Deep-sleep and Power-down modes on external pin inputs and
• USART activity.
• Power-On Reset (POR).
• Brownout detect.
• Unique device serial number for identification.
• Single power supply (2.4 V to 3.6 V).
• Separate VBAT supply for RTC.
• Operating temperature range 40 °C to 105 °C.
• Available as LQFP48, LQFP64, and LQFP100 packages.
DatasheetUser ManualPara testearlo un poco y como necesitaba probar el USB y el acceso a una micro SD he deicidido hacer una placa base o placa de desarrollo o como quieran llamarla.
He puesto en la misma las cosas que necesitaba, pero creo que se podría hacer algo similar a lo planteado por LABMouse
acá.
Para el que le interese le dejo el proyecto en Altium de la placa y en este o en otro post voy a ir subiendo avaces de software.
Este es el esquemático:
Como ven no use todos los pines y solo saqué los correspondientes a un UART (que puede ser configurado con otras funciones, por supuesto) y en otro conector saque otros 9 pines. Puse un regulador que toma alimentacion del USB o de una fuente externa (aquí debería haver puesto algun que otro diodo), Luego en el bus SPI colgué una dataflash y una micro SD. Hay 2 pulsadores, uno de Reset y otro para el booteo en modo ISP. Tendría que haver puesto un led en algún pin para hacer un primer chequeo de programaion, pero en el apuro lo olvidé
Las R de 33ohm en las lineas del USB ya vienen internas en el micro y no es necesaria colocarlas externas. Lo mismo con la de 1.5K entre D+ y 3.3V
Bueno, este sería el ruteo de la capa TOP:
la capa BOTTOM:
Hay pocas pistas abajo porque la idea original era hacerla simple faz, pero la SD card se me ponía muy complicada de rutear y llevar los 3.3V a todas partes tambien se hacia complicado, así que opte por 2 capas y un plano de GND en la TOP y uno de 3.3V en la bottom.
aquí un render:
y una imagen de la placa armada:
ya le he agarrado la mano al soldado de los LQFP!!!!
He cometido un error con el conector del USB, como es una librería mía no conecté los pines del shield a nada y en el placa final he tenido que raspar un poco la pintura para soldarlo a GND...
Bueno, el enlace al proyecto:
http://www.4shared.com/zip/eg2eJzCkba/LPC11u67.htmlSalludos!