Main Site Documentation

GPIO pins on the Cerb40 II?


#1

Hi, I’m looking a the Cerb40 developer page (I’ve got the Cerb40 II), and I’m trying to figure out the pins.

I apologize if this is a stupid question, but from the documentation it isn’t crystal clear to me.

I’m wondering which ones I can use as OutputPort, InputPorts and InterruptPorts. Is is all the PA*, PB*, PC* and PD* pins?


#2

follow the link from cerb40 to cerb-family. Go to section Technical Documentation. Use the link to the data sheet.

Also useful (you may have already located this) is the schematic:
this web site – Catalog > System on a Module > FEZ Cerb 40 II > click on Resources tab, select Schematic.


#3

Hi Jeff, and thanks for the response.

Although not exactly what I’m looking for though. Sure, the response is technically correct, but is really “here is a link to the massive Cortex documentation, good luck” really the best answer to what is clearly a beginner question…? Just saying… :slight_smile:

The best pin documentation I’ve found for the Cerb40 II is on this page I get to if I follow this link-trail:

GHI -> Catalog -> System on a Module -> Cerb40 II -> Resources -> Cerb-family -> FEZ Cerb40 -> click “This page” at the bottom and come over to wiki.tinyclr.com -> Click the redirect link.

Needless to say, I don’t remember this path every time, so there is a lot of clicking back and forth. That page has a decent table with the pin layouts which I assume is applicable for the Cerb40 II as well.

And it is from that table that it isn’t crystal clear to me which ones I can use as GPIOs.


#4

https://www.ghielectronics.com/docs/44/fez-cerb40-developer

Take the two tables that are part way down that page. They relate to the silkscreen printing on the back of the Cerb40. Match them up.

Anything listed with a PA* PB* PC* or PD* pin identifier can be used as an IO pin. The other ones are typically power related or functional (Loader pin). The secondary functions are also useful to keep in mind - don’t use one pin from a UART in case you need to add that UART to your project.

https://www.ghielectronics.com/docs is the documentation page, a great resource with much more than just this doc. https://www.ghielectronics.com/support is the page that has all the support references.


#5

and having said that, Jeff it’d be great to get a proper list of interrupt capable pins, of PWM pins to channel mapping, etc etc instead of needing to go into the firmware - particularly now it’s moving to closed source


#6

Thanks Brett for confirming that PA*, PB*, PC* and PD* pins are the IO pins :slight_smile:

The topmost link you gave is the page I’m using. It does seem a bit dated, particulary with the entire 3.3V section which probably refers to the previous Cerb40 generation.

I would have guessed that all the IO pins would work with InterruptPort, but maybe I’m wrong?

But PWM pin mapping would be nice!


#7

They used to be on that page (or the Cerb family page, I can’t remember) but in one of the sweeps a few of those things got moved/removed and I’ve always felt that it needed to be really clear - what UART to COMx mapping and PWM channel and ADC mapping etc.

And not necessarily all IO pins are interrupt capable, depending on the processor. I can’t say I am clear on that for the STM32F4’s without digging…


#8

@ Brett, Scalpel78,

All Cerberus pins are interrupt capable, however, there is a limitation to the interrupt implementation due to how the processor handles interrupts. As it stands, you can have a maximum of 16 interrupts on any of the 0~15 port channels. You cannot have the interrupts overlap ports however.

An example of a correct interrupts are A0, B5, C7, or even: A0, A1, B2, those are separate ports and channels. What will not work as of now would be: A0, B0, C0, as the processor has an interrupt routine already mapped to that channel (I believe the last channel interrupt routine defined and logged would be the routine that will get fired when the interrupt is triggered).


#9

I’ve also been reading through the documentation trying to figure out how to migrate my project from a Cerberus to a Cerb40 II.

I have a LED7C, and a custom module I built that uses 1 PWM out, 1 digital out, 1 digital input, and 1 analog input. I think I might figure it out from the really technical engineering documents, but it would be really cool to see a guide that covers at least a fairly simple conversion - especially since the Cerb40 II page says that you can use the Cerberus to evaluate the Cerb40 II.