MCUXpresso_MIMXRT1052xxxxB/boards/evkbimxrt1050/canopen_examples/mco_manager
Yilin Sun 6baf4427ce
Updated to v2.15.000
Signed-off-by: Yilin Sun <imi415@imi.moe>
2024-03-18 23:15:10 +08:00
..
armgcc Updated to v2.15.000 2024-03-18 23:15:10 +08:00
mco_config SDK v2.11.1 2022-04-08 22:46:35 +08:00
board.c Updated to v2.15.000 2024-03-18 23:15:10 +08:00
board.h Updated to v2.15.000 2024-03-18 23:15:10 +08:00
clock_config.c Update SDK to v2.13.0 2023-01-26 09:35:56 +08:00
clock_config.h Update SDK to v2.13.0 2023-01-26 09:35:56 +08:00
dcd.c SDK v2.11.1 2022-04-08 22:46:35 +08:00
dcd.h SDK v2.11.1 2022-04-08 22:46:35 +08:00
evkbimxrt1050_sdram_init.jlinkscript Updated to v2.14.0 2023-11-30 20:55:00 +08:00
main.c SDK v2.11.1 2022-04-08 22:46:35 +08:00
mco_libcb.c SDK v2.11.1 2022-04-08 22:46:35 +08:00
mco_manager_v3_14.xml Updated to v2.15.000 2024-03-18 23:15:10 +08:00
mco_types.h SDK v2.11.1 2022-04-08 22:46:35 +08:00
mcohw_LEDs.h SDK v2.11.1 2022-04-08 22:46:35 +08:00
mcohw_cfg.h SDK v2.11.1 2022-04-08 22:46:35 +08:00
mcohw_com_generic.c SDK v2.11.1 2022-04-08 22:46:35 +08:00
mcohw_nvol_sim.c SDK v2.11.1 2022-04-08 22:46:35 +08:00
pin_mux.c SDK v2.11.1 2022-04-08 22:46:35 +08:00
pin_mux.h SDK v2.11.1 2022-04-08 22:46:35 +08:00
readme.md Updated to v2.15.000 2024-03-18 23:15:10 +08:00
user_IMXRT10xx.c SDK v2.11.1 2022-04-08 22:46:35 +08:00

readme.md

Overview

The mco_manager/mcofd_manager example implements a minimal CANopen Manager. It produces a cyclic heartbeat message (701h) and waits for CANopen Slave devices with a node ID in the range of 2 to 10. Once a CiA 401 compatible generic I/O device is found, the manager echos data received by the 401 device.

NOTE: For more details, please see the User's Manual for the EmSA CANopen (FD) Libraries for NXP SDKs.

Implementation Description Node-ID: 0x01, Baudrate: 500kbps

Messages produced (by CAN ID): 0x000 - NMT Master command message 0x602-0x60A - SDO requests to nodes 2 to 10 0x701 - Heartbeat (default 333ms) Once a CiA 401 device is found with node ID nid: 0x200+nid - RPDO1 of nid - Total of 4 input Bytes [6000h,1] Digital in byte 1: 0 [6000h,2] Digital in byte 2: 0 [6000h,3] Digital in byte 3: copy/echo of [6200h,1] Digital out byte 1 [6000h,4] Digital in byte 4: copy/echo of [6200h,2] Digital out byte 2 0x300+nid - RPDO2 of nid - Two 16-bit analog inputs [6401h,1] Analog out word16 1: timer with hi byte seconds and lo byte quarter seconds [6401h,2] Analog out word16 2: copy/echo of [6411h,2] Analog out word16 1

Messages consumed (by CAN ID): 0x082-0x0AA - Emergencies of nodes 2 to 10 0x582-0x58A - SDO responses to nodes 2 to 10 0x702-0x70A - Bootup and heartbeats of nodes 2 to 10 Once a CiA 401 device is found with node ID nid: 0x180+nid - TPDO1 of nid - Four bytes of digital outputs. 0x280+nid - TPDO2 of nid - Two 16-bit analog outputs.

User can use a CAN monitor (USB CAN analysis) to probe the CAN frame transfered.

  • CANL in CAN USB analysis connected with CANL in two board by shunt-wound method.
  • CANH in CAN USB analysis connected with CANH in two board by shunt-wound method.
  • (optinal) GND in CAN USB analysis connected with GND in two board by shunt-wound method.

SDK version

  • Version: 2.15.000

Toolchain supported

  • IAR embedded Workbench 9.40.1
  • Keil MDK 5.38.1
  • GCC ARM Embedded 12.2
  • MCUXpresso 11.8.0

Hardware requirements

  • Two mini/micro USB cables
  • Two EVKB-IMXRT1050 boards with J11 pin header connector populated
  • CAN cabling with pin header female connectors
  • Personal Computer

Board settings

The example requires 2 sets of boards, each of them with the J11 header pin connector populated. Using dupont wires, connect all 3 pins of both boards with each other. Pin 1 to pin 1 (CAN_Hi), pin 2 to pin 2 (GND) and pin 3 to pin 3 (CAN_Lo).

Prepare the Demo

  1. Connect a USB cable between the PC host and the OpenSDA USB on the board.
  2. Open a serial terminal on PC for OpenSDA serial device with these settings:
    • 115200 baud rate
    • 8 data bits
    • No parity
    • One stop bit
    • No flow control
  3. Download the mco_slave program to one target board.
  4. Download the mco_manager program to the other target board.

Running the demo

  1. First press the reset button on the board with the mco_slave example
  2. Second press the reset button on the board with the mco_manager example
The terminal connected to the mco_manager example displays similar like that:

Starting CANopen Library manager example
Provided by EmSA - www.em-sa.com/nxp

CANopen Library Event - Reset Communication, bitrate 500kbps, node id 1
CANopen Library Event - NMT Change: 0x 0 boot
CANopen Library Event - NMT Change: 0x 5 operational
CANopen Manager Event - Node Status Change: 3, 0x 0 booted
CANopen Manager Event - Node Status Change: 3, 0x81 emergency over / reset
CANopen Manager Event - Node Status Change: 3, 0xA0 scan complete
 [1000,00]:     191 [1018,01]:AF0002DC [1018,02]:C0DE0010
CANopen Manager Event - Node Status Change: 3, 0x 5 operational
CANopen Manager Event - Node Status Change: 3, 0x90 heartbeat monitoring active
CANopen Manager Client SDO Complete: node 3
 [1008,00]:CANopenLibNXPSDK CiA401 Example
 

The terminal connected to the mco_slave example displays similar like that:

Starting CANopen Library slave example
Provided by EmSA - www.em-sa.com/nxp

CANopen Library Event - Reset Communication, bitrate 500kbps, node id 3
CANopen Library Event - NMT Change: 0x 0 boot
CANopen Library Event - NMT Change: 0x7F pre-operational
CANopen Library Event - NMT Change: 0x7F pre-operational
CANopen Library Event - NMT Change: 0x 5 operational