Versions Compared

Key

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

...

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

Table 1: NMT commands

The NMT command Reset node initiates a software reset. Normally this NMT command is applied after a successful firmware download to start the new application program, see chapter 2.9.2.

...

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

SDO expedited transfer

yes

SDO normal (segmented) transfer

    download

    upload

 

yes

no

SDO block transfer

no

Table 2: supported SDO services

...

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

 Table 3: SDO abort codes

...

Paulus supports the following error control services:

boot-up message

yes

Heartbeat producer

configurable

Heartbeat consumer

no

Node Guarding

no

Table 4: supported error control services

...

Paulus supports the following Emergency services:

Emergency producer

configurable

Emergency consumer

no

Table 5: supported Emergency services

...

Paulus supports the following LSS services:

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

Table 6: supported LSS services

...

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)

Table 7: Paulus object dictionary

...

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

Table 8: program control commands

...

Depending on the implementation there is only strongly limited support for this object available. It is possible to read and identify the CRC sum of the flashed application. Since Paulus version 1.40 object value
is 00h for invalid or not available application software identification.

Object 1F57h: flash status identification

Paulus supports the following flash status information according to /CiA-302-3/:

0

0

status ok

1

in progress

1-31

 

not supported (exception: a value unequal 0 means unknown error during erasing/flashing occurred)

Table 9: flash status

Download an application program

...

The application program can initiate a jump back into Paulus. The re-start behavior of Paulus is determined by a keyword stored in the shared RAM. The application program shall use a macro to set the keyword and to jump to Paulus:

APPL

BOOTLOADER_JUMP(APPL)

Paulus is re-started and does not start the application program. The application program has to be started by command.

BOOT

BOOTLOADER_JUMP(BL)

auto-start is active: Paulus is re-started and starts the application program.

auto-start is deactive:  Paulus is re-started and the application program has to be started by command.

Table 10: BOOTLOADER_JUMP macros

...