Small MCU system-on-module options? - Page 1
Forum section: electronics / general

author: jt
author_rank: Regular Contributor
timestamp: January 18, 2016, 11:26:14 pm
content: Does anyone know of a compact system on module for a "medium" performance microcontroller?By medium I mean something along the line of an Cortex-M3 or M4 with <400MHz system clock (like a STM32F3/4 or Renesas S7) and external SRAM on the order of 1MB or so. NAND flash optional, bonus points for on-board Bluetooth LE capability.By compact I mean something along the line of <10 cm^2. Similar to Gumstix modules or the Logic-PD torpedo. For example, I would consider the following too large:http://www.teamfdi.com/product-details/syg-s7g2-somI see options for higher performance systems (like ~1GHz omap or snapdragon processors with DDR2) but I'm not having much luck finding anything for this niche.

author: donotdespisethesnake
author_rank: Super Contributor
timestamp: January 19, 2016, 08:53:28 am
content: I occasionally look for that type of thing, but I have never seen anything that small, nearest I have seenhttp://www.emcraft.com/products/224,plus a few similar ones e.g. from Embest.

author: miguelvp
author_rank: Super Contributor
timestamp: January 19, 2016, 09:43:21 am
content: Maybe under performers but the PSoC 5LP are pretty good with low power consumption:My current project:https://www.eevblog.com/forum/projects/no-bitbanging-necessary-or-how-to-drive-a-vga-monitor-on-a-psoc-5lp-programmabl/They can only go up to 80MHz with an external XTAL but very configurable.On top of the datasheet check out the TRM and register TRM:http://www.cypress.com/documentation/technical-reference-manuals/psoc-5lp-architecture-trmhttp://www.cypress.com/documentation/technical-reference-manuals/psoc-5lp-registers-trm-technical-reference-manualWindows only, but with the register TRM you could do your own app to set them up.Also on their roadmap I didn't see any Cortex M4 on the PSoC form (they have them without the programable digital and analog stuff on their FM4 family), but it seems they have a Cortex M7 in the works.http://www.cypress.com/file/151491/downloadDepending what you need to do, maybe their PSoC 4 M Series will have something.My favorite kit from them: CY8CKIT-059http://www.cypress.com/documentation/development-kitsboards/cy8ckit-059-psoc-5lp-prototyping-kit-onboard-programmer-andThey just introduced a PSoC 4 M kit:http://www.cypress.com/documentation/development-kitsboards/cy8ckit-043-psoc-4-m-series-prototyping-kitThat takes an optional Bluetooth LE chip:http://www.cypress.com/products/ez-ble-module-bluetooth-smartSome more info on this post:https://www.eevblog.com/forum/microcontrollers/grab-a-psoc-4-m-series-proto-kit-for-$10/msg816218/#msg816218

author: westfw
author_rank: Super Contributor
timestamp: January 19, 2016, 11:34:08 am
content: QuoteThat seems to be particularly uncommon. Most chips these days that have an external memory interface seem to implement DDRn as the bus interface, going straight to the 64MB+ domain (running linux!)Some of the MIPS-core WiFi router modules might meet your requirements. "Carambola" or "Arduino Yun Mini" perhaps?

author: MT
author_rank: Super Contributor
timestamp: January 20, 2016, 01:00:35 am
content: Speaking of which are there any interface connector standards for small boards like this?DIP28-64 gumstick/stamp and Aurdino ofcourse but what else?RPI and others have have IDC connectors but.....

author: MT
author_rank: Super Contributor
timestamp: January 20, 2016, 01:07:51 am
content: Was not aware of COM express, thanks for info, have to do some read up on it.

author: MT
author_rank: Super Contributor
timestamp: January 20, 2016, 01:15:12 am
content: Yes i thought so too! Hmm, see now that COM express is also standard one have to buy! 400usd for card base design...Ah well, perhaps SODIMM/simple card edge, could be an open standard for very small stamp sized computer modules....That ESP32 looks interesting...

author: Koen
author_rank: Frequent Contributor
timestamp: January 20, 2016, 01:41:59 am
content: Quote from: blueskull on January 20, 2016, 12:25:31 amIs there an alternative to the Micriµm FS and USBDevice libraries ? Thank you !

author: jt
author_rank: Regular Contributor
timestamp: January 20, 2016, 04:06:51 am
content: Thanks everyone!So it sounds like the options are either a single MCU solution with <1MB internal SRAM, or Linux capable system with >100MB DDR2/3 or so. Interesting there isn't much of a middle ground, but this does seem to follow the trend of product tear downs I've seen. For example the FitBit and Pebble watch are single MCU solutions (Gecko and STM32F4 respectively) and the Apple, Samsung watches go the high performance ~1GHz, ~512MB RAM route - no middle ground.Are MCU + external SRAM systems a relic of the past? I used to work for a company that had implemented this type of embedded system and I was always suspicious the system architect might have been a bit stuck-in-his-ways. Seems like now I only see the SRAM devices paired with FPGAs.Perhaps the blackfins give a middle ground, I hadn't looked at these much before. Can anyone speak to how good (or bad) the supporting development tools are for these? Is this product line alive and healthy? I don't recall seeing many of these used in the past 5 years or so; maybe they are niche to a certain industry?I'm starting to come around to the Linux-capable class of device. The mW sleep modes they offer may still allow my power budget to close. It would appear my application can tolerate the sleep/wake latency and low duty cycles.

author: miguelvp
author_rank: Super Contributor
timestamp: January 20, 2016, 04:31:42 am
content: Quote from: jt on January 20, 2016, 04:06:51 amNo, for example that PSoC 5LP (Cortex M3) seems to supports 24 bits of address space for external memory that their external memory interface can address.0x60000000–0x60FFFFFF External Memory InterfacePage 21 of their Datasheet:http://www.cypress.com/file/45906/downloadPage 97 of the Architecture TRM I linked earlier.Supports 4 types of memory: synchronous SRAM, asynchronous SRAM, cellular RAM/PSRAM, and NOR flashand the memory can be 8 or 16 bits wide.So 16777216 addresses time 2 bytes wide is 32MB.But on synchronouse SRAM it seems it's only 17 bits address space and 18 bits address space for asynch.In any event it's posible in this and probably many other MCUs.

author: jt
author_rank: Regular Contributor
timestamp: January 20, 2016, 04:38:10 am
content: QuoteYeah, I know the STM32F(1-4) devices also support SRAM with their external memory bus. I just haven't seen this implemented in many products; perhaps I'm not looking in the right places.

author: jt
author_rank: Regular Contributor
timestamp: January 20, 2016, 04:48:48 am
content: Thanks blueskull for your feedback on the blackfin support. I think you've confirmed my suspicion that there isn't much of a community and I haven't heard good things about Analog Dev. support in general.This is a side project with some buddies, so we are definitely looking to leverage as much community work as possible. Sounds like that rules these out.

author: donotdespisethesnake
author_rank: Super Contributor
timestamp: January 20, 2016, 10:39:51 am
content: Quote from: jt on January 20, 2016, 04:06:51 amYes, I've noted the lack of a middle ground before. The biggest MCU's usually have much less than 1MB on board, with a few exceptions.If you move up to Linux class then you are spoiled for choice again. Some of the modules can be programmed bare metal, or with RTOS like FreeRTOS, but you have to do all the stuff like USB host, networking, device drivers for wireless. Linux provides all that and more out of the box, so if you need simple external IO with a rich, connected app then it's a quick win. With a bit of creativity you can do some advanced low level things as well, or interface to an external MCU.I would take a close look at what you can do with the Raspberry Pi Compute module.

author: ale500
author_rank: Frequent Contributor
timestamp: January 20, 2016, 11:04:50 am
content: You can try some MPC57xx from freescale, some have like 1,5 MB built-in RAM. But I'd go for a ST32F4xx with external ram, much cheaper. Some of them support QSPI, so if your RAM doesn't have to be super fast it may be an option, if not you can go for 4x512kx8 or 2x256kx16 as external RAM, don't forget that those SRAM are 10 ns or more...A ST32F439 Discovery board has 8MB SDRAM on board, you may want to have a look at it as a starting platform, it is quite cheap at ~ 20 €,. Schematics are also available.I'd also love something like that, a small board with CPU+SRAM (I have a ST32F439 Disco and works quite well!) but I don't want a TQFP176 or so and thus I'd go with a PIC32MZ, they have 512k SRAM built-in and QSPI, all in TQFP-64... not bad !. They go for like 10 € each.

author: nctnico
author_rank: Super Contributor
timestamp: January 20, 2016, 11:27:33 am
content: Quote from: Koen on January 20, 2016, 01:41:59 amLUFA which is also ported by NXP for their own devices. Speaking of NXP: AFAIK they have several ARM devices which support external memory which would fit the OP's requirements.

author: jt
author_rank: Regular Contributor
timestamp: January 20, 2016, 04:52:38 pm
content: QuoteThanks, I wasn't aware that QSPI RAM existed, so it isn't an option I have traded. My hope was to find a system on module that would offload the high density PCB technology from my board, but maybe with QSPI I can still keep things reasonably small, but still easy to hand load. At first blush, I don't think I need the RAM to be very fast.

author: ale500
author_rank: Frequent Contributor
timestamp: January 22, 2016, 04:16:22 pm
content: These QSPI RAMs can be accessed in "memory mapped mode" meaning, you don't care about the SPI protocol at all, it is all transparent. You can get a nucleo or discovery board with a compatible CPU:http://www.st.com/web/en/catalog/mmc/SC1169/SS1577The PIC32MZ could also be a candidate, it has more inernal RAM and QSPI.QSPI SRAM top at 128kx8 like:http://www.farnell.com/datasheets/1647941.pdf

author: jt
author_rank: Regular Contributor
timestamp: January 23, 2016, 06:23:11 am
content: Thanks for the info! I'm always excited to learn of new circuit building blocks

author: Kilrah
author_rank: Unknown
timestamp: January 23, 2016, 10:32:35 pm
content: Quote from: jt on January 20, 2016, 04:38:10 amThere's a product on which I'm currently collaborating that does this, an STM32F4 and 8MB external RAM. Pretty similar to the F439 discovery board, the RAM is needed for the framebuffer for the relatively high resolution LCD, and will also be useful for other purposes now it's there...But it's a pretty specific application where a microcontroller is really appropriate for the purpose (real-time operation required, several timers with the common hardware capture/compare functionality needed, need ADCs and DACs for which integrated peripherals are good enough and external parts wouldn't be worth the cost and effort)... but nowadays the vast majority of consumer products have more use for the high computing performance, non real time platforms.

author: jt
author_rank: Regular Contributor
timestamp: January 29, 2016, 06:13:47 am
content: Thanks Kilrah on your background. Sounds like the system I had previously worked was of similar implementation and application. Sounds like that technology is a good fit for the application.

author: Morgoroth
author_rank: Regular Contributor
timestamp: February 02, 2016, 07:12:00 am
content: maybe NXP (freescale) kinetis line microcontrollers is what you want, they run up to 150MHz with 2MB of flash, 256 KB SRAM, and as far I know they will release a line of bluetooth soon, I bet on same line of microcontrollers.

author: Kilrah
author_rank: Unknown
timestamp: February 02, 2016, 02:30:24 pm
content: A bit off topic but I just received the first engineering sample of the product and am really amazed at the performance, display refresh is ultra fast, leading to virtually instant UI response with our software, it will fly through the menu pages with full and instant screen renderings as fast as you can turn the rotary encoder used for navigation.I know that technically there is nothing particularly fancy in pushing to a 480x272 color screen nowadays but the hardware in the STM seems to be doing a good job... it's interesting to see how much it's faster than the SPI grayscale LCD we had on the previous product, and most importantly feels really good after so many bad experiences with products that have appalling response times between user action and a fully updated UI, even recent ones.Of course most of it has to do with the software, and ours being lightweight due to originating from a very low spec platform and thus not using any heavy libraries but preferring simple primitives must do a lot.

author: diyaudio
author_rank: Frequent Contributor
timestamp: December 15, 2016, 09:29:09 am
content: Quote from: blueskull on January 20, 2016, 04:24:27 amEverything you mentioned here is true. I dont think the Blackfin will have a future the way they going, SHARC yes. I would rather go for a ZYNQ part then a Blackfin.

author: tszaboo
author_rank: Super Contributor
timestamp: December 15, 2016, 09:48:37 am
content: Quote from: rainsee on December 15, 2016, 09:10:39 amIt is not gonna run Linux, as Cortex M lack MMU.Embedded artist has NXP modules, Olimex also.But I think any module which does not have BGA on it, is pointless, as you can just implement it on your main PCB.

author: Koen
author_rank: Frequent Contributor
timestamp: December 15, 2016, 10:04:45 am
content: Quote from: rainsee on December 15, 2016, 09:10:39 amSTM32H7 will be 400MHz with 1MB internal SRAM.

author: thm_w
author_rank: Super Contributor
timestamp: December 15, 2016, 11:18:13 pm
content: http://www.waveshare.com/xcore407i.htmsome onboard 1gb NAND, but no additional SRAM.https://www.aliexpress.com/item/ARM-Corte-M4-Development-Kit-STM32F407IGT6-3-2-inch-Touch-Screen-Module-130W-Pixel-camera-module/32257851551.html16M SRAM and 4gbit NAND, but the price is crazy ($80) and hard to source.The problem is once you get into these high end micros, they are $15-20 which is already the cost of an orange pi. And the design of the board is really not that complicated, as you can see.But I see the value of having a small 8-layer module with BGA CPU/RAM/NAND/etc all there and tested.