[Solved] Help me choosing an ARM that runs Linux - Page 1
Forum section: electronics / beginners

author: blueskull
author_rank: Unknown
timestamp: February 11, 2017, 12:05:42 am
content: I chose to put this question here because it is just choosing a chip. I will post in project or MCU section later should I encounter any issues.Over the years I have developed an audio DAC technology consists an ADSP-BF706 as interpolation engine, iCE40HX8K as SDM/DEM engine and a thermostat 4-bit DAC is used for final DAC conversion.What I want to do is to make this a portable music player, not just a sound card. I plan to use an ARM processor to run Linux, which handles GUI, USB, decoder and DSP algorithm.The ARM directly talks to FPGA using a parallel bus, thus eliminating the need of a dedicated DSP chip.Here is a list of what the processor needs in order to make this happen:1. 500MHz+ with NEON, power <0.5w at half speed, power <0.8w at full speed.2. Can be routed with 5mil/5mil traces and 10mil/18mil vias.3. Supports DDR3L-800 x16. Supports eMMC at 40MB/s+ speed.4. At least one USB2.0 device interface.5. MIPI or 16-bit RGB controller, 320*480 or higher.6. A parallel port that supports 8-bit*100MHz with frame sync, slave mode preferred.7. Supports suspend to RAM and soft power off.8. Runs Linux with Mono/Winforms or Mono/Gtk#.So far I've been looking at iMX6UL/ULL and AM3352. The former doesn't have slave mode parallel interface, and the latter consumes too much power.Do you have any good suggestions on which ARM processor to use? Or can you suggest me another that suits my needs?Final decision:i.MX6ULL, with 528MHz Cortex-A7 w/NEON, LCD controller and EIM external bus interface.Already ordered the official dev kit for this chip, seems promising to me.

author: RJDog
author_rank: Contributor
timestamp: February 12, 2017, 01:35:48 am
content: I've been playing around a lot lately with Orange Pi and Orange Pi Zero in particular and I've been really digging it. It is an Allwinner H3/H2+ SoC, with ARM Cortex A7. Very speedy. Runs Armbian Linux well. It is a small(ish) pitch BGA (FBGA347, 0.65mm pitch) though, so not sure if that suits your needs (I am not nearly brave enough to try soldering this myself).This doesn't solve your requirement about supporting a USB device interface, but I'm using an Atmel Attiny 441 with VUSB library for that very purpose in a project myself, and linking the two via UART.My two cents.

author: RJDog
author_rank: Contributor
timestamp: February 12, 2017, 04:18:04 am
content: Quote from: blueskull on February 12, 2017, 03:18:38 amThe GPIO could theoretically be configured as a parallel interface... but the software interface would probably require some serious work... I'll summarize by saying "fair enough".I have two of the four cores disabled... and gpu disabled, cpu clock speed limited, and a bunch of other stuff to get the power draw under 400mA, so I am getting away without a heat sink, but I know many who use heat sinks. Probably recommended to use a heatsink if you go full bore on the CPU.So long story short, maybe not exactly what you're looking for, but I've been working with it a lot lately so I am in a "this is awesome and can obviously be used in every situation" kind of mentality.

author: kc8apf
author_rank: Regular Contributor
timestamp: February 12, 2017, 04:52:29 am
content: Parallel bus is a bit unusual on ARM parts these days. Maybe a Xilinx Zynx?Re: Linux and yocto; feel free to ask questions. I work on OpenBMC which is Yocto-based and am setting up a common Yocto distribution for internal projects at work.Sent from my Nexus 5X using Tapatalk

author: julian1
author_rank: Frequent Contributor
timestamp: February 12, 2017, 05:06:11 am
content: I don't have any experience in this area, but was recently looking at the Octavo OSD335x, and trying to figure out how difficult it would be target for embedded linux.http://octavosystems.com/octavo_products/osd335x/.It's an ARM Cortex-A8 which I believe implements ARM v7.It's a BGA - but large pitch - 1.27mm . And it integrates the complicated DDR3 SDRAM.Would it be possible to use GPIO to handle the parallel port for the fpga? Would perhaps require writing a kernel level device-driver?I found it interesting because the Beaglebone is open-source, and is therefore a good source for a reference design. Also it would be possible to prototype with the Beaglebone, before doing a dedicated standalone pcb.datasheethttp://octavosystems.com/octavosystems.com/wp-content/uploads/2015/09/OSD335x-Datasheet.pdf

author: kc8apf
author_rank: Regular Contributor
timestamp: February 12, 2017, 05:29:20 am
content: Yocto is almost hermetic so Ubuntu version shouldn't matter much. I'll need to see the full build log, what version of Yocto you started with, and what BSP you are using. Boost shouldn't cause a problem like that.Sent from my Nexus 5X using Tapatalk

author: kc8apf
author_rank: Regular Contributor
timestamp: February 12, 2017, 05:45:46 am
content: I'll look at the logs in the morning. Having problems with a different Ubuntu version doesn't make any sense. Yocto defaults are to build its own cross compiler used for building target packages. The host compiler is only used to build a handful of packages that are expected to run on the host. Freescale's BSP might be doing odd things though.Sent from my Nexus 5X using Tapatalk

author: julian1
author_rank: Frequent Contributor
timestamp: February 12, 2017, 06:45:53 am
content: QuoteWould down-clocking help power-consumption - or does you DSP need full power (offload to the gpu)? This article suggests its possible to run at 300MHz.http://derekmolloy.ie/changing-the-beaglebone-cpu-frequency/

author: bson
author_rank: Unknown
timestamp: February 13, 2017, 07:38:25 pm
content: Quote from: julian1 on February 12, 2017, 05:06:11 amI haven't worked with the higher end A series parts, but for the NXP Cortex M and ARM7T parts I've worked with, it could be set up using a DMA channel writing to a GPIO register, clocked by a timer channel which both goes to an external pin (for data clock) and triggers DMA transfers.The A parts get more complicated and will absolutely require a driver - this isn't terribly hard, especially if the external peripheral can handle data gaps while 1) interrupts might pend for a while, 2) move on to the next buffer in the chain, 3) you reload and restart the DMA channel. If not, then you need to utilize auto reloading functionality or use two channels chained with one always ready to start when the previous runs down. You also need to be careful with data cache management to make sure the DMA controller sees what the CPU sees, which may or may not be an issue depending on what else is in the pipeline prior to spitting the data stream out.

author: julian1
author_rank: Frequent Contributor
timestamp: February 14, 2017, 01:05:32 am
content: Quote from: bson on February 13, 2017, 07:38:25 pmI was thinking unrelated interrupts would be a problem after I posted. Also context switching.Apparently the TI parts have a dedicated processor available for implementing IO, which has full control over ddr memory, and presumably would keep running during interrupts.Quotehttp://beagleboard.org/pruThis guy got 25MHz using one of the PRUs with GPIO and says it should be possible to go faster,http://hackaday.com/2013/12/07/speeding-up-beaglebone-black-gpio-a-thousand-times/#comment-1125631

author: kc8apf
author_rank: Regular Contributor
timestamp: February 17, 2017, 04:50:12 pm
content: Quote from: blueskull on February 12, 2017, 05:41:20 amI haven't forgotten about this. I got a VM setup with those instructions. Freescale has taken a unique approach to releasing tested builds. What did you do to trigger the Boost compile error?

author: kc8apf
author_rank: Regular Contributor
timestamp: February 17, 2017, 05:59:21 pm
content: OK. I've setup a build directory with:Code:MACHINE=imx6ull14x14evk source fsl-setup-release.sh -e x11Now I'm starting a build of fsl-image-gui. I'll let you know what happens.

author: kc8apf
author_rank: Regular Contributor
timestamp: February 20, 2017, 04:43:09 pm
content: The build finished fine including building Boost.