UART - FEZ CERB 40 - SerialPort

Hi, sorry for my bad english but I have a problem with the Serial Port class. Indeed, when I want to use a COM port higher than 3 it does not work. According to the website my card has 4 UART and for a project I need these 4 UART so I’d like to know how to remedy this problem because at the moment I can use that 3 (UART 6,2,3) .


The Cerberus firmware only has support for 3 UARTS.

Oh ok thank you

note to @ Jeff@ GHI: need to update the Cerb family specs in the catalog

@ Brett, @ Bill Gates - I am trying to wrap my brain around the Chip’s 5 UARTs (2 of them shared?), the pins exposed on the Cerb 40 header, the socket support on Cerberus, and the firmware limit of 3 accessible. When I get the facts I will, as necessary, change documentation and Specification tab in the catalog… I suspect I am going to learn something(s) on this one.

@ Jeff - The 64 pin package used on the Cerb family has 6 UARTS but the pins are shared with other functionality.

So the 3 UARTS are:

UART 6 > PC7, PC6
UART 2 > PA3 , PA2
UART 3 > PB10, PB11

UART 1 - Shares i2c duties so thats used for i2c.
UART 4 - Shares ADC and also CTS and RTS for UART 2 so it’s used for UART

In fact there are not many pins that have dedicated functionality and the majority of pins can be configured thru the firmware for different jobs.

@ Bill Gates - Yes !! Confirms what I was learning by looking at our schematics and reading the datasheet. The pin conflicts started popping up as I tracked the chip’s UART/USARTs to our schematics. I’ve added it to my ever growing list of things to explain in one of our beginner’s guides. In the meantime, I’ll update cerb 40 docs and specs. Thanks again.

from my point of view, the smallest limit should be what the specs talk about. That’s what the firmware has “wired” so that should be a maximum of 3, no?

Yes 3, com1,2 and 3 to the user.

Sorry for digging this up, but this directly fits my question…

Does this limitation to 3 UARTs only apply when using GHI firmware?

The thing is I have a weird problem with porting my (native C) code from the STM32F4 Discovery. I’m using UART5 (PC12/PD2) to communicate with a RN42 BT module. It’s all working fine, but on the Cerb40 II it won’t receive anything, I can only send. Any idea what might cause this? Is UART5 indeed unusable on the Cerb40?

@ Kris_K - The pins you mentioned and UART5 functionality don’t match what is on the schematic for the Cerb 40 II?

That’s why I’m asking. The pins do however have UART functionality, it’s just not used in the Cerb firmware because they are multiplexed with SDIO (or so I assume). In my project however I don’t use SDIO, but most other pins are used already.

As I mentioned, I implemented my own software but I’m wondering if there’s anything hardware-wise that’s preventing me from using this UART. To be honest I’m clutching at straws here since I can’t find a rational reason why the module is initializing without problems and I can send data out, but I can’t receive. When I use the same software and hardware setup with minor adjustments on a Discovery board, it’s working fine. (And yes, I corrected the values for different clock speeds etc)

Thanks for the quick feedback!