development board to start learning ARM

Go To Last Post
48 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I want to start learning ARM and I found these in a store but I cant choose which should I buy:

Name Processor ARM Core

Max Clock (MHz)

Program Memory (KB) SRAM (KB) Programming method Price (x10000 IRR) Origin
NUCLEO F303RE STM32F303RE Cortex M4 72 512 64 Embedded ST-Link/V2 610 Original
Arduino DUE-R3 ATSAM3X8E Cortex M3 84 512 96 Bootloader 335 Chinese Clone

 

Looks like Arduino's processor is better than other one (except that it is M3).

I think Arduino in easier to use but if I buy NUCLEO, I'll have a ST-Link/V2 also which can be used to program all ARM and AVR Mega processors (and probably XMega in near future) by some magic.

Also, I think STM32 processors are used more than ATSAM.

Any suggestion?

This topic has a solution.

Slow and Steady!

Last Edited: Thu. Feb 25, 2021 - 09:38 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

What do you mean by "learning ARM"?

 

Mostly, the CPU architecture is irrelevant to application development - it's the peripherals that you need to understand.

 

Especially so on Arduino - where the whole point is to "hide" the nitty-gritty hardware details from you.

 

pajuhesh80 wrote:
if I buy NUCLEO, I'll have a ST-Link/V2 also

No, you won't - it's on the Nucleo board.

 

Also, as the name ST-Link suggests, it is specifically designed by ST for their processors; it is not supported for other manufacturers' devices (althoug people have "hacked" it)

 

You certainly can't program or debug AVR (any flavour) with an ST-Link.

 

pajuhesh80 wrote:
I think STM32 processors are used more than ATSAM.

I think you're probably right there

 

Obviously this is not the place to support or promote ST products!

 

ST have a huge amount of training materials on their website, YouTube channel, etc:

 

https://community.arm.com/develo...

 

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

 

awneil wrote:
What do you mean by "learning ARM"?

Take a thorough look at this thread: https://www.avrfreaks.net/forum/learnign-curve-8-bit-avr-32-bit-avr-or-armsam

 

For understanding the Cortex-M CPU itself, I would highly recommend Joesph Yiu's Definitive Guide books:

 

https://www.elsevier.com/search-...

 

See also: https://www.keil.com/books/armbooks.asp

 

https://developer.arm.com/architectures/learn-the-architecture

 

https://community.st.com/

 

EDIT

 

Also: https://www2.keil.com/mdk5/learn

 

and note that there is a free Keil edition for use with STM32 Cortex-M0 parts: https://www2.keil.com/stmicroelectronics-stm32/mdk

 

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
Last Edited: Wed. Feb 24, 2021 - 09:13 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I was going to move this to ARM forum but perhpas General Electronics is the right place?

 

Anyway I am kind of surprised that the store only has TWO options for ARM? Surely there must be other choices too?

 

If you are coming from AVR8 and looking for an entry point in the ARM world the Cortex with the closest resemblance to AVR are surely going to be M0+ not M3 or M4 ?

 

Personally I think one of the key things, especially when you reach the increased complexity of ARM, is to be able to debug the thing so I wouldn't accpet a dev board if it did not have a debug (probably "SWD") link.

 

Oh and if you are headed in an STM32 direction surely the "card that started it all" is the STM32F4DISCOVERY. That is a really powerful Cortex (168MHz) with hardware floating point and it comes with a debugger on board and all for about £10. There's whole rafts of products that have been built up around this.

 

A quick Google says that the original has been superceded by: STM32F407G-DISC1 https://www.st.com/en/evaluation... but it's $20

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

awneil wrote:
What do you mean by "learning ARM"?

When I started to learn PIC8, I told my self: "It won't be hard. Almost same C code." However, It was harder than I thought specially because of buggy MPLAB X IDE. frown

 

awneil wrote:
No, you won't - it's on the Nucleo board.

And I wrote "Embedded ST-Link/V2" in table. Anyhow it is a fully functional ST-Link with pinouts which can program other ST products.

 

awneil wrote:
(althoug people have "hacked" it)

That is the magic part I'm talking about. wink

 

awneil wrote:
You certainly can't program or debug AVR (any flavour) with an ST-Link.

Right but what if you add STK500 protocol to ST-Link by magic? laugh

 

The magic is a project named Sis-Link which manipulates ST-Link firmware so it will be able to program all ARM and AVR Mega processors beside ST products. Original webpage is Persian but Google translate could help: Sis-Link

Slow and Steady!

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

The Nucleo boards would be preferable as they have a usb->serial as well as the debugger. I think the 303 has a high speed adc. Seems it's around $15 USD, so that's a reasonable price.

 

The SAM3 is old hat, I wouldn't bother with that.

 

For hobby use, I'd normally look for something that has Arduino core support (except for the SAM3). The 303 might, I haven't looked.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

clawson wrote:
Surely there must be other choices too?

Yes but they are unavailable, in import queue or too expensive.

Slow and Steady!

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I personally like Arduino UNO hardware but not software. I used it in prototype (breadboard version) of all my mega AVR projects because of ready pinouts and easy programming (bootloader); however I use Microchip (Atmel) Studio to write code and AVEDUDE to send it to Arduino.

Slow and Steady!

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I don't use Arduino software - PlatformIO is far superior. I say Arduino due to the vast amount of libraries.

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

pajuhesh80 wrote:
I personally like Arduino UNO hardware but not software. I used it in prototype (breadboard version) of all my mega AVR projects because of ready pinouts and easy programming (bootloader); however I use Microchip (Atmel) Studio to write code and AVEDUDE to send it to Arduino.
There's nothing to stop you doing that too with a DUE. With Nano/Tiny/Uno/Mega you can test stuff out with Arduino then import that into AS7/MCS7 and it will then build with the avr-g++ compiler. You can do exactly the same with DUE, it's just that after import to Studio 7 it will then use arm-g++ rather than avr-g++ (just as is also going on "under the hood" in Arduino anyway.

 

BTW about the only benefit you "buy" by moving to Studio from Arduino is debugging. It's no longer the case of being limited to debugging using Serial.print()s but you can now use an ICE. Otherwise there's not a lot to differentiate and while you are in the Arduino IDE you have easier/more direct access to the Arduino libraries your solution may require.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Store have these boards available (sorted by cheap to expensive):

  • Arduino DUE
  • STM32F051 Discovery
  • NUCLEO F042K6
  • NUCLEO F303RE
  • STM32F303 Discovery
  • NUCLEO L476RG
  • STM32F072 Discovery
  • STM32F407G Discovery
  • NUCLEO F767ZI
  • STM32F746G Discovery

Slow and Steady!

Last Edited: Wed. Feb 24, 2021 - 10:17 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I found NUCLEO F446RE in another store. A little more expensive but seems to be much better than F303RE.

Slow and Steady!

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0


pajuhesh80 wrote:

 I use Microchip (Atmel) Studio to write code and AVEDUDE to send it to Arduino.

clawson wrote:
There's nothing to stop you doing that too with a DUE.

Absolutely: it's just a microcontroller on a board - it neither knows nor cares what IDE or Framework you use to create your code

 

See: https://www.avrfreaks.net/commen...

 

Quote:
BTW about the only benefit you "buy" by moving to Studio from Arduino is debugging. 

That's what I thought, though someone recently mentioned that the source browsing is far better (as in, Arduino has none) ?

 

 

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

pajuhesh80 wrote:
seems to be much better (sic) than F303RE

That depends on what you mean by "better"

 

It will be a lot more complex - which is not necessarily a good thing for a beginner to start learning on ...

 

Is a Porsche "better" than a mini simply because it has a bigger engine and goes faster?

 

Would anyone recommend that a learner should take their first lesson in a Porsche?

 

surprise

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
Last Edited: Wed. Feb 24, 2021 - 10:40 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

clawson wrote:
I think one of the key things, especially when you reach the increased complexity of ARM, is to be able to debug the thing so I wouldn't accpet a dev board if it did not have a debug (probably "SWD") link.

Absolutely!

 

Kartman wrote:
Nucleo boards would be preferable as they have a usb->serial as well as the debugger

+1

 

That's pretty much de rigueur these days, too.

 

It's stuff like this that blows away the initial attraction of things like the Blue Pill - especially for a beginner to learn on.

 

Apart from the cost of adding the debugger and USB-UART, there's also all the hassle of procuring them, making sure you get the right ones, getting them all set-up and connected correctly, etc, etc

 

You only have to look at the number of posts here from people (some not even beginners) failing to get that right to see the advantage of an all-in-one board.

 

Plus, with a manufacturer's own board, you will get a wealth of support, examples, etc, etc.

 

Seems like a no-brainer to me.

 

 

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

awneil wrote:

Is a Porsche "better" than a mini simply because it has a bigger engine and goes faster?

 

Would anyone recommend that a learner should take their first lesson in a Porsche?

Umm yes and yes. The only possible downside with a Porsche is that the gearboxes can be a bit "notchy" so if you are a beginner at a T junction struggling to get it back into first you won't appreciate the "where the bloody hell is first anyway?" experience. (don't ask me how I know this).

 

(later models have better gearboxes though).

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 1

I just checked on the 303 - has some kick-ass ADC s and two DACS. Looks like it's targeting motor control. Just the thing for managing a centrifuge if you're an apiarist or physicist.

 

So, choose the one that has peripherals that you might be interested in. If you want something super fast, then go for the 7xx series. If you want even faster, get a Teensy4 - no debug though :(

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

awneil wrote:
Would anyone recommend that a learner should take their first lesson in a Porsche?

Driving a car with auto transmission (or even semi-auto paddle transmission) should be easier than a manual one. The only disadvantage is if you crash the Porsche, it will be much more expensive to repair it! cheeky

Anyway, these boards are really expensive here and I can't plan "I'll buy this cheaper and simpler one to start, then buy that more expensive and complicated one to continue". I should buy a good one and stick with it. frown

Slow and Steady!

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Are you starting to learn ARM because you need to design new products that use inexpensive, but powerful microcontrollers?  Or, do you need to learn ARM because you have become part of team or large operation that already uses ARM?

 

If you are designing new products,  go with Arduino.  You need to learn to connect sensors, displays, and memory devices quickly.  Arduino provides libraries to do all these things.  You can use these libraries in your product's code.

 

If your work-group is already using ARM, buy the more advanced Cortex-M4 board.  Learning will be longer and go into more processor theory and detail.

 

Check if your stores have any STM32F103C8T8 development boards.  These are Cortex M3 and have many resources, code examples, and tutorials available.  They are often called "blue pills".

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Simonetta wrote:
If your work-group is already using ARM, buy the more advanced Cortex-M4 board.  Learning will be longer and go into more processor theory and detail.

Actually, we are some friends who created a team and work on different kinds of projects. I mostly design PCBs and write codes. I want to learn ARM so we can use it in future projects.

I don't like to use a library without fully understanding its code. If it is not very complicated and I'm not in a time limit, I really prefer to write code myself.

I also may participate in an electronics competition next year which targets ARM as processor. So fully understanding things is really important for me.

Slow and Steady!

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

pajuhesh80 wrote:
I want to learn ARM

Again, ARM is really not the thing here.

 

What you need to be able to do is to get to grips with the Peripherals in whatever chip you're using - whether it's AVR or ARM or RISC-V or MIPS or whatever.

 

Again, this was all covered at length in the above-mentioned thread: 

 

https://www.avrfreaks.net/forum/learnign-curve-8-bit-avr-32-bit-avr-or-armsam

 

Please do everyone a favour by reading that through - so we're not just repeating the same old stuff over & over again.

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

awneil wrote:
Please do everyone a favour by reading that through

The topic you sent is really long.frown do you mean a specific post there?

Slow and Steady!

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0


I'm guessing you are not able to buy any of these items? That is, STLink clone (usually STM32F103), blue pill (STM32F103)  and black pill (STM32F411).

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

As I have a drawer full of ARM dev boards I got simply to evaluate but then didn't use I'd happily pop one in the post but I'm not sure what rules we might have about sending electronics to Iran? Assuming it's possible then we just have to wait a while until I get the vaccination and can finally go out to a post office. As it happens I just got the call I've been waiting a year for - so it won't be too long now. (which is probably why I'm feeling generous! cheeky). Note though - it could still be well into March before I can actually venture out. 

 

EDIT: how very curious, Royal Mail list prohibited items as:

 

  • Lithium batteries and equipment containing lithium batteries
  • Used clothing
  • Radio systems equipped as follows: single sideband, upper sideband, lower sideband, beat frequency oscillator, continuous wave, air band, police band
  • Radio systems equipped with an FM band having a frequency range of 76 to 87 MHz
  • Money (banknotes, etc) and other securities
  • Narcotic drugs (marijuana, cannabis, etc.) and their seeds, as well as psychotropic substances, are prohibited.

 

I get the reason for most of those but what possible reason is there for prohibiting "used clothing" ?!? (anyway CPU development boards don't appear there).

Last Edited: Wed. Feb 24, 2021 - 03:18 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

See #15 - I think a Nucleo is a far better option for a beginner to learn on.

 

Also today: https://community.arm.com/develo...

 

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

pajuhesh80 wrote:
The topic you sent is really long.frown do you mean a specific post there?

Go on - one thing you're going to have to get used to developing for ARM chips is doing a lot of reading!

 

There is a lot to take in.

 

 

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
This reply has been marked as the solution. 
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

clawson wrote:
I'd happily pop one in the post

Thank you so much but posting something to Iran won't be easy and may be costly and troublesome for both sender and receiver.

Actually, this board is going to be my birthday gift! Last year my birthday gift was PICKIT3!laugh My parents gift me the money and I buy my favorite stuff. 

 

awneil wrote:
one thing you're going to have to get used to developing for ARM chips is doing a lot of reading!

OK. I read that discussion briefly and based on both discussions, I think NUCLEO is a better option for me.

Also, I talked to somebody related to the competition I mentioned in #20, and he said they specifically use STM32L052 as processor.

The nearest option is NUCLEO-L053R8 which uses STM32L053R8 processor and luckily I found it in an e-shop. It has lower specs than F303 and mainly focuses on low power consumption. Price is little less than F303.

 

Thanks everyone for your help.

Slow and Steady!

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

pajuhesh80 wrote:
STM32L053R8 processor ... mainly focuses on low power consumption.

Indeed.

 

And it's a Cortex-M0;  so closer to the AVR end of things - as clawson suggested in #4

 

And it would be supported by the free Keil edition mentioned above, if you like that sort of thing.

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 1

Yes the NUCLEO is the better option. And the integrated STLink can be used later to program/debug other STM32 chips.

 

edit:

pajuhesh80 wrote:
Actually, this board is going to be my birthday gift!

 

Yeah, that settles it, treat yourself with quality stuff from ST instead of clones wink

Last Edited: Wed. Feb 24, 2021 - 05:55 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Another vote for Nucleo - in my case I am using one for development; the ST-Link will be used to program my finished boards later. The only issue is that without a soldering iron, the UART2 TX and RX pins are not available since they're hard wired to the USB serial.

 

Can be programmed in Windows or Linux with the Eclipse-based IDE which includes the STMCube configuration tool; includes a debugger.

 

My only complaint is that in an effort to be all things to all men, the PCB designers arranged things so that there isn't a single IO register which can be used in its entirety; there's always something in the middle of a range that's used for something else. But it's got lots of pins, on the 64-pin variants.

 

Neil

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

pajuhesh80 wrote:
I also may participate in an electronics competition next year which targets ARM as processor.
Want to learn Ada?

Reason : differentiation among competitors

The ones at AdaCore like STM32.

 

Ada on ARM Cortex | AVR Freaks

Ada_Drivers_Library/boards at master · AdaCore/Ada_Drivers_Library · GitHub

 

"Dare to be naïve." - Buckminster Fuller

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

F0xx, F1xx are the older mainstream series.

Check the newer G0xx series. All new example code are better optimized for STM32 CubeIde (especially for STM32 CubeMx) 

See nucleo-G071RB device board if present in your country.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I mailed a packet to Teheran about 2 years ago.   Arrived door to door in about 6 days (just as advised by Royal Mail).

 

Of course Mazandaran  may take longer.   Pandemics, politics,  airplanes,  customs, ... may have upset the previous excellent service.

 

The Nucleo boards are excellent.    L476 or F446 would be my choice.    Well supported by ST.   Good Peripherals.   Can run many Arduino programs.

Obviously this is a Microchip/Atmel Forum.   Microchip/Atmel do not support ST products.

 

The Microchip/Atmel equivalents would be SAMD21-XPRO or SAM4-XPRO

Plenty of example programs for AS7.0

Not suitable for Arduino

 

The Arduino Due can be used in AS7.0 but does not have much support or examples.

The Arduino Due works fine as an Arduino board.

 

David.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

and there are several SAM D21 based Arduinos

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

gchapman wrote:

Want to learn Ada?

Reason : differentiation among competitors

They say we must use Keil as IDE/Compiler and Eagle as schematic/PCB designer. Also, using STM32CubeMX is prohibited which means we should write the code from scratch.

I'm not still much familiar with STM32 coding but looks like at least 100 lines of code is needed to start oscillator with correct settings and blink an LED. Writing all this code manually would be hard and time consuming.frown

Slow and Steady!

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

pajuhesh80 wrote:
They say we must use Keil as IDE/Compiler

So why are you asking for choices when you have no choice? 

 

That now makes this completely off-topic.

 

Time to move to https://community.st.com/s/

 

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

pajuhesh80 wrote:

I'm not still much familiar with STM32 coding but looks like at least 100 lines of code is needed to start oscillator with correct settings and blink an LED. Writing all this code manually would be hard and time consuming.frown

 

This is the reason I suggest to use CubeMx...But if it isn't allowed...

Also CubeMx help you to apply the right tricky for configure the peripheral: the manual sometimes don't coverage all issue, despite it's complexity

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

The use of GPLv3 IDE, toolchain, and source code enables affordability of such to anyone; likewise with PCB CAD.

All can be FOSS and OSHW other than the MCU ,and the MCU can be such by RISC-V (FPGA are relatively inexpensive ... well, here)

Arm clocking complexity is significant.

 

gps/COPYING3 at master · AdaCore/gps · GitHub

https://github.com/AdaCore/bb-runtimes/blob/community-2020/arm/stm32/setup_pll.adb

 

"Dare to be naïve." - Buckminster Fuller

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

gchapman wrote:
Arm (sic) clocking complexity is significant.

The clocking has nothing to do with ARM - it's proprietary to the particular chipmaker (ST, Microchip, etc)

 

Microchips clocking arrangements are completely different from ST's

 

However, it is true that they all do tend to be complicated.

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

runblade wrote:
This is the reason I suggest to use CubeMx...

Indeed.

 

And it's why Microchip give you START.

 

Of course there's nothing to stop you using CubeMX to get the required config working, and then just port that to ST's SPL or HAL or whatever

 

(ST's SPL or HAL is roughly equivalent to ASF 3)

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

pajuhesh80 wrote:
I'm not still much familiar with STM32 coding but looks like at least 100 lines of code is needed to start oscillator with correct settings and blink an LED. Writing all this code manually would be hard and time consuming.frown

 

Yes, that's normal for 32 bit MCUs, the startup code has to do a lot of stuff, because the clock system is complex, and often you have to set it up or some peripherals may not even work because they have no clock (the CPU unit will boot with some default clock).

So it's very important that the datasheet is well written and all details clearly explained.

Last Edited: Thu. Feb 25, 2021 - 09:32 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

awneil wrote:
So why are you asking for choices when you have no choice? 

I have choices. I don't want to buy a board for competition. However, as I decided to buy a NUCLEO board, I chose a board to help me prepare for the competition (L053R8).

Slow and Steady!

Last Edited: Thu. Feb 25, 2021 - 09:36 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

The Microchip/Atmel equivalents would be SAMD21-XPRO or SAM4-XPRO

Or the newer "Curiosity Nano" boards (SAMD21, SAME51, PIC32CM )

 

I somewhat disagree that a Cortex M0 is more "AVR-like" than a CM3 or CM4.  The "16-bit instructions only" on CM0 gets to be pretty ugly if you program the ARM in assembly language (like there is no "AND with immediate value" instruction.)  If course, If you program in a HLL, you won't notice.

 

There's nothing to stop you doing that [other IDEs, debugging] too with a DUE.

The Due clone I have lacks a debugger connection.  :-(

 

 

I'm not still much familiar with STM32 coding but looks like at least 100 lines of code is needed to start oscillator with correct settings and blink an LED.

Nah.  They want you to think that, so that you'll use their bloated tools (CubeMC, Start, Harmony) and lock you in to their chips.  Figure it out once, and you don't need to worry about it again.

Providing proper clocks to each peripheral, and figuring out whether they need it or not, might be a bit tricky.

I found this "mini-cookbook" to be somewhat useful:  https://stm32.embeddedexpert.io/...

(They're a training company; they want your name and email so they can advertise their courses.)
(Hmm.  It doesn't cover configuring the oscillators; just uses the default internal clock.)

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

westfw wrote:
The Due clone I have lacks a debugger connection.  :-( 

The genuine Due I had did have the connector, but badly positioned - so I had to hack it with a scalpel to get the debugger to fit!

 

frown

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

An interesting exercise is to write your own startup code for a generic ARM Cortex-M. This way you will learn how the Cortex-M start operation, which is common to all of them, even from different vendors.

Fortunately, other people have already written some code, so all one needs to do is study it.

C generic Cortex-M startup code (including custom linker script):  https://github.com/goofacz/cortex-m-minimal-c

C++ generic Cortex-M startup code:  https://allthingsembedded.net/2019/01/03/arm-cortex-m-startup-code-for-c-and-c/

 

IIRC the ATSAMD also have startup code written in C, however to get this code you would probably need to install the whole programming environment. That's quite a bother.

 

pajuhesh80 wrote:
They say we must use Keil as IDE/Compiler and Eagle as schematic/PCB designer. Also, using STM32CubeMX is prohibited which means we should write the code from scratch.

 

Well, in that case you should start by getting the Keil evaluation version (MDK-Lite) and see what kind of support they have for the STM32, it may come with quite a lot of code that you can use. You can't use the libraries from ST, but maybe you can use the ones from Keil.

https://www2.keil.com/mdk5

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Oh yeah.  ""minimal ARM Blinky" for STM32F103.   About 200 lines of assembly language, including comments, optional code, clock initialization, and the startup vectors (but not all of them!)

https://github.com/WestfW/Minima...

 

There was a "discussion" (linked on the main github page) asserting that there should be some minimal examples for ARM that didn't involve "downloading gigabytes worth of tools", even if that meant having to program in assembly.  I bit the bait.  I don't think it went anywhere useful, but it was an interesting exercise.  It continues to be an interesting exercise.

The github repository has SAMD10 code as well (60 lines; but no clock fiddling.)

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

El Tangas wrote:
start by getting the Keil evaluation version (MDK-Lite) and see what kind of support they have for the STM32

As mentioned earlier, he's using an L0 - so is entitled to the free full STM32 Cortex-M0 version

 

EDIT

 

See the end of #3

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
Last Edited: Fri. Feb 26, 2021 - 08:34 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

awneil wrote:
See the end of #3

 

Cool. I should have read previous posts more thoroughly.