ATSAMC20 Support lacking!

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

I'm new here, but looking to get into microcontroller programming. I was interested in the features offered by the SAM C20, which is Atmel's implementation of the ARM Cortex 0+. Unfortunately, I cannot find any board that comes with the MCU. I am not good at electronics and haven't soldered in years; can someone point me in the right direction?

NOTE: I am aware of the kit including the SAM C21- this will not work for me as that version does not include a MPU!

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

Tayfun2150 wrote:
NOTE: I am aware of the kit including the SAM C21- this will not work for me as that version does not include a MPU!

What do you mean by no MPU? Is the kit you're referring to the C21 XPLAINED Pro?

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

Yes. The MPU is the memory protection unit. It's necessary for a multitasking OS, and it's also not included in any other Cortex M0+ made by Atmel. For some strange reason there is no Xplained for the atsamc20...

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

The MPU is the memory protection unit. It's necessary for a multitasking OS

No it's not.  Nice to have, perhaps, but not "necessary."

 

and it's also not included in any other Cortex M0+ made by Atmel.

 SAMC21 claims to have it as well.  I'm surprised; I thought the C series' only difference from the D series was the 5V operation (SAMD does NOT have the MPU.)

 

 

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

16k of ram doesn't go too far with a rtos!

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

Actually yes, it is. A modern multitasking system must prevent non-kernel code from writing anywhere at will. The only way to do this is with a memory protection unit, or a more advanced virtual address mapping.
A system using drivers and applications written by any number of strangers with bad coding will crash after less than an hour running otherwise

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

It supports external memory, over 500 megs according to the manual

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

It supports external memory, over 500 megs according to the manual

Where do you see that?  I don't see anything about any external memories...

 

 

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

The chip has no external means of supporting 500MB of memory. Next you'll be telling us you want to run Linux in it. Your comment in #5 has little basis in fact.

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

Saying a comment has little basis in fact does not make it so. Perhaps you should also read the manual from the link I have provided? It clearly shows the addressable range to be over 500m.
Nice try though

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

Right from the manual: "the High-speed bus is implemented as a bus matrix. All High-speed bus addressees are fixed, and they are never remapped in any way, even during boot. The 32-bit physical address space is mapped as follows..."
That's fact

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

 

It's on page 37 and 38 of the compete manual at http://www.atmel.com/products/microcontrollers/arm/sam-c.aspx?tab=documents

[Presumably this?]

The picture showing SRAM between 0x20000000 and 0x22000000 (which is "only" 32MB, BTW) is a sort of generic CM0+ memory map (from here: http://infocenter.arm.com/help/i... )

"external memory" should appear at 0x6000000 (according to ARM); Atmel put a high-speed IOBus there instead.

For there to be ACTUAL external memory capability, you'd need to see it show up in the middle column of the picture as "external memory", and it would need a bus controller and/or an "external memory controller" as well.

Like you can see on this (similar) diagram from the SAM3X manual (SAM3X DOES support external memory.)

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

As I said, with an addressable range of over 500megs, and more than enough general io pins, it is trivial to interface with a large external memory. Just because there is not a dedicated hardware interface does not mean it's impossible, or even difficult!

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

I think I'll just have to defer to an expert then. When you've actually performed this task you can come back and tell me how easy it was. Personally, i'd just chose a more suitable chip.

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

More likely I'll just go with an fpga and my own logic

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

Be sure to come back and tell us of your adventures. We can swap stories about cache coherency, TLBs and other fun stuff.

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

No offence, but it would probably be lost on the audience tbh :)