Author Topic: ARM - easy way to start with  (Read 5523 times)

0 Members and 1 Guest are viewing this topic.

Offline sasaTopic starter

  • Regular Contributor
  • *
  • !
  • Posts: 168
  • Country: 00
  • Hobbyist in electronic
ARM - easy way to start with
« on: October 18, 2017, 09:10:23 am »
Can anyone point ARM series/model MCU which do not require expensive environment (programmer/JTAG) to be flashed or even it is flash-less and use free compiler?

It is for plain hobby purpose and project is a GPS navigator with 4.3/5" color TFT with touch screen, street maps with path finder algorithm, voice synthesis, etc. In short, it should have functionality as any today standard car GPS navigation device.

I would prefer to start with ARM, rather than to use any advanced MCP/ATMEL MCU.
« Last Edit: October 18, 2017, 09:17:21 am by sasa »
The 30+ years professional desktop software designer and software engineer
 

Offline nctnico

  • Super Contributor
  • ***
  • Posts: 26906
  • Country: nl
    • NCT Developments
Re: ARM - easy way to start with
« Reply #1 on: October 18, 2017, 09:45:24 am »
I'd look at a Raspberry Pi or something else which runs Linux.
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 
The following users thanked this post: JPortici

Offline wilhelm

  • Contributor
  • Posts: 14
  • Country: se
 

Offline danadak

  • Super Contributor
  • ***
  • Posts: 1875
  • Country: us
  • Reactor Operator SSN-583, Retired EE
Re: ARM - easy way to start with
« Reply #3 on: October 18, 2017, 11:00:52 am »
Cypress PSOC -

For me what stands out is -

1) Routability
2) Fast 12 bit SAR A/D and slow 20 bit DelSig
3) DFB (Digital Filter Block) that is dual channel, handle FIR or IIR filters, or DFB
can be used as a GP fast processor block, similar to RISC block
4) MSI logic elements GUI based and/or the UDB Verilog capability. Eg. the FPGA
like capability
5) Onboard Vref
6) IDAC, VDAC, OpAmps (up to 4), comparator, mixer, switch cap, analog mux....
7) LCD,  COM, UART, I2C, I2S, One Wire, SPI, Parallel, LIN, CAN, BLE, USB
9) Custom components capability, create with schematic capture or Verilog
10) DMA to offload processes like filters, COM, Display
11) ARM M0 (PSOC 4) or M3 (PSOC  5LP) or 8051 core(PSOC 3) or M0+/M4 dual core PSOC 6
12) Extensive clock generation capabilities
13) All components supported by extensive prewritten APIs

https://www.element14.com/community/thread/23736/l/100-projects-in-100-days?displayFullThread=true

http://www.cypress.com/documentation/code-examples/psoc-345-code-examples

Great video library

Attached component list.  A component is an on chip HW resource.

Free GUI design tool with schematic capture, "Creator". Components have rich API library attached
to each component. Compilers free as well.

PSOC 4 is low end of family, consider 5LP parts as well. PSOC 4 also has arduino footprint boards (pioneer) as well. PSOC 6 dual core M0+/M4.

https://www.elektormagazine.com/labs/robot-build-with-cypress-psoc

http://www.cypress.com/products/32-bit-arm-cortex-m-psoc



https://brightcove.hs.llnwd.net/e1/uds/pd/1362235890001/1362235890001_5241352463001_2606504288001.mp4?pubId=1362235890001&videoId=2606504288001



Regards, Dana.
Love Cypress PSOC, ATTiny, Bit Slice, OpAmps, Oscilloscopes, and Analog Gurus like Pease, Miller, Widlar, Dobkin, obsessed with being an engineer
 

Offline Psi

  • Super Contributor
  • ***
  • Posts: 9950
  • Country: nz
Re: ARM - easy way to start with
« Reply #4 on: October 18, 2017, 11:04:51 am »
any stm32 discovery board, they are ~$10 and have programmer and debugger on the pcb.

i use embitz IDE which uses gcc but there are other good ide's too.

downside with stm32 is the peripheral library is a mess
Greek letter 'Psi' (not Pounds per Square Inch)
 

Offline technix

  • Super Contributor
  • ***
  • Posts: 3507
  • Country: cn
  • From Shanghai With Love
    • My Untitled Blog
Re: ARM - easy way to start with
« Reply #5 on: October 18, 2017, 11:10:11 am »
In the Arduino brand there is Arduino Zero and Arduino M0 Pro. Both board comes with built-in Atmel EDBG debugger over SWD. You can use Eclipse CDT and OpenOCD as the software stack.
 

Offline Kjelt

  • Super Contributor
  • ***
  • Posts: 6460
  • Country: nl
Re: ARM - easy way to start with
« Reply #6 on: October 18, 2017, 11:31:05 am »
In the Arduino brand there is Arduino Zero and Arduino M0 Pro. Both board comes with built-in Atmel EDBG debugger over SWD. You can use Eclipse CDT and OpenOCD as the software stack.


You are serious in advicing to use an M0 for these requirements, what are you drinking thinking ?

Quote from: TS requiirements
GPS navigator with 4.3/5" color TFT with touch screen, street maps with path finder algorithm, voice synthesis

I would go at least M4 even M7 or better as nico already suggested go for a raspberry pi or beaglebone black kind of processing power to handle the GB's of map data, voice synthesizing and generating a fancy GUI on a touchscreen.  It would make the job a lot easier.
 

Offline sasaTopic starter

  • Regular Contributor
  • *
  • !
  • Posts: 168
  • Country: 00
  • Hobbyist in electronic
Re: ARM - easy way to start with
« Reply #7 on: October 18, 2017, 01:12:58 pm »
Thank you all for answer.

BTW, to be clear, I'm not really interested for any dev. boards, but rather for bare ARM chip and homemade whatever is needed for the project.

As well, RPI is an overkill.
The 30+ years professional desktop software designer and software engineer
 

Offline Kalvin

  • Super Contributor
  • ***
  • Posts: 2145
  • Country: fi
  • Embedded SW/HW.
Re: ARM - easy way to start with
« Reply #8 on: October 18, 2017, 01:19:43 pm »
Develop the core system using a proper development environment (Like PC or RasPi), and abstract the low-level stuff to be as portable as possible. When you have the core functionality developed and tested you can then determine the actual hardware resources needed, and you will be be able to select the microcontroller that is sufficient for your purposes.
 

Offline nctnico

  • Super Contributor
  • ***
  • Posts: 26906
  • Country: nl
    • NCT Developments
Re: ARM - easy way to start with
« Reply #9 on: October 18, 2017, 01:39:44 pm »
Thank you all for answer.

BTW, to be clear, I'm not really interested for any dev. boards, but rather for bare ARM chip and homemade whatever is needed for the project.

As well, RPI is an overkill.
No it is not. With your requirements you need an OS to deal with the various processes, reasonably fast graphics, some processing power for audio, storage space, memory, etc. This is way out of reach for a microcontroller so you'll need a SoC. If you are going to write everything from scratch you'll be working fulltime on this project for the next 5 years and even then you'll find you won't be able to do it on a (higher end) microcontroller running at 100MHz tops and something like 512kB of flash.
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline technix

  • Super Contributor
  • ***
  • Posts: 3507
  • Country: cn
  • From Shanghai With Love
    • My Untitled Blog
Re: ARM - easy way to start with
« Reply #10 on: October 18, 2017, 02:41:57 pm »
If you are doing the GPS stuff you may want to start somewhere higher. The M0 will not scratch it - unlikely for even a M7 on that matter. You might want to use Linux and maybe Android to make use of the vast library of existing GPS code.

Maybe first check if any existing Android tablet or iPad would suffice your needs? You may want to use the variants with cellular functionalities, as it seem to me like a common feature for cellular basebands to come with a built-in GNSS receiver. If not, it is still a better idea to use Raspberry Pi 3 + GPS module (or Raspberry Pi + cellular module with GNSS functionality + SIM card with data plan, if you want to have online map capabilities)
 

Offline sasaTopic starter

  • Regular Contributor
  • *
  • !
  • Posts: 168
  • Country: 00
  • Hobbyist in electronic
Re: ARM - easy way to start with
« Reply #11 on: October 18, 2017, 04:07:27 pm »
This project will be great extension of something I already done with pure ATmega328p.

It had:
- Nokia 5510 display, displaying standard GPS data and several other screens contain various statistic and analyze for satellites (signal strength, visibility, etc).
- Use menus and IR remote to change windows and makes setting.
- SD card, saving full NMEA data received every second in the file.
- Selecting places from SD card and show speed, distance and ETA. Saving full NMEA data  is not deactivated in that mode.
- Draws only 50mA when fix, allowing 42 hours with 3xAA batteries. Draws 90-100mA during initial searching for satellites (30s).
- Show voltage of battery and show warning when low.

And worked perfectly. All libraries was made from scratch in C++ and pure 32K...

Missing "GO HOME" function, maps and its rudimentary display with implementation of short path finder algorithm and primitive voice synthesis could be made with in 2560's 256K, I already started...

However, pure Nokia 5510 display is obviously a toy to display graphic on screen and if already upgrade old project, I would upgrade MCU as well.

I doubt it will last 5 years, more likely few months working 1-2 hours a day in free time to accomplish at least functional and looking decent, with at least 8h battery life. I do not want Wi-Fi and no fancy devices, just homemade one and open sky...

With nowadays mobile phones, Wi-Fi and google maps, this may looks as a pointless project... However, this is just a toy project comparing with this one:

http://www.homebrewcpu.com

But I understand him completely...
« Last Edit: October 18, 2017, 04:12:01 pm by sasa »
The 30+ years professional desktop software designer and software engineer
 

Online ataradov

  • Super Contributor
  • ***
  • Posts: 11260
  • Country: us
    • Personal site
Re: ARM - easy way to start with
« Reply #12 on: October 18, 2017, 04:11:44 pm »
I would prefer to start with ARM, rather than to use any advanced MCP/ATMEL MCU.
ARM does not make CPUs, they only make cores. And ARM is ad advanced as it gets at the moment.

And yes, you seem to be getting ahead of yourself. You should probably pick a simpler task to get a feel for capabilities of actual devices.
Alex
 

Offline funkathustra

  • Regular Contributor
  • *
  • Posts: 150
  • Country: us
Re: ARM - easy way to start with
« Reply #13 on: October 18, 2017, 04:12:28 pm »
Rather than just throwing out random suggestions for generic microcontrollers, maybe we can all notice the project requirements?
It is for plain hobby purpose and project is a GPS navigator with 4.3/5" color TFT with touch screen, street maps with path finder algorithm, voice synthesis, etc. In short, it should have functionality as any today standard car GPS navigation device.

The Arduino DUE and Cypress PSoC are terrible suggestions for this project; I don't know why they were even mentioned. Neither has an LCD controller, runs nearly fast enough to do voice synthesis or graphics, nor has enough RAM.

The STM32F4 might be able to be coaxed into building this (as it has an LCD controller and supports external SRAM), but what you really need is an application ARM processor, not a microcontroller. That's how Garmin and companies like that build this stuff. Once you have an application ARM processor on a board, you can get Linux/QNX/Windows Embedded/whatever OS up and running, which should make building out the system much easier.

Since you want to use bare chips instead of dev boards, I'd recommend looking at the Freescale/NXP i.MX6SL or even the ULL. These come in large, 0.8mm-pitch BGAs that are easy to solder, and can be squeezed into a 4-layer PCB stackup (especially the ULL), which will make prototyping a lot cheaper. You didn't mention battery constraints, but the i.MX6UL/ULL both have enough integrated LDOs that I've been able to get away without a PMIC on non-power-critical designs --- you only need two buck regulators to get a DDR3L-based system up and running.

You're most likely underestimating the complexity of this project by several orders of magnitude. Most embedded Linux projects I work on have a minimum 6-month time frame, with multiple developers working on them.

When you have 800 MHz parallel memory interfaces flying around a board, layout (especially power delivery and length-tuning) becomes critical. You'll need a good understanding of Linux kernel compilation and Device Tree stuff, as you'll have to integrate touchscreen drivers into the kernel, as well as configure the TFT's parallel RGB interface with the proper resolution/timing/front/back-porch settings.

At the application level, you're kind of on your own --- I don't know of any off-the-shelf path-planning libraries that are easy to integrate. I think graphics work is going to be especially challenging. None of that mapping data is open-source --- in fact, the vendors that create it often sell it to other companies, because it is so valuable.
« Last Edit: October 18, 2017, 04:19:55 pm by funkathustra »
 

Offline donotdespisethesnake

  • Super Contributor
  • ***
  • Posts: 1093
  • Country: gb
  • Embedded stuff
Re: ARM - easy way to start with
« Reply #14 on: October 18, 2017, 04:54:29 pm »
With nowadays mobile phones, Wi-Fi and google maps, this may looks as a pointless project...
Well, you said it.

If the goal is just to re-invent the wheel and have fun taking as long as you like building it from the ground up, then it doesn't really matter where you start. Asking for advice also seems rather pointless, as you are so sure of what you want and ignore sensible suggestions. Quite often people just seem to want a "magic answer" instead of doing their own research.

There are dozens of cheap ARM boards around, just buy one and get on with it!
Bob
"All you said is just a bunch of opinions."
 

Offline rsjsouza

  • Super Contributor
  • ***
  • Posts: 5986
  • Country: us
  • Eternally curious
    • Vbe - vídeo blog eletrônico
Re: ARM - easy way to start with
« Reply #15 on: October 18, 2017, 04:59:33 pm »
When you have 800 MHz parallel memory interfaces flying around a board, layout (especially power delivery and length-tuning) becomes critical. You'll need a good understanding of Linux kernel compilation and Device Tree stuff, as you'll have to integrate touchscreen drivers into the kernel, as well as configure the TFT's parallel RGB interface with the proper resolution/timing/front/back-porch settings.
With that in mind, perhaps the Octavo device? Fully compatible with BeagleBone (based on AM335x) but with a lot of complicated routing already inside its package. A dev kit is also quite cheap: the PocketBeagle at $25.
Vbe - vídeo blog eletrônico http://videos.vbeletronico.com

Oh, the "whys" of the datasheets... The information is there not to be an axiomatic truth, but instead each speck of data must be slowly inhaled while carefully performing a deep search inside oneself to find the true metaphysical sense...
 

Offline funkathustra

  • Regular Contributor
  • *
  • Posts: 150
  • Country: us
Re: ARM - easy way to start with
« Reply #16 on: October 18, 2017, 05:18:17 pm »
When you have 800 MHz parallel memory interfaces flying around a board, layout (especially power delivery and length-tuning) becomes critical. You'll need a good understanding of Linux kernel compilation and Device Tree stuff, as you'll have to integrate touchscreen drivers into the kernel, as well as configure the TFT's parallel RGB interface with the proper resolution/timing/front/back-porch settings.
With that in mind, perhaps the Octavo device? Fully compatible with BeagleBone (based on AM335x) but with a lot of complicated routing already inside its package. A dev kit is also quite cheap: the PocketBeagle at $25.
This is definitely a good idea.
 

Online Jeroen3

  • Super Contributor
  • ***
  • Posts: 4078
  • Country: nl
  • Embedded Engineer
    • jeroen3.nl
Re: ARM - easy way to start with
« Reply #17 on: October 18, 2017, 05:36:44 pm »
not require expensive environment

It is for plain hobby purpose and project is a GPS navigator with 4.3/5" color TFT with touch screen, street maps with path finder algorithm, voice synthesis, etc.
1. GNU ARM + Segger edu.
2. Limited time project
3. High LOC subjects.
Getting this, including board design, running on a bare metal processor will take some significant time.
I suggest getting a rpi zero and using more off-the-shelf stuff with a gui framework to get this running. Like Qt.
 

Offline donotdespisethesnake

  • Super Contributor
  • ***
  • Posts: 1093
  • Country: gb
  • Embedded stuff
Re: ARM - easy way to start with
« Reply #18 on: October 18, 2017, 08:27:33 pm »

I suggest getting a rpi zero and using more off-the-shelf stuff with a gui framework to get this running. Like Qt.

+1

Raspberry Pi is very cheap, plus lots of accessories available. Invariably when people ask about a project like this, it has been done before, and 30 seconds searching on Google will find them. For example, https://smstextblog.blogspot.co.uk/2014/01/raspi-sat-nav.html A couple of days and one could have a working system.

Bob
"All you said is just a bunch of opinions."
 

Offline ebclr

  • Super Contributor
  • ***
  • Posts: 2328
  • Country: 00
Re: ARM - easy way to start with
« Reply #19 on: October 19, 2017, 12:01:35 am »
This small list of board who can be programmed with a free online compiler

https://os.mbed.com/platforms/
 

Offline lucazader

  • Regular Contributor
  • *
  • Posts: 221
  • Country: au
Re: ARM - easy way to start with
« Reply #20 on: October 19, 2017, 09:39:12 am »
Have a look at this:
http://www.st.com/en/evaluation-tools/32f769idiscovery.html

STM32F7 processor (nice and fast)
Comes with external flash and ram if needed.
800*480 touchscreen display.
Already has an audio codec on board for high quality audio output.
Built in debugger.

Not too expensive considering the hardware that you get with it. Especially if this is a hobby project.

However it may be easier to go with a Raspberry Pi on this one. Probably easier to get up and running.

 

Offline danadak

  • Super Contributor
  • ***
  • Posts: 1875
  • Country: us
  • Reactor Operator SSN-583, Retired EE
Re: ARM - easy way to start with
« Reply #21 on: October 19, 2017, 11:14:27 pm »
Quote
The Arduino DUE and Cypress PSoC are terrible suggestions for this project; I don't know why they were even mentioned. Neither has an LCD controller, runs nearly fast enough to do voice synthesis or graphics, nor has enough RAM.

The STM32F4 might be able to be coaxed into building this (as it has an LCD controller and supports external SRAM), but what you really need is an application ARM processor, not a microcontroller. That's how Garmin and companies like that build this stuff. Once you have an application ARM processor on a board, you can get Linux/QNX/Windows Embedded/whatever OS up and running, which should make building out the system much easier.

I concur, that might have been a poor recommendation on my part. Although the ST part also does not have
necessary RAM either. I was thinking along the lines of architecture where LCD has a separate controller (or whole
job done on FPGA/ASIC). PSOC has components internal to interface to external controllers. Note PSOC 6 has
enough internal SRAM to handle small displays, 288KB. Buffer use only, not direct display memory. But family
is still preliminary. Internal DMA would handle that refresh to display RAM.

http://www.cypress.com/file/385916/download

I might take exception to speech capability as PSOC has a dedicated digital filter block that can
be used for other high speed tasks.

I stand corrected :).


Regards, Dana.
« Last Edit: October 20, 2017, 12:56:16 am by danadak »
Love Cypress PSOC, ATTiny, Bit Slice, OpAmps, Oscilloscopes, and Analog Gurus like Pease, Miller, Widlar, Dobkin, obsessed with being an engineer
 

Offline technix

  • Super Contributor
  • ***
  • Posts: 3507
  • Country: cn
  • From Shanghai With Love
    • My Untitled Blog
Re: ARM - easy way to start with
« Reply #22 on: October 20, 2017, 05:16:26 am »
Since you've mentioned TFT, touch screen and GPS, I would prefer to offload the vast amount of basic framework code to existing Linux OS.
That's to say, your platform better supports Linux.
Yes, you can do that with uC-OSiii or whatever RTOS with GUI, but then porting to another platform is not that easy, and some RTOSes may come with a huge price.
I would say, unless you need it to boot in seconds, or you need some very high reliability, the modern cheapest solution is to run Linux.

Depending on product type, if it's for hobby, consider RPi or Chinese SoCs (AllWinner, Rockchip, etc.). None of those are committed to be available for a long time, so prepare for EOL at any time.
For long term industrial products, consider Microchip SAM, NXP iMX or TI Sitara. These are guaranteed to be in production for at least 10 years.

Both RPi and AM3358 (Sitera, BeagleBone) are easy to use thanks to the huge user base, and if you want to go hard core, iMX and AllWinner are there.
In case you want to touch iMX and AllWinner without using Android, you will need to learn low level Linux programming and Yocto.
For RPi and AM3358, it's likely that knowing Python is all what you need.

The above applies to you if you just want to use ARM SoCs in a product. If you want to learn how a SoC is built (how peripherals are connected to ARM core, how boot works, etc.), you need to consider Zynq or Cyclone V (Xilinx and Intel FPGAs with ARM HPS).
Or maybe just use Android and slap some kind of existing GPS software on it. You do reduce yourself to a system integrator, but it is the fastest way to push a product prototype out.
 

Offline sasaTopic starter

  • Regular Contributor
  • *
  • !
  • Posts: 168
  • Country: 00
  • Hobbyist in electronic
Re: ARM - easy way to start with
« Reply #23 on: October 20, 2017, 08:18:43 am »
Well, you said it.

If the goal is just to re-invent the wheel and have fun taking as long as you like building it from the ground up, then it doesn't really matter where you start. Asking for advice also seems rather pointless, as you are so sure of what you want and ignore sensible suggestions. Quite often people just seem to want a "magic answer" instead of doing their own research.

There are dozens of cheap ARM boards around, just buy one and get on with it!

You obviously does not understand at all what is the purpose of the post and further explanation is pointless - read it careful and try to understand before decide to answer. Instead you deliberately insinuate and your goal is probably just trolling as obviously you have nothing better to do.

Read other comments carefully as well - no body except you reacted similar. Read my personal info and my level in electronic. If you expect that any question is asked by  professional EE, you are missing the point of this forum - register on a closed EE forum or avoid reading such threads. As well, if professional EE ask that kind of questions. it would be better for anyone (companies where applying for job and himself) to burn his diploma out.

Expecting from hobbyist to read 1000s pages of documentation just to chose suitable MCU is rather cynical.

As well, you have no grasp about my country laws, so generally stating "cheap" may be in your country and I deliberately keep that info private. I can buy here RPI for 100 Euro from local store (or if order outside of county with all custom taxes on 25 Euro board > 100 Euro or brick instead a board), however I wont and prefer to use bare ARM chip and easy flashing - as I already clearly noticed, you obviously did not read. Then it is better to restrain yourself from partially reading, misunderstanding, making bad assumptions and conclusions and writing such messages. All that if your goal indeed is not trolling around...

Etc, etc..

Every thread ends-up with misunderstandings, personal attacks, off topic comments, point of doing anything and a at end point of life... And these kind of messages make this forum as any - a bad place for hobbyists and beginners.

I wanted to avoid this, but you asking for it.
« Last Edit: October 20, 2017, 08:30:27 am by sasa »
The 30+ years professional desktop software designer and software engineer
 

Offline donotdespisethesnake

  • Super Contributor
  • ***
  • Posts: 1093
  • Country: gb
  • Embedded stuff
Re: ARM - easy way to start with
« Reply #24 on: October 20, 2017, 07:49:38 pm »
As well, you have no grasp about my country laws, so generally stating "cheap" may be in your country and I deliberately keep that info private.

Ok, I will assume you live in the USA. I would be too embarrassed to admit that as well  ;D Also the USA has the highest taxes of any country, probably, the highest taxes ever. That's what I was told. I think probably they are, many many people say they are. That would explain why you have to pay so much.

Anyway, we can do this backwards. Tell us what ARM chips are available to you at what you consider a reasonable price, and we can tell you whether they are suitable.
Bob
"All you said is just a bunch of opinions."
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf