App for processor pin assignment?

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

Problem: I'm designing a shield for a Sparkfun SAMD21 board, it uses most of the available SAMD21 pins for GPS, HUB75 LED matrix display (or MAX7456 OSD), external oscillator and MAX7219 interface. It's rather difficult to assign the processor pins to the different peripherals without conflicts.

 

Is there an app which could produce a list of processor pin assignments to peripheral functions? One would have a list of required functions, for example SERCOM SPI, and a list of the capabilities of each processor pin. The output would be a list of assignments

Best wishes and thanks for a reply

Jerry

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

Isn’t that what “atmel Start” does?

 

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

Hello westfw,

   Thanks for the suggestion, especially that you answered on a Sunday. Up to now I haven't used Atmel Start, but only directly configured the appropriate registers

I'll have to learn a bit in order to use Atmel Smart, will report the result. Don't hold your breath until an answer comes

Best wishes, Jerry

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


I actually dislike Start a great deal - it produces source-code projects that are extremely bloated, and I don't trust the drivers or libraries.

But that doesn't mean that the pin function visualization isn't useful.

 

(Sigh.  It doesn't look as useful as I was hoping, though.)

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

westfw wrote:
Isn’t that what “atmel Start” does?

I wondered that

 

westfw wrote:
pin function visualization ... doesn't look as useful as I was hoping

Does it just visualise whatever you've assigned manually, or does it actually help the problem of finding an optimum selection of pin options?

 

I think the latter is actually what the OP was after?

 

And that is certainly a common problem - not just with Atmel/Microchip parts.

 

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

 

westfw wrote:
pin function visualization ... doesn't look as useful as I was hoping

You're right. Just tried it out, it's hardly more than setting up the GCLKs + a bit more, and nothing even about configuring pin functions, let alone pin assignments

I'm just starting a little program in C to see how to solve the problem. It certainly won't be user-friendly 

Best wishes, Jerry 

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

Does it just visualise whatever you've assigned manually, or does it actually help the problem of finding an optimum selection of pin options?

 If you add "Driver" software components, each component will let you select pinouts that will fulfill that requirement. switching (for example) SERCOMs as needed.  And it will complain or disallow having function conflicts, at least sort-of

 

But that selection is on a separate page from when they show the chip pinout, so it's not so useful for PCB visualization, and it doesn't do useful things like show you "remaining pins capable of supporting a tx/rx UART"

 

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

MPlab + harmony 3 (or whatever it's called) is a lot better at pin selection than start, mostly because start is a laggy pile of excrement. I don't use any generated code from either though, cause it all sucks pretty hard. 

 

Start doesn't do squat with clock pins, go to the clocks page and config/enable low and high speed crystals. Back to the pinmux, those pins will show as unused. You also can't do a half duplex sercom, you can leave either of the data lines unselected and it'll fail generating. If you write your own code, it's no problem to use those other sercom pins as GPIO.

 

Wish there was something more like cubeMX, everything microchip offers in comparison is garbage...