Difference between revisions of "CAN bus demo MCP25020"

From ArmadeusWiki
Jump to: navigation, search
(Driver installation)
Line 6: Line 6:
 
==Driver installation==
 
==Driver installation==
 
Please refer to this page (under the '''Driver installation''' section): http://www.armadeus.com/wiki/index.php?title=CAN_bus_Linux_driver#Driver_installation
 
Please refer to this page (under the '''Driver installation''' section): http://www.armadeus.com/wiki/index.php?title=CAN_bus_Linux_driver#Driver_installation
 +
 
Then, try the '''Usage''' and '''Quick test''' sections to check if the CAN network is working correctly.
 
Then, try the '''Usage''' and '''Quick test''' sections to check if the CAN network is working correctly.
 +
 
==Software installation==
 
==Software installation==
 
<pre class="host">
 
<pre class="host">

Revision as of 10:00, 26 April 2011

This page is related with the DEMOS_MCP25020 package. This software show how to communicate easily on a CAN bus, particularly with the Microchip MCP25020 I/O Expander. This chip is used on the Microchip kit MCP2515DM-PCTL: http://fr.farnell.com/microchip/mcp2515dm-pctl/kit-d-eval-mcp2515-controleur-can/dp/1332096

Warning Warning: Please ensure that you use the trunk version of armadeus (kernel linux-2.6.38.1 is required) before trying the instructions described on this page!


Driver installation

Please refer to this page (under the Driver installation section): http://www.armadeus.com/wiki/index.php?title=CAN_bus_Linux_driver#Driver_installation

Then, try the Usage and Quick test sections to check if the CAN network is working correctly.

Software installation

 $ make menuconfig
    Package Selection for the target  --->
        Armadeus specific tools/utilities  --->
            [*] Armadeus misc demos
            Choose the demos to install  --->
                [*] DEMOS_MCP25020
 $ make
  • Reflash rootfs

Mounting

First and foremost, you have to create the bus with the two nodes.

  • Add the APF27 as the first node:
    • The pin to connect your APF27-Dev to the CAN bus is on the J13 connector.

APF27DEV-J13-localisation.png APF27DEV-J13-PINOUT.png

J13 - Pins Functionnalities
1 +3V3
2 CAN H
3 CAN L
4 GND

Check that the J11 is closed on your APF27-Dev board, it will add the end line 120ohm resistor of the CAN bus.

  • Add the Microchip kit MCP2515DM-PCTL ( Expander side ) to the CAN bus:

MCP2515DM-PCTL-J3-localisation.png MCP2515DM-PCTL-J3-PINOUT.png

J3 - Pins Functionnalities
1 nc
2 GND
3 CAN L
4 CAN H
5 GND
6 nc
7 nc
8 +5V
9 nc
10 nc

Check that the JP3 is closed on the Microchip demo board, it will add the end line 120ohm resistor of the CAN bus.

  • Connect CAN L, CAN H and GND between your APF27-Dev and the MCP2515DM-PCTL
APF27-Dev J13 pins MCP2515DM-PCTL J3 pins Functionnalities
2 4 CAN H
3 3 CAN L
4 2 GND

Usage

Once your pins are correctly connected, launch your APF27-Dev Board. With the demonstration program, you can:

  • Listen on the bus
 # mcp25020_ctrl listen
  • Blink the D6 Led on the Microchip demo board
 # mcp25020_ctrl led-blink [interval]

Interval is 10 to 10000 (The blinking interval in ms)

  • Turn ON or OFF the D6 Led on the Microchip demo board
 # mcp25020_ctrl led-state [ON|OFF]

Select ON or OFF to changing the led state.

  • Get the state of the SW2 switch on the Microchip demo board (released or pushed)
 # mcp25020_ctrl sw2-get
  • Get the status of MCP25020 configuration registers
 # mcp25020_ctrl config

See the MCP25020 datasheet for more informations

Source code

The program source of the demo is viewable in your ARMadeus repository target/demos/mcp25020_ctrl/mcp25020_ctrl.c

Examples program

To create a program with CAN protocol in C/C++, Python, ... is similar to programming a TCP/IP protocol application. Both implement the UNIX socket. You can found some examples in the directory "test" of the socketcan sources, you can found them on:

Links