This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Using the second CAN (CAN1) peripheral on Tiva C Launchpad

Other Parts Discussed in Thread: TM4C123GH6PM

Hello,

I'm currently using the old, pre-production, Stellaris M4 Launchpad with its chip that only has one CAN peripheral built-in.
Now I'd like to switch over to the production quality Tiva M4 Launchpad and its TM4C123GH6PM chip that mounts two CAN peripherals.
My problem is, that the Launchpad BoosterPack Interfaces do only provide pinouts to the CAN0 module but I also need the CAN1 module.
I checked out the Launchpad schematics and saw that the CAN1 module TX (PA1) and RX (PA0) lines are used on the Launchpad as U0TX_VCP_RXD and U0RX_VCP_TXD for the virtual com port.
What I'd like to do is to physically cut the two traces on the Launchpad board that lead to the second Tiva C chip (the one used for programming/debugging) and then use the two 0.1" holes labeled TXD and RXD (beneath the DEBUG holes) on the board to access the CAN1 module lines and connect a CAN transceiver.
In this case I'd loose the VCP functionality but this is something i can live with.
Do you think it is a feasible solution to my problem?
Post
Thank you in advance

Christian

  • Almost answered yesterday - but these unspecified requirements concern:

    a) is this board hack/modification planned to be implemented in some volume?

    b) once you "break" the traces between UART/CAN1 and the MCU serving as ICDI - might the input pin of that ICDI MCU still require some, "attention?"  (i.e. pull it high or low)

    c) We've made volume (>250 pc) purchase of similar, low-cost, assembled/tested Dev boards.  (M0 - in our case - @ 7 USD we could never approach - even w/our pick/place & reflow oven)  Best to leave that Dev board as much intact as possible - and perform (most always required) signal redirections - proper "bundling" and "add-ons" - upon a 2nd, plug-in board. 

    d) Might another CAN module exist - your newly targeted MCU?  Or - might that same CANx port appear upon other MCU pins as well - ones that someway/how "made it" to the board's header?

    e) We also use CAN - and find that "co-location" of the required CAN xcvr most always best.  And recall - you likely want the CAN xcvr's I/O to appear @ board header - not the MCU's raw CAN signals.

  • Hi cb1_mobile,

    first of all thank you very much for your comprehensive answer. I'd like to address each point separately:

    a) the modified boards will be used as part of a prototype design with a very low unit count (5-10pcs.)

    b) that's a good point. Since I think that the UART0 peripheral is muxed to the pins 17 and 18 a pulldown impedance might be necessary.

    c, d) the problem is that the CAN1 peripheral of the mounted Tiva C is -only- available on the microcontroller's pins 17 and 18 (and exactly those pins are used for the VCP by muxing the UART0 peripheral)

    e) the MCU's CAN0 raw CAN signals are already brought to the Launchpad header. I will design a 2nd plug-in board that connects to the header and mounts a CAN transceiver to actually connect the MCU to a CAN bus.

  • @ Christian,

    Thank you for your detailed, rapid reply - appreciated.

    At qty 5-10 - suggest that your "mod" of such board makes most sense.  (should volume reach 50+ I'd vote for custom pcb design)

    Might be that "pull-up" is required - see what the "default behavior" of UART TX is - prior to a, "send."  (iirc - UART_TX idles high - then drives low to signal, "Start bit."  ...this from my memory - check...)

    Do consider the creation of tiny pcb - to hold CAN xcvr - and supply power and MCU - CAN signals.  Prefer that board to be "attached" to your MCU board - with short, matched length connections, between MCU-CAN signals.  We find many clients "attempt" just as you describe - and too often power up the xcvr w/out the MCU - or connection is dislodged or... Result seldom good/lasting.  (board to board interconnect failure is very high on "list" of field failures)

    Wish you well...  (you should be able to find both soic & even DIP CAN xcvr - eases your proto...)

  • Hi cb1_mobile,

    I fully agree with your advices and thoughts. Thank you so much!

    I'd only like to have confirmation from some TI Employee that actually worked on the Tiva C Launchpad project to avoid some useless hardware orders and in case begin to search for valid MCU alternatives.

  • I don't see any problem with cutting the traces to the debug UART connection so long as you cut the right side.  To be perfectly safe you should use a weak pull to ground or tie off the debug UART RX to ground on the ICDI side.  If you were ever did get the ICDI into a boot loader mode then that RX wiggling could trigger the UART ROM bootloader and make it difficult to recover your ICDI.

  • @ Paul,

    That's now two votes, "tie the debug, MCU's UART RX to ground."

    Appears I stand alone (not the first - nor last time) and here's my reasoning: (this - true copy from MCU manual)

    Note that the non-debug (i.e. User's MCU) when in UART mode - normally outputs, "high."  The high to low transition (or level in some cases) signals the presence of the, "Start" bit.  Thus - to prevent this, "unwanted recognition - and possible reaction to a "start bit" - I suggested that the debug UART_RX's pin be tied high - not low - through proper pull-up!

  • Upon further review tying it off high is a more correct solution however as long as the UART does not see a 1->0 transition to sense a start bit it should be fine.

    Tying UART RX off to its idle state is the correct solution so a pull-up is the correct answer.

  • Hi Guys,

    sorry for my late response, I was very busy these days. Anyhow, thank you so much for your answers, I will pull-up the ICDI's UART RX to maintain it in idle state.