Home
JAQForum Ver 20.06
Log In or Join  
Active Topics
Local Time 14:35 19 May 2024 Privacy Policy
Jump to

Notice. New forum software under development. It's going to miss a few functions and look a bit ugly for a while, but I'm working on it full time now as the old forum was too unstable. Couple days, all good. If you notice any issues, please contact me.

Forum Index : Microcontroller and PC projects : Suggest real time micro dev board?

     Page 1 of 2    
Author Message
louarnold
Newbie

Joined: 12/02/2016
Location: Canada
Posts: 11
Posted: 02:53pm 12 Feb 2016
Copy link to clipboard 
Print this post

Im looking for a micro that will be useful in a real time system project. I know TI has some and others are in the PIC series. A development board would be best at the moment. With tools like a debugger, assembler/HLL, etc. If you have experience with some, suggest them. This is for hobbyist purposes, so free tools would be helpful, as always.

This will be used for event detection and responsive control.
Regards.Edited by louarnold 2016-02-14
 
viscomjim
Guru

Joined: 08/01/2014
Location: United States
Posts: 925
Posted: 03:27pm 12 Feb 2016
Copy link to clipboard 
Print this post

Hi louarnold! Could you give a bit more details about what type of things you plan to accomplish with this dev. board? This would help in making suggestions. Welcome to the back shed!!!
 
louarnold
Newbie

Joined: 12/02/2016
Location: Canada
Posts: 11
Posted: 03:53pm 12 Feb 2016
Copy link to clipboard 
Print this post

To do with it? Many things over time. I just want to pick something that I can use over a few years so I dont have to learn several different processors. And something past the Arduino.
Examples:
-Closing of a switch, and a realtime reaction to it.
-Hardware timer interrupt to read a value.
-"Clicks" on a rotating sensor.
-Reading lazer rangefinder device.
-Stear a small uav.
-Rotate a wireless camera.
-Realtime messaging between tasks.
-Multitasking OS
-Handling of interdevice comms, I2C, RFID, wireless comms.
-Peripheral interface, etc.
Whatever is normally done by realtime OSs.
I have my late grandfather's scooter that I want to control the steering of. I have a handle on start, stop and speed.
 
MicroBlocks

Guru

Joined: 12/05/2012
Location: Thailand
Posts: 2209
Posted: 07:55pm 12 Feb 2016
Copy link to clipboard 
Print this post

All the above can be done with any microcontroller.

There is no real 'realtime'. Realtime is anywhere between a few microseconds to about half a second depending who you talk to. I worked for companies that distributed 'realtime' stock quotes and there the definition was within 0.8 seconds.

'Realtime' becomes a challenge when you need to monitor multiple signals and have to do complicated calculations. Any 'Realtime' OS is just a timeslicer with priorities.

With the cheapest of the cheapest microcontrollers and a few lines of code you could accomplish most of the above, AND do it considerable faster then with a 'Realtime OS'.

However once lots of task (and calculations) have to be done programming gets more difficult and timeslicing software assists with that. Once you use a 'Realtime OS', things start to get more and more less realtime. Just something to keep in mind when timings are critical.

A realtime OS that supports lots of mcu's is http://www.freertos.org/.

A quick way to get started with that is using a education kit like http://shop.freertos.org/FreeRTOS_Microchip_PIC32_Evaluation_Kit_p/pic32_education_kit.htm or http://shop.freertos.org/FreeRTOS_NXP_LPC1769_LPCXpresso_Evaluation_Kit_p/lpc1769_education_kit.htm

Microblocks. Build with logic.
 
Chris Roper
Senior Member

Joined: 19/05/2015
Location: South Africa
Posts: 280
Posted: 08:55pm 12 Feb 2016
Copy link to clipboard 
Print this post

This is a very versatile and well priced board to get started with the PIC.

http://www.microchip.com/promo/curiosity

I also did a couple of blog posts on development boards, in particular the Microchip Low Pin Count Demo Board, that you may find interesting.

http://caroper.blogspot.co.za/2015/08/lord-of-boards-microchip-make-vast.html

The Microchip MPLAB X suite and compilers are free, without optimization, but are good to get started. I also Like Great Cow Basic http://gcbasic.sourceforge.net/ as a n interesting starter tool and for rapid prototyping on the 8 bit pics, especialy the inline assembler.

A small bread board complements all of the above but could also act as starter board as most PIC Microprocessors only require power, ground and reset to get them running and to data lines to program, all 5 of them can be supplied by the PICKit Programer.

Cheers
Chris

http://caroper.blogspot.com/
 
JohnS
Guru

Joined: 18/11/2011
Location: United Kingdom
Posts: 3678
Posted: 09:29pm 12 Feb 2016
Copy link to clipboard 
Print this post

There are hundreds or thousands of chips & boards you might use.

Maybe decide the programming language to help narrow the choice.

Also, the (electrical) power range - some use "lots" (an amp or more).

And maybe whether you want it to be able to run from flash memory or whether booting from a disk-type device (SD card, HDD, etc) is OK.

If you want everything to respond to interrupts it's maybe overkill for small projects but scales well on large ones.

You might pick at one extreme a $2 ESP8266 board (like ESP-12 or ESP-201) up to a $19 board like Pine64 (quad-core 1.2GHz, 512MB RAM).

The Arduino boards lie between those. I can't imagine going to a PIC16 or PIC18 from an Arduino - I'd go to an ESP8266 or PIC32 or whatever instead.

So, hardware is very cheap. Choose your software...

Choices, choices!

John
 
louarnold
Newbie

Joined: 12/02/2016
Location: Canada
Posts: 11
Posted: 05:55am 13 Feb 2016
Copy link to clipboard 
Print this post

Ive read about the Beaglebone Black. Anything faster than this? The processor is a 1GHz AM3359 Sitara ARM Cortex-A8.
-Lou.
 
Chris Roper
Senior Member

Joined: 19/05/2015
Location: South Africa
Posts: 280
Posted: 06:01am 13 Feb 2016
Copy link to clipboard 
Print this post

  louarnold said   Ive read about the Beaglebone Black. Anything faster than this? The processor is a 1GHz AM3359 Sitara ARM Cortex-A8.
-Lou.


Are you looking for a Microcontroller Development board or a small PC?

If you want to create Operating systems, device Drivers, Run HD Video etc then look at the ARM Cortex boards. If you want to lean the basics, according to the list you posted, then start with something simple like a PIC18 or an Enhanced PIC16.

Learning the basics first, on a simpler device, will be worth far more in the long run.

Cheers
Chris


http://caroper.blogspot.com/
 
louarnold
Newbie

Joined: 12/02/2016
Location: Canada
Posts: 11
Posted: 06:10am 13 Feb 2016
Copy link to clipboard 
Print this post

  louarnold said   Ive read about the Beaglebone Black. Anything faster than this? The processor is a 1GHz AM3359 Sitara ARM Cortex-A8.
-Lou.

Hahaha, Ive been programming realtime system for 20 years. I know the basics, but not the current technology. I see no point in going with a slow processor as Ive been playing with the Arduino for several years. Should have said so, I guess, but I thank you for the consideration.

Would still love an answer to the BBB question, though.
Thanks.
 
JohnS
Guru

Joined: 18/11/2011
Location: United Kingdom
Posts: 3678
Posted: 06:23am 13 Feb 2016
Copy link to clipboard 
Print this post

The BBB is not especially fast. In some tests it's slower than the RPi. I expect it's slower than the RPi2.

The BBB is also pretty expensive.

There are tons of faster chips, but why do you want anything faster or that fast?

Also, is it interrupts that you want to be fast? Many chips will have lower interrupt latency, you can expect. (For normal use they're ALL plenty fast enough.)

If you plan to use Linux or the like then you've largely given up on realtime (predictability etc) - again depending what you want to do.

The typical Arduino is SLOW. (Obviously any interpreted Basic is likely slower still. Yet fast enough for many typical uses.)

If you want FAST it'll be expensive and eat power. Sounds the opposite of what you really want but tell us more.

JohnEdited by JohnS 2016-02-14
 
Dylan
Regular Member

Joined: 17/06/2013
Location: Netherlands
Posts: 81
Posted: 06:46am 13 Feb 2016
Copy link to clipboard 
Print this post

http://www.xmos.com/support/boards?product=17441

I got mine free, but they are only $15.

https://www.xmos.com/download/private/XMOS-Programming-Guide-%28documentation%29%28F%29.pdf has more detail.
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 8605
Posted: 07:32am 13 Feb 2016
Copy link to clipboard 
Print this post

Look at the STM32 range

The STM32 discovery boards are cheap, complete (no additional programmer/debugger required) and ready to work for development.

The IDE/compiler is free (STM32 System Workbench) and by the standards of many manufacturers the hardware library support is good.

I did a port of Micromite to the STM32F407 (168MHZ) and Uwe and Fabrice have done a port of the Maximite to the STM32F746 (200MHz) - search the forum for details.

For real time work (i.e no LINUX) these environments are ideal. They also run FreeRTOS well if required.

These are a serious step-up from Arduino, hardware floating point, full 32-bit, ARM core, 1Mb flash, plenty of RAM, etc. but still reasonably accessible down to the hardware registers if required.

 
louarnold
Newbie

Joined: 12/02/2016
Location: Canada
Posts: 11
Posted: 03:45pm 13 Feb 2016
Copy link to clipboard 
Print this post

  Chris Roper said  

Are you looking for a Microcontroller Development board or a small PC?

If you want to create Operating systems, device Drivers, Run HD Video etc then look at the ARM Cortex boards. If you want to lean the basics, according to the list you posted, then start with something simple like a PIC18 or an Enhanced PIC16.
mal OS like Linux.
Chris

In fact, this is a great idea. In the final steps of a project, I'll be looking for a board that can be embedded - that will run a completed program in flash memory, without a normal OS such as Linux. It may have the full complement of devices of a development board, but not be connected to a development system. A stripped down Arduino is an example.

Am I looking for a PC? Only as a development system.Edited by louarnold 2016-02-15
 
louarnold
Newbie

Joined: 12/02/2016
Location: Canada
Posts: 11
Posted: 04:15pm 13 Feb 2016
Copy link to clipboard 
Print this post

I should mention: I took a few months to play with the RPi 1.

This was not a good experience. Help in setting up a development environment was hard to find. It seems that all those who provided help had to figure things out for themselves. And I had to spend more time adapting it to my Linux system, than I ever spent on programming it.

The other problem was the development process itself. The problem was of course the graphics unit which was a black box. It was unwieldy to say the least. This was in stark contrast to the experience with the Arduino and with the PIC16.

Lastly, the consensus was that the RPi could not be used for real-time work primarily because of the proprietary nature of the graphics unit.

Its this stuff I want to avoid on processors that will rely on for future projects.
After some thought, the board should not have a graphics controller. A data transfer channels used to upload and download data and programs is sufficient for developmental work unless a faster method exists. One should be able to attach a GUI device to the board for in-the-field interaction, if needed. These are just thoughts to see what's out there.

Many thanks.Edited by louarnold 2016-02-15
 
louarnold
Newbie

Joined: 12/02/2016
Location: Canada
Posts: 11
Posted: 06:42pm 13 Feb 2016
Copy link to clipboard 
Print this post

  Chris Roper said  Are you looking for a Microcontroller Development board or a small PC?

If you want to create Operating systems, device Drivers, Run HD Video etc then look at the ARM Cortex boards. If you want to lean the basics, according to the list you posted, then start with something simple like a PIC18 or an Enhanced PIC16.
mal OS like Linux.
Chris

After reading and much thought, this has become the defining question.

I would like to use the PC for development, much as I did for the Arduino and PIC. The turn-around time was much faster. The method for the RPi was unwieldy and undesirable.

I want to use the development board to develop solutions, and the same hardware for a prototype. A commercial board with more basic hardware will do for the final hardware. I don't wish to design and build boards from scratch.

I would like to use an open source BSP for the development board as well as for the prototype. It would be useful if a BSP could be built from modules for the final hardware. Using a more general purpose OS like Linux is not suitable, rather the BSP should be suitable for a hard real-time response.

Its been mentioned - perhaps not here - that processor speed is not always a sign of hard real-time capability. If this is true then what is? Perhaps I should start another topic for this?
 
JohnS
Guru

Joined: 18/11/2011
Location: United Kingdom
Posts: 3678
Posted: 05:18am 14 Feb 2016
Copy link to clipboard 
Print this post

  louarnold said   I should mention: I took a few months to play with the RPi 1.

This was not a good experience. Help in setting up a development environment was hard to find. It seems that all those who provided help had to figure things out for themselves. And I had to spend more time adapting it to my Linux system, than I ever spent on programming it.


Odd. It's easy either to program on it or cross-develop for it.

You can cross-develop for almost anything if gcc supports it (easier from Linux than Windows).

You need to plan how to get code onto the target. For things with JTAG it can be something like OpenOCD.

The RPi isn't oriented to that way of working.

  louarnold said   The other problem was the development process itself. The problem was of course the graphics unit which was a black box. It was unwieldy to say the least.


And of course the RPi (as quite a few other boards/chips) has proprietary stuff as you found.

The BIG issues really matter, like whether you can live with proprietary semi- or un-documented stuff, whereas the exact speed of CPU - well, there are so many...

Also, are there things you MUST have (maybe HDMI by way of example) because if so start with things that have what you need.

So far it sounds like a BBB would be a bad fit for you.

You sound to want to do either "bare metal" programming or some RTOS, but probably not Linux. And probably don't want to develop on top of the board/OS but instead cross-develop.

If you're going to do the latter, do you want an IDE? How do you want to debug? (Some like gdb + OpenOCD, others don't, for example.)

If you're good at reading datasheets etc then some chips are great because they actually have them. Some are even fairly accurate. If you hate reading datasheets then it doesn't much matter...

JohnEdited by JohnS 2016-02-15
 
louarnold
Newbie

Joined: 12/02/2016
Location: Canada
Posts: 11
Posted: 08:50am 14 Feb 2016
Copy link to clipboard 
Print this post

Lou's response --> [Lou]
[Lou] This was a great discussion for determining requirements
-----
Odd. It's easy either to program on it [RPi 1 board] or cross-develop for it.
You can cross-develop for almost anything if gcc supports it (easier from Linux than Windows).
You need to plan how to get code onto the target. For things with JTAG it can be something like OpenOCD.
The RPi isn't oriented to that way of working.
And of course the RPi (as quite a few other boards/chips) has proprietary stuff as you found.
[Lou] The RPi is dead for me. Enough said. Cross-compiling is not the issue. The Arduino programming environment was much friendlier as was that for the PIC16. That's what I want in the future.
---
The BIG issues really matter, like whether you can live with proprietary semi- or un-documented stuff, whereas the exact speed of CPU - well, there are so many...
Also, are there things you MUST have (maybe HDMI by way of example) because if so start with things that have what you need.
[Lou] Anything that can kill your real-time budget is not acceptable. But faster processors relax the budget; so both make a difference. Must-haves can be different for development vs fielded systems. But a list of must-haves is a very good point.
---
So far it sounds like a BBB would be a bad fit for you.
[Lou] Yes, the BBB no longer sounds good. Thanks for mentioning it.
---
You sound to want to do either "bare metal" programming or some RTOS, but probably not Linux. And probably don't want to develop on top of the board/OS but instead cross-develop.
[Lou] “Bare-metal” isn't really needed. Hardware on a robust board can be disabled in a fielded unit. Dual software will have to handle both development and fielded configurations. A much simpler and smaller RTOS (a modular RTOS) would be great for the work. A simple serial port would send data to a an online counterpart that might reports status via the internet. (<fearfully> Gees...we're beginning design!)
---
If you're going to do the latter, do you want an IDE? How do you want to debug? (Some like gdb + OpenOCD, others don't, for example.)
[Lou] I'm lazy; I like IDEs.
---
If you're good at reading datasheets etc then some chips are great because they actually have them. Some are even fairly accurate. If you hate reading datasheets then it doesn't much matter...
[Lou] Hahaha. I did read the montrous PIC16 user guide.
Re. debugging: I have never used the JTAG approach., but would like to. That topic is TBD.
----
Thanks JohnS.
So given all this: any suggestions for development boards with:
-open-source modular RTOS
-Arduino-like IDE,
-has JTAG and support for it,
-a very fast processor, but no graphics units
-avaialble in bare-bones boards.
 
JohnS
Guru

Joined: 18/11/2011
Location: United Kingdom
Posts: 3678
Posted: 09:05am 14 Feb 2016
Copy link to clipboard 
Print this post

Do you have a feel for what I/O you want?

Both GPIOs and specific bus/etc things like I2C, I2S/TWI, SDIO, 1-wire

USB? Which spec(s)?

Networks - WiFi? LAN? etc

Quantity of data - translates to how much RAM / flash / uSD / etc

UARTs are pretty much always there.

Graphics? If so, what kinds of interfaces/screens/resolution?

I'm sure I forgot some others but that's a start!

Oh - you'll have gathered a lot of people here are using 'mites of one kind or another and a custom, proprietary, Basic that handles lots of low level stuff (as would an RTOS). It shows what even very cheap chips (PIC32, STM32) can do. (Compared to the more or less 16MHz / few KB RAM you know about they're 40/80/moreMHz and say 128KB RAM with enough flash to store the Basic and your own code so it's almost instant on from application of power.)

JohnEdited by JohnS 2016-02-15
 
louarnold
Newbie

Joined: 12/02/2016
Location: Canada
Posts: 11
Posted: 04:01pm 14 Feb 2016
Copy link to clipboard 
Print this post

In response to JohnS:
Desired characteristics:
-A/D D/A, several channels of each.
-Digital inputs and outputs - 16 each. 5v tolerant
-I2C hardware for comms.
-USB 3.0 is helpful in the development board, but not the fielded board.
-No networking capability is needed.
No graphics will be created. This will be a purely embedded autonomous system in the sense of not communicating with the world in normal operating mode. In a test mode, data will be exchanged, but the human interface will be in a pluggable module.
-Memory. I can never get a handle on this unless at an early stage. It would be useful to have a microSD card to bring in the system. Never had to produce a boot loader, so that must be provided or I will have to code one (that will be a great learning experience.
-Re the mites and BAsic, etc. Never heard the term "mite" before
-Re The PIC and STM microprocessors: The development boards and tools were quite expensive some 5 years ago. As for the speed, 80 MHz doesn't sound like much from my experience. Obviously the need is dictated by the application - with which I have no experience at this time.
-USB and UART: Are these implemented in hardware these days?
 
JohnS
Guru

Joined: 18/11/2011
Location: United Kingdom
Posts: 3678
Posted: 11:32pm 14 Feb 2016
Copy link to clipboard 
Print this post

H/w will do most things. Some old, crude, chips don't have USB or you bitbang it - I'd avoid such. UBS3.0 is only on some chips as yet so avoid unless it's vital.

Many chips are NOT 5v-tolerant. If it matters so much, be wary (check errata not just datasheets!) or look at level converters.

I'm unsure what your s/w will do other than wait for h/w so can't guess whether 80MHz is far faster or slower than you may need. However, do bear in mind people on here appear to be doing roughly the things you want and working fine with an interpreted Basic (essentially because the h/w does so much and 40Mhz etc is most of the time fast enough for the rest). I'm not suggesting you should use Basic but compiled C is say 20x faster so I do wonder why you feel the need for vast speed?

I expect you don't need expensive dev boards. ST make very low cost boards (but check the licence suits you - probably fine for dev use then get something off ebay/etc that's not made by ST) or you can get good cheap PIC32 ones anywhere except Microchip (I can't swear they have NONE but you get the idea).

More powerful boards exist so it's back to what you want and is it available without proprietary stuff.

For more ideas if there's an RTOS you like have a look at the chips it supports and then look for boards with those on.

By way of example, a PIC32 may have say 512K flash so no need for SD card unless you want to write data to it. An ST (STM32) may well have 1MB or more flash. Etc. If you're going to write that much in C/C++ you'll be busy for a while.

BTW, OpenOCD supports more than JTAG (SWD, ICSP, etc).

JohnEdited by JohnS 2016-02-16
 
     Page 1 of 2    
Print this page
© JAQ Software 2024