CanBerry V2.0 Datasheet

i
i
“industrialberry_datasheet” — 2015/3/21 — 10:25 — page i — #3
i
i
CanBerry PI V 2.0
INDUSTRIAL
BERRY
www.industrialberry.com
March 2015
i
i
i
i
i
i
“industrialberry_datasheet” — 2015/3/21 — 10:25 — page iii — #5
i
i
Contents
1 License
1.1 Disclaimer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1
2 Introduction
3
3 Hardware implementation
5
4 Software implementation
4.1 Real Time Clock . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1.1 RTC with shell . . . . . . . . . . . . . . . . . . . . . . .
4.2 LED Control . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
12
12
13
5 Components list
15
Bibliography
17
iii
i
i
i
i
i
i
“industrialberry_datasheet” — 2015/3/21 — 10:25 — page v — #7
i
i
List of Figures
2.1
2.2
CanBerry V2.0 on Raspberry PI . . . . . . . . . . . . . . . . .
CanBerry V2.0 . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
4
3.1
3.2
3.3
3.4
3.5
Electric diagram of CanBus block . . . . . . . . . . . . . . . . .
Electric diagram of RTC block . . . . . . . . . . . . . . . . . .
CanBerry Connector . . . . . . . . . . . . . . . . . . . . . . . .
Raspberry HAT Eeprom . . . . . . . . . . . . . . . . . . . . . .
CAN Bus example, image from http://en.wikipedia.org/wiki/
File:CAN-Bus_Elektrische_Zweidrahtleitung . . . . . . . .
CANH Bus monitoring . . . . . . . . . . . . . . . . . . . . . . .
6
7
7
8
3.6
8
9
v
i
i
i
i
i
i
“industrialberry_datasheet” — 2015/3/21 — 10:25 — page vii — #9
i
i
List of Tables
5.1
CanBerry Pi V 2.0 . . . . . . . . . . . . . . . . . . . . . . . . .
16
vii
i
i
i
i
i
i
“industrialberry_datasheet” — 2015/3/21 — 10:25 — page 1 — #11
i
i
Chapter 1
License
Open-source hardware shares much of the principles and approach of free and
open-source software. In particular, we believe that people should be able
to study our hardware to understand how it works, make changes to it, and
share those changes. To facilitate this, we release all of the original design files
(Eagle CAD) for the IndustrialBerry hardware. These files are licensed under
a Creative Commons Attribution Share-Alike license, which allows for both
personal and commercial derivative works, as long as they credit IndustrialBerry and release their designs under the same license. The IndustrialBerry
software/firmware is also open-source.
1.1 Disclaimer
In no event shall Industrialberry be liable to the buyer or to any third party
for any indirect, incidental, special, consequential, punitive or exemplary damages (including without limitation lost profits, lost savings, or loss of business
opportunity) arising out of or relating to any product or service provided or to
be provided by Industrialberry, or the use or inability to use the same, even if
Industrialberry has been advised of the possibility of such damages.
1
i
i
i
i
i
i
“industrialberry_datasheet” — 2015/3/21 — 10:25 — page 2 — #12
i
i
i
i
i
i
i
i
“industrialberry_datasheet” — 2015/3/21 — 10:25 — page 3 — #13
i
i
Chapter 2
Introduction
CanBerry Pi V 2.0 is an extension board for RaspBerry Pi. It is an Open
Hardware Design. It has two functionalities: a can bus module and an onboard
Real Time clock powered by a 12 mm battery. In fig 2.1 is shown the Board on
Raspberry PI B+. The CanBus is based on MCP2515 [1] SPI controller and
the MCP2551 [2] tranceiver. All functionalities are full integrated in standard
linux kernel, so, they can be avaible on fly, or at last recompiling linux kernel
to add canbus functionalities. The real time clock is based on DS3231 [3](with
internal oscillator ) or DS1307Z [4] I2C controller. It is full compatible with
linux too. Using I2C Kernel module, and standard kernel functions, date and
hour can be set/get by simple commands. On the bottom side is located an on
board battery to guarantee a data autonomy more than 20 years. In chapter
hardware there are all informations on principal components, schematics to
rebuild and modify RaspBerry PI board. In chapter Software is reported how
all hardware can be used: as recompile kernel, build simple user space function
to set and get I2C data, etc... In chapter application is reported a typical
example of how to use the board.
3
i
i
i
i
i
i
“industrialberry_datasheet” — 2015/3/21 — 10:25 — page 4 — #14
i
i
Chapter 2 Introduction
Figure 2.1: CanBerry V2.0 on Raspberry PI
Figure 2.2: CanBerry V2.0
4
i
i
i
i
i
i
“industrialberry_datasheet” — 2015/3/21 — 10:25 — page 5 — #15
i
i
Chapter 3
Hardware implementation
CanBerry PI 2.0 is composed by two blocks: a CanBus Module shown in Fig.
3.1 and a Real Time Clock shown in 3.2 The SMD Jumper JP2 must be used
to connect the RTC Int pin to Raspberry GPIO7.
MCP2515 is a stand alone SPI canbus controller full integrated in linux
kernel. At the start, the driver was implemented as a block device. Recently it
is assumed to be a network module into the kernel. It is supplied by 3.3V from
raspberry connector (fig 3.3 ). MCP2551 is supplied by 5V from Raspberry
connector insted. So, to match voltage physical level between the two chips, a
voltage matching made by R3 and R4 has been used. The SMD Jumper JP3
must be used for the first and the last device of CAN Bus, this jumper provides
the 120 Ω termination (see fig 3.5).
The Raspberry Pi B+ has been designed specifically with add-on boards in
mind and today we are introducing HATs (Hardware Attached on Top). A
significant feature of HATs is the inclusion of a system that allows the B+ to
identify a connected HAT and automatically configure the GPIOs and drivers
for the board, making life for the end user much easier! The automatic configuration is achieved using 2 dedicated pins (ID SD and ID SC) on the 40W
B GPIO header that are reserved for an I2C EEPROM CAT24C32WI. The
EEPROM (see fig 3.4).
You can see in fig.3.6 the signal on pin CANH
5
i
i
i
i
i
i
“industrialberry_datasheet” — 2015/3/21 — 10:25 — page 6 — #16
i
i
Chapter 3 Hardware implementation
Figure 3.1: Electric diagram of CanBus block
6
i
i
i
i
i
i
“industrialberry_datasheet” — 2015/3/21 — 10:25 — page 7 — #17
i
i
Figure 3.2: Electric diagram of RTC block
Figure 3.3: CanBerry Connector
7
i
i
i
i
i
i
“industrialberry_datasheet” — 2015/3/21 — 10:25 — page 8 — #18
i
i
Chapter 3 Hardware implementation
Figure 3.4: Raspberry HAT Eeprom
Figure 3.5: CAN Bus example, image from http://en.wikipedia.org/wiki/
File:CAN-Bus_Elektrische_Zweidrahtleitung
8
i
i
i
i
i
i
“industrialberry_datasheet” — 2015/3/21 — 10:25 — page 9 — #19
i
i
Figure 3.6: CANH Bus monitoring
9
i
i
i
i
i
i
“industrialberry_datasheet” — 2015/3/21 — 10:25 — page 10 — #20
i
i
i
i
i
i
i
i
“industrialberry_datasheet” — 2015/3/21 — 10:25 — page 11 — #21
i
i
Chapter 4
Software implementation
How to prepare a SD Card with CAN kernel modules
Download Wheezy raspbian 2014-09-09
After your raspberry has been booted, go to home directory:
cd /home/pi/
nano can-start.sh
add these lines to the script
#!/bin/sh
#Can
insmod /lib/modules/3.12.28+/kernel/drivers/spi/spi-bcm2708.ko
insmod /lib/modules/3.12.28+/kernel/net/can/can.ko
insmod /lib/modules/3.12.28+/kernel/drivers/net/can/can-dev.ko
insmod /lib/modules/3.12.28+/kernel/net/can/can-raw.ko
insmod /lib/modules/3.12.28+/kernel/net/can/can-bcm.ko
insmod /lib/modules/3.12.28+/extra/spi-config.ko
devices=\bus=0:cs=0:modalias=mcp2515:speed=10000000:gpioirq=25:pd=20:pds32-0=16000000:pdu32-4=
insmod /lib/modules/3.12.28+/kernel/drivers/net/can/mcp251x.ko
ip link set can0 up type can bitrate 1000000
Run the script:
sudo sh can-start.sh
So the system is ready, then you can use standard canbus command to use
the peripheral:
candump can0 -> to monitoring can bus traffic
cansend can0 7DF#0201050000000000 -> to send canbus commands
11
i
i
i
i
i
i
“industrialberry_datasheet” — 2015/3/21 — 10:25 — page 12 — #22
i
i
Chapter 4 Software implementation
4.1 Real Time Clock
It is possible use the RTC IC with the terminal or with a compiled program.
The DS1307Z is a device I2C, and then we must install i2c-tool
sudo aptitude install i2c-tool
and libi2c-dev before use it.
sudo aptitude install libi2c-dev
4.1.1 RTC with shell
The following code allow the management of the RTC with the i2c-tool directly
from the shell. Verify the DS1307Z address 0x68 with
sudo i2cdetect -y 0
for Raspberry Rev 1 or
sudo i2cdetect -y 1
for Rev 2 and B+, because the I2C bus address changed from 0 to 1.
Run the scripts as root:
modpro be rtc-ds1307
Then, run
echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-0/new_device (if you have
a Rev 1 Pi)
echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device (if you have
a Rev 2 Pi)
Set RTC with
hwclock -w
Read RTC with
hwclock -r
12
i
i
i
i
i
i
“industrialberry_datasheet” — 2015/3/21 — 10:25 — page 13 — #23
i
i
4.2 LED Control
4.2 LED Control
Go to home directory:
cd /home/pi/
nano gpio_on.sh
add these lines to the script
#!/bin/sh
# Set up GPIO 27 and set to output
echo "27" > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio27/direction
# Set up GPIO 4 and set to output
echo "4" > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio4/direction
# Write output
#Led1 On
echo "1" > /sys/class/gpio/gpio27/value
#Led2 On
echo "1" > /sys/class/gpio/gpio4/value
# Clean up
echo "27" > /sys/class/gpio/unexport
echo "4" > /sys/class/gpio/unexport
nano gpio_off.sh
add these lines to the script
#!/bin/sh
# Set up GPIO 27 and set to output
echo "27" > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio27/direction
# Set up GPIO 4 and set to output
echo "4" > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio4/direction
13
i
i
i
i
i
i
“industrialberry_datasheet” — 2015/3/21 — 10:25 — page 14 — #24
i
i
Chapter 4 Software implementation
# Write output
#Led1 Off
echo "0" > /sys/class/gpio/gpio27/value
#Led2 Off
echo "0" > /sys/class/gpio/gpio4/value
# Clean up
echo "27" > /sys/class/gpio/unexport
echo "4" > /sys/class/gpio/unexport
Run the scripts as root:
sh gpio_on.sh
sh gpio_off.sh
14
i
i
i
i
i
i
“industrialberry_datasheet” — 2015/3/21 — 10:25 — page 15 — #25
i
i
Chapter 5
Components list
In the table 5.1 we can see the Bill of Material for the board, all the components
are available on-line. For simplicity, every component has a DigiKey order code
(www.digikey.com).
15
i
i
i
i
i
“industrialberry_datasheet” — 2015/3/21 — 10:25 — page 16 — #26
i
Quantity
2
1
2
5
4
1
2
4
1
1
1
1
1
1
1
1
1
1
Value
Yellow
120 Ω
499 Ω
4.7 kΩ
10 kΩ
18 kΩ
22pf
100nf
1uf
16MHz
MCP2551
MCP2515
DS3231
CAT24C32WI-GT3
RETAINER COIN 12MM
TERMINAL-3-PCB
Header 40 pos
Package
1206
0603
0603
0603
0603
0603
0603
0603
0603
HC49/US
SOIC8
SOIC18
SOIC16
SOIC8
3 X 3.5mm
2 X 20
Parts
LED1, LED2
R10
R13, R14
R1, R2, R3, R6, R7
R5, R8, R11, R15
R4
C5, C7
C1,C2, C4, C8
C9
Q1
IC1
IC2
IC4
IC5
BAT100
X1
Digikey-cod
754-1144-1-ND
RMCF0603JT120RCT-ND
RMCF0603FT499RCT-ND
RMCF0603JT4K70CT-ND
P10KGCT-ND
P18KGCT-ND
445-1273-1-ND
445-1316-1-ND
445-1322-1-ND
535-10226-1-ND
MCP2551-I/SN-ND
MCP2515-I/SO-ND
DS3231S-ND
CAT24C32WI-GT3CT-ND
BAT-HLD-012-SMT-ND
277-8807-ND
SAM1086-20-ND
PCB
Table 5.1: CanBerry Pi V 2.0
Unit Price $
0,21
0,02
0,04
0,02
0,10
0,10
0,10
0,10
0,10
0,41
1,12
1,98
8.35
0.57
0,27
0,37
3.30
3.20
Total
0,42
0,02
0,08
0,10
0,40
0,10
0,20
0,40
0,10
0,41
1,12
1,98
8.35
0.57
0,27
0,37
3.30
3.20
21.39
i
i
i
i
Chapter 5 Components list
16
i
i
i
i
“industrialberry_datasheet” — 2015/3/21 — 10:25 — page 17 — #27
i
i
Bibliography
[1] Microchip. MCP2515 Datasheet. http://ww1.microchip.com/downloads/en/
devicedoc/21801e.pdf.
[2] Microchip. MCP2551 Datasheet. http://ww1.microchip.com/downloads/en/
devicedoc/21667d.pdf.
[3] Maxim. DS3231 Datasheet. http://datasheets.maximintegrated.com/en/
ds/DS3231-DS3231S.pdf.
[4] Maxim. DS1307Z Datasheet. http://datasheets.maximintegrated.com/en/
ds/DS1307.pdf.
17
i
i
i
i