Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The node-ID can be configured by LSS additionally, see chapter 2.7.

Paulus only supports 11 bit standard identifier.

...

The NMT state machine according to /CiA-301/ is not supported by the Paulus bootloader completely because code size optimization. The Paulus bootloder remains in the NMT state PRE-OPERATIONAL after the boot-up.

NMT command

actions on Paulus

Reset node

change into the NMT state Reset Application  to re-start Paulus

Reset communication

activate a new node-Id changed by LSS, reset SDO communication and send boot-up message, but a new CAN bit rate is NOT activated

Start remote node

ignore NMT command and remain in the NMT state PRE-OPERATIONAL

Enter pre-operational

ignore NMT command

Stop remote node

ignore NMT command and remain in the NMT state PRE-OPERATIONAL

...

Figure 1: Reset Communication

...

SDO services

Paulus operates as SDO server and supports the following SDO transfer protocols:

...

Paulus supports the following SDO abort codes:

SDO abort code

description

05030000h

A wrong toggle bit in the SDO request message was occurred.

06010002h

It was attempted to write a read only object. 

The Heartbeat producer time in object 1017h is not writeable.

06060000h

An error was occurred during the flashing of the data into the program flash memory.

06070012h

The domain size in the SDO request exceeds the size of the domain object.

08000000h

This abort code indicates:

·         an error during erasing the program flash memory

·         the receipt of an unsupported service request

·         the receipt of a SDO request with a wrong or not supported SDO protocol

...

After sending the boot-up message, the bootloader can send an additional Emergency message. This is useful to signal that the bootloader program is running instead of the application program. This functionality can be activated about the compiler define BL_TXEMCY_AFTER_BOOTUP in <target>/bl_config.h:

 

#define BL_TXEMCY_AFTER_BOOTUP 1

 

The content of the first Emergency message is defined in the variable emcyErrMsg[EMCY_0] in the module bl_canopen.c. A send Emergency after an occurred CRC error is available in newer porting’s. 

Emergency messages are transmitted by the function canMsgTransmit().

...

LSS slave

yes

LSS master

no

LSS switch state global

yes

LSS switch state selective

yes

LSS configure node-ID

yes

LSS configure bit timing parameter

yes

LSS activate bit timing parameter

yes

LSS store configuration

yes with manufacturer-specific memory functions

LSS inquiry·        

  • LSS address

·        
  • node-ID

 

no

yes

LSS identification

yes

LSS fast scan

yes

...

This functionality can be activated about the compiler define BL_USE_LSS in <target>/bl_config.h: 

#define BL_USE_LSS 1 

The activated LSS functionality can be configured by the following compiler-defines in <target>/bl_config.h: 

#define BL_USE_LSS_STORE 1

...

The LSS service “store” is optional and is switched on by this compiler-define.

 

#define BL_START_IN_LSS_CONFIGURATION_MODE 1

...

The bootloader is in the state LSS/CONFIGURATION after start-up.

#define BL_AUTO_SEND_NONCONFIGURED_SLAVE 1

...

The bootloader transmits the LSS “identify non-configured slave” message after start-up automatically without a request from the LSS master. This message substitutes the boot-up message for unconfigured devices. Please note that this behavior is not specified in the /CiA-305/.

 

The LSS service “store configuration” is available to save the node-ID and CAN bit rate in the nonvolatile memory. The functions for the access on the nonvolatile memory are manufacturer-specific and have to be added in bl_user.c/usrLssInd().

 

The LSS service “activate bit timing parameters” shall be used to activate a new CAN bit rate in the complete CANopen network. The new CAN bit rate cannot be activated by Reset Communication.

...

The object dictionary of Paulus includes the following objects:

index

sub-index

access right

description

1000h

0

const

device type

1001h

0

const

no error is indicated by this object

1014h

0

const

EMCY cob-ID (see chapter 2.5)

1017h

0

const

Heartbeat producer time (see chapter 2.4)

1018h

0 – 2 (4)

const

identity object (from Paulus v1.27 full object supports possible)

1018h

3 – 4

const

identity object, only if LSS is active

1F50h

0

const

number of elements

1F50h

1

wo

object for firmware download of program number 1

1F51h

0

const

number of elements

1F51h

1

rw

download command of program number 1 (see chapter 2.8.1)

1F56h

0 – 1

ro

application software identification

1F57h

0 – 1

ro

flash status identification (see chapter 2.8.3)

...

Paulus supports the following program control commands:

value

description

write access

read access

00h

--

--

01h

start application program

--

02h

--

--

03h

erase the application program in the flash memory

--

04h – 7Fh

reserved

80h - FFh

no manufacturer-specific command is available

...

Paulus remains running when the compiler define BL_AUTO_START is not set. In this case the application can only be started by the start command, see chapter 2.9.1.

Change between Paulus and the application program

...