As shown in the figure, I downloaded the bin file to the target board, and some sensors worked properly, but there was no message on the can bus. Not only did the babel have no message, but the signal could not be captured with a logic analyzer.
Is Bootloader struct values: CAN bitrate: 0, UAVCAN Node ID: 0 right?
How can I solve this problem? thank you.
In order to detect the bit rate of the CAN bus, the board will be silently listening for traffic there. The supported bit rates are 1 Mbps, 500 kbps, 250 kbps, and 125 kbps. The CAN stack will not be able to initialize itself unless it has observed any bus traffic whatsoever at one of the aforementioned bit rates.
thanks for you reply,
I connected it to zubax babel,and in bootloader,it detect the bit rate 1000000,also dected node id 124,mode is maintenance
then booting to application,“Bootloader struct values” is right,but CAN initialization is not successful
debug message:“Could not init CAN; status: -1006, autodetect: 0, bitrate: 1000000”
could you give me some advice please,thanks.
MESSAGE like bellow:
Zubax GNSS Bootloader 2.2 1.1.03ED2388 / OK
Bootloader: Inited in 240 ms
BootDelay> Bootloader.UAVCAN: CAN 1000000 bps, NID 124
BOOTING
Bootloader.UAVCAN: Exit
Zubax GNSS 2.2 4.1.03ed2388 / 1 OK
Bootloader struct values: CAN bitrate: 1000000, UAVCAN Node ID: 124
Air sensor disabled
Mag: AVG -0.081192 -4.429461 0.752389 G
Mag: AVGST 1.964928 -2.439106 0.524770 G
Mag: ST dxyz: 2.046120 1.990355 0.227619 G
Mag self test OK
USB inited
GNSS init...
ublox: Trying baudrate 9600...
Could not init CAN; status: -1006, autodetect: 0, bitrate: 1000000
ublox: Trying baudrate 115200...
ublox: Unknown message: class=0x27 id=0x01 payload_len=40
ublox: Unknown message: class=0x27 id=0x01 payload_len=40
ublox: Unknown message: class=0x27 id=0x01 payload_len=40
ublox: Baudrate match 115200
ublox: Unknown message: class=0x27 id=0x01 payload_len=40
ublox: Unknown message: class=0x27 id=0x01 payload_len=40
ublox: Unknown message: class=0x27 id=0x01 payload_len=40
ublox: Unknown message: class=0x0a id=0x04 payload_len=160
ublox: MON-VER: SW='ROM CORE 3.01 (107888)' HW='00080000'
ublox: MON-VER extension 0: 'FWVER=SPG 3.01'
ublox: MON-VER extension 1: 'PROTVER=18.00'
ublox: MON-VER extension 2: 'GPS;GLO;GAL;BDS'
ublox: MON-VER extension 3: 'SBAS;IMES;QZSS'
ublox: Detected protocol version: 018.000
According to Libuavcan, this error code means that the INAK bit of the CAN controller has not been cleared during initialization:
The reference manual for the MCU says this:
This bit is cleared by hardware when the CAN hardware has left the initialization mode (to be synchronized on the CAN bus). To be synchronized the hardware has to monitor a sequence of 11 consecutive recessive bits on the CAN RX signal.
From which follows that your CAN bus is probably heavily disturbed or is otherwise malfunctioning. If you still can’t find the root cause, please tell me which exact binary are you using?
hi,
this is run envirance info:
test hardware: STM32F105RCT6,The core board bought from alibaba taobao.
firmware: com.zubax.gnss-2.2-4.1.3ed2388.compound , build from git repertory (zubax_gnss),master branch.
compiled by ubuntu 18.04.3 LTS, arm-none-eabi-gcc-7.3.1
Thank you for your patience.
Do I understand correctly that you are running the firmware on a third-party board? If that is the case, we may be unable to help because we are not familiar with your hardware.
Yes, I use the core development board to learn the CAN device conmunication code.
Do you mean I need to use official hardware to learn? and where can I buy it in China?thanks.
We don’t mind that you run our firmware on a different board (it’s open source for a reason). I am saying that we can’t assist you remotely because hardware problems are hard to diagnose this way. Consider contacting a local expert.