Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

libcanopen

Small, bounded CANopen building blocks for embedded applications. The core is hardware-independent and uses an injected transport API without heap allocation.

Implemented services:

  • NMT Start, Stop, Enter Pre-operational, and Reset Node;
  • passive TPDO observation;
  • LSS global and selective state switching;
  • LSS node-ID configuration and persistent configuration storage.

The LSS manager uses standard Classical CAN frames with COB-IDs 0x7E5 and 0x7E4. Request/response functions block and busy-poll the injected receive function for up to 500 ms by default. They consume unrelated received frames, so they are intended for an explicit configuration flow, not concurrent operational traffic.

LSS bit-timing configuration and activation deliberately return UNSUPPORTED without transmitting. They will remain disabled until a platform transport can coordinate changing both the remote CANopen server and its local CAN controller.

SDO, object dictionaries, heartbeat, EMCY, LSS Fastscan, and LSS inquiry services are currently out of scope.

PIHER protocol reference: https://www.piher.net/wp-content/uploads/Piher_CANOpen_PROTOCOL_V0.pdf

About

Small realisation of CANopoen protocol for stm32

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages