Difference between revisions of "Recans A0"
From iagent
(→Debug) |
|||
Line 1: | Line 1: | ||
Recans A0 has two controllers, one is based on RP2040, the other on MCP2515. | Recans A0 has two controllers, one is based on RP2040, the other on MCP2515. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
The MCP2515 CAN controller<br> | The MCP2515 CAN controller<br> | ||
Line 19: | Line 11: | ||
After booting: | After booting: | ||
<pre> | <pre> | ||
+ | sudo gpioset 1 165=0 | ||
+ | sudo modprobe -r mcp251x | ||
+ | sudo modprobe mcp251x | ||
dmesg | grep mcp | dmesg | grep mcp | ||
</pre> | </pre> | ||
<pre> | <pre> | ||
− | sudo ip link set | + | sudo ip link set can0 type can bitrate 1000000 |
− | sudo ip link set up | + | sudo ip link set up can0 |
sudo ifconfig can1 txqueuelen 128 | sudo ifconfig can1 txqueuelen 128 | ||
</pre> | </pre> | ||
Line 45: | Line 40: | ||
~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0 | ~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0 | ||
</pre> | </pre> | ||
+ | |||
+ | To bring up the RP2040 CAN controller: | ||
+ | <pre> | ||
+ | sudo ip link set can0 type can bitrate 1000000 | ||
+ | sudo ip link set up can0 | ||
+ | sudo ifconfig can0 txqueuelen 128 | ||
+ | </pre> | ||
+ | |||
===Errata=== | ===Errata=== |
Revision as of 19:33, 23 February 2024
Recans A0 has two controllers, one is based on RP2040, the other on MCP2515.
The MCP2515 CAN controller
sudo mount -o remount,rw /boot sudo armbian-add-overlay /boot/overlay-user/sun50i-a64-mcp251x.dts sudo mount -o remount,ro /boot
After booting:
sudo gpioset 1 165=0 sudo modprobe -r mcp251x sudo modprobe mcp251x dmesg | grep mcp
sudo ip link set can0 type can bitrate 1000000 sudo ip link set up can0 sudo ifconfig can1 txqueuelen 128
Interrupt: STEP7 = PL11
sudo apt install net-tools can-utils
cansend can1 5A1#11.2233.44556677.88
ip -details link show can0
~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0
To bring up the RP2040 CAN controller:
sudo ip link set can0 type can bitrate 1000000 sudo ip link set up can0 sudo ifconfig can0 txqueuelen 128
Errata
- SPI_CLK and SPI_MOSI are interchanged and need to be fixed.
- /RESET is floating.
Debug
During init/reset:
TX: 0xC0 = RESET TX: 0x03 0x0E 0x00 = READ CANSTAT RX: 0x00 0x00 0x80 = Device is in Configuration mode TX: 0x03 0x0F 0x00 = READ CANCTRL RX: ? TX: 0x02 0x0F 0x20 = WRITE CANCTL = Sleep Mode
When trying to set interface up:
TX: 0x02 0x0F 0x80 = WRITE CANCTRL REQOP2 = Configuration Mode RX: 0x00 0x00 0x00
TX: 0x03 0x0E 0x00 = READ CANSTAT RX: 0x00 0x00 0x64 = OPMOD[2:0] = 0b011, ICOD[2:0] = 0b010
Device is in Listen-Only mode, Wake-up interrupt
It seems that the bring up sequence interferes with the initialization. Must make sure the mcp2515 probing is done after power is applied.