Pages: [1]   Go Down
Author Topic: CAN Network via Ethernet?  (Read 1033 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 6
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hello there,

I was wondering if anyone has ever tried using the ethernet port on this arduino uno for a CAN network? How would I go about doing this?

Thanks,
tp2357


Moderator edit: fixed the link.
« Last Edit: May 21, 2012, 03:47:20 pm by Coding Badly » Logged

Global Moderator
Dallas
Offline Offline
Shannon Member
*****
Karma: 207
Posts: 12925
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hello,

Ethernet and CANBUS are radically different things.  There is no possibility of getting that shield to communicate on a CAN network.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 6
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Thanks for your help. Is there a way where I could use a wifi shield and a can bus shield at the same time? How would i go about doing that?
Logged

Switzerland
Offline Offline
Faraday Member
**
Karma: 108
Posts: 5145
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I don't see a conceptual problem in using a can bus shield and a WiFi shield together. If it really works is depending heavily on the shield hardware actually used.

Maybe it's better to describe to us what you like to achieve. That way we may propose you how this can be done.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 6
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Well, i have a robot build with Texas instruments Jaguars running on a can network. I built the robot for a First Robotics competition, and am now looking to replace the cRIO microcontroller that is currently with a arduino (to save money on buying a new cRIO), using a wifi shield and a CAN network bus. What do you recommend I do?
Logged

Switzerland
Offline Offline
Faraday Member
**
Karma: 108
Posts: 5145
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

If I understood correctly you're currently using the Arduino to let your cRIO (I assume this means compactRIO from National Instruments) communicate with a controlling PC. What's the current communication channel between the cRIO and the Arduino? UART? CAN?

Do you intend to replace the cRIO or do you wanna keep it and use the Arduino just for communication?

You've written you already own a WiFi shield. Which one is that? Do you also have a CAN shield/breakout? If yes, what type is it?

What's your plan for the final communication "protocol"? Sending some control commands from the PC to the Arduino which sends them to the cRIO? Has the Arduino to control other hardware directly using the CAN bus?
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 6
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

I do not currently own a wifi shield, and I was planning on replacing a cRIO, not using the arduino as a gateway to the cRIO.

Basically the control system would look like this:

When we select "enabled" on the laptop, the laptop will send a packet to the arduino giving it the current joystick readings, and other miscelleneaous information selected laptop side. (this happens 10-20 times a second when enabled)

The code on the arduino then decides what to do with this information.

Sorry for being confusing or misleading, and i appreciate your help. (:
Logged

Switzerland
Offline Offline
Faraday Member
**
Karma: 108
Posts: 5145
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I have no experience with WiFi shields but with WiFi XBees on appropriate shields. I used a RN-XV from Roving Networks (http://www.rovingnetworks.com/products/RN_XV) which communicates over the UART with the Arduino and works flawlessly. I also use WiFi Bees (http://www.seeedstudio.com/wiki/Wifi_Bee) which are bit more complex to use (they are small Arduinos themselves) but allow much greater flexibility as the included ATmega328 handles the protocols with a minimal TCP/IP stack. If used as an XBee you can have all the network part on the WiFi Bee and let the main Arduino do the CAN handling (and whatever else you have for it).

For CAN communication I used this shield (I have only the shop link I bought it from: http://shop.boxtec.ch/product_info.php/products_id/40573). As the only CAN bus I have is in my car I used it only there.
Logged

USA
Offline Offline
Newbie
*
Karma: 0
Posts: 1
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

In case anyone still wants to do this, I've done it with an Arudino Uno R3, an Arduino Ethernet Shield R3, and a SK Pang Electronics CAN-BUS Shield.  I stacked the Ethernet shield first, then attached very long headers to the CAN-BUS shield (as the Ethernet port is fairly high) on the following pins: all pins on the 6-pin power port, D2 (if you're using the CAN-BUS INT pin), D10-13, and GND.  I then bent the header pin coming from pin D10 of the CAN-BUS shield so it would go into D9 of the Ethernet shield.  Correspondingly, I changed the SPI chip select (CS) pin in the software for the CAN-BUS shield from D10 to D9.  I used the CAN-BUS libraries from http://www.seeedstudio.com/wiki/images/5/55/CAN_BUS_Shield.zip and changed line 299 in mcp_can_dfs.h from
Code:
#define SPICS 10
  to
Code:
#define SPICS 9
This is needed because the Ethernet shield uses D10 as its CS pin, and a unique CS pin is needed for every device on the SPI bus.  Therefore, you can really use any other digital pin as the CAN-BUS CS pin (except D4 if you're using the Ethernet shield's SD card).
Logged

Pages: [1]   Go Up
Jump to: