Difference between revisions of "Recans A0"

From iagent
Jump to: navigation, search
(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.  
 
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>
 
 
  
 
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 can1 type can bitrate 1000000
+
sudo ip link set can0 type can bitrate 1000000
sudo ip link set up can1
+
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.