Добрый день!
Разбираюсь с «J1939 C Library for PIC16 Microcontrollers and MCP2515», переделываю под AVR. Неплохая библиотека для работы с MCP2515 (хотя с железом еще не побывал – не пришли MCP2515), реализованы простые функции J1939, однако возник (пока один) вопрос - по реализации функции J1939_AddressClaimHandling:

OneMessage.Msg.Priority = J1939_CONTROL_PRIORITY; // #define J1939_CONTROL_PRIORITY 0x03
……
OneMessage.Msg.SourceAddress = J1939_NULL_ADDRESS

а в SAE J1939-81 написано, что приоритет должен быть равен 6, а адрес задан глобальный:

4.2.2.1 Address Claimed Message
Transmission Repetition Rate: As required
Data Length: 8 bytes
Data Page: 0
PDU Format: 238
PDU Specific: 255 (global address)
Default Priority: 6

и еще:

«The Address Claimed message should always be sent to the global address (255) to provide all ECUs on the
network the information to maintain a current address to NAME correspondence.»


Ошибка Microchip, или я что-то не понимаю?
Предлагаю в этой теме обсудить и другие вопросы по J1939


С адресом разобрался - это было из куска кода, где формируется сообщение Cannot Claim Address.