BeagleBoard Zippy2

From eLinux.org
Revision as of 10:26, 7 February 2010 by Rkherod (talk | contribs) (Connect the card to the Linux PC)
Jump to: navigation, search


Zippy2-base.jpg

The Zippy2 Ethernet Combo Board (KSZ8851SNL-BBE-EVAL) is a low cost expansion board for the BeagleBoard that provides the following peripherals:

  • 10/100BaseT Ethernet
  • Second SD/MMC Interface
  • Second RS232 Serial Interface
  • Real-Time clock with Battery Back-up
  • I2C Interface (+5V level)
  • AT24C01 Serial EEPROM for Board Identification


Hardware

Ethernet

The Zippy2 provides a standard 10/100BaseT (10/100 Mbit) Ethernet interface and uses Micrel's KSZ8851SNL SPI to Ethernet controller.

SD/MMC Interface

The Zippy2 provides a second SD/MMC interface that supports both 3.3V and 1.8V SD memory cards.

RS232 Serial Interface

The Zippy2 provides a second RS-232 serial port for the BeagleBoard. There are two serial connectors provided. Either connector is available for use: 1) standard DB9 Male connector, or 2) 2x5 shrouded header (0.1 inch pin spacing).

Real-time Clock

The Zippy2 provides a battery backed-up Real Time Clock (RTC) which uses the Maxim DS1307. The backup power is provided by a small 3V lithium coin battery and is held in place by a battery holder.

Compatible 3V Lithium Coin Batteries:

  • CR1216
  • CR1220
  • CR1225

Battery cell size = 12mm.

The battery is not included with the Zippy2 and must be purchased separately. Compatible batteries are available from Digi-Key:

Panasonic CR1216

Energizer CR1216


Installing the 3V lithium coin battery:

Zippy2-battery01.jpg

Insert the battery with the positive "+" side up.


Zippy2-battery2.jpg

Slide the battery all the way into the battery holder.

I²C Interface

The Zippy2 provides a 4-pin header expansion connector for access to the BeagleBoard's I²C signals. The signals have been level translated to 5V to allow easy connection to standard 5V peripherals.

I²C expansion header pin assignments:

  • pin 1 - +5V Power
  • pin 2 - SDA (5V signal level)
  • pin 3 - SCL (5V signal level)
  • pin 4 - Ground

Serial EEPROM

The Zippy2 provides a AT24C01 serial EEPROM that contains a Vendor ID and a Device ID that the BeagleBoard uses to identify the type of board connected to the expansion header. This information enables the BeagleBoard to auto-configure the pin mux for signals needed by the Zippy2. More information can be found here.

Soldering BeagleBoard's Expansion Header

This is a quick guide showing you how to solder the 2x14 Header into the BeagleBoard’s Expansion connector (J3).

Zippy2-expansion connector1.jpg

Insert the 2x14 Header’s SHORT PINS from the back side of the BeagleBoard into the BeagleBoard’s expansion connector (J3).


Zippy2-expansion connector2.jpg

Position the 2x14 Header so the LONG PINS are on the BACK SIDE of the BeagleBoard.


Zippy2-expansion connector3.jpg

Solder the SHORT PINS of the 2x14 Header from the TOP SIDE of the BeagleBoard.

Attaching to the BeagleBoard

Zippy2-expansion connector7.jpg

Attach the four board spacers with the screws provides.


Zippy2-expansion connector4.jpg

Connect the expansion board onto the BACK SIDE of the BeagleBoard by mating with the 2x14 Header you just soldered. Make sure all of the pins align correctly.


Zippy2-expansion connector5.jpg

Continue pushing the two boards together until the connectors mate together.


Zippy2-expansion connector6.jpg

Attach the male standoffs as shown.


Zippy2-expansion connector8.jpg

Creating a bootable SD card in Ubuntu

This guide shows how to partition and format a SD card correctly for the BeagleBoard. This Guide covers the same procedure: BeagleBoardBeginners SDCard setup

Partition the SD card

The card has to have a special geometry (heads/cylinders) to work correctly. The setup is fast and easy:

  1. If mounted, the card will be unmounted (mounted drives can't be partitioned)
  2. The old partitions are deleted
  3. Two new partitions are created
  4. The two new partitions are formatted

Connect the card to the Linux PC

Check where linux mounted the card. One way is to check this via mount. If automatic mounting is not enabled, you can use dmesg to check which name is used for the card.

Call mount to see where the card has been mounted. A name like '/media/disk' is likely for a factory new card. Note the device name, e.g. '/dev/sdb'.

mount

If the check with mount didn't work out, use dmesg:

dmesg | tail

Watch out for a line like this:

[sdb] Attached SCSI removable disk

Where sdb could also be sdc or sdd. If it was sdb, the device name of the memory card is /dev/sdb. Unmount the card

The card will be mounted in /media, something like /dev/disk. Now unmount the disk:

sudo umount /media/disk

or: unmount manually in the file browser Start FDISK

Now start fdisk to check the partition table of the SD card. Start fdisk without partition number. So use '/dev/sda' or '/dev/sdb' and not /dev/sdb1'.

sudo fdisk /dev/sdb

Adjust the Geometry of the Card

Print the current partition table:

Command (m for help): PEnter

Disk /dev/sdb: 7948 MB, 7948206080 bytes 81 heads, 10 sectors/track, 19165 cylinders Units = cylinders of 810 * 512 = 414720 bytes Disk identifier: 0x00000000

  Device Boot      Start         End      Blocks   Id  System

/dev/sdb1 11 19166 7757824 b W95 FAT32

Remember the top right number: 7948206080 bytes. It of course depends on the size of the SD card. You will need it later to calculate the new number of cylinders.

Delete this partition:

Command (m for help): DEnter

Selected partition 1

Go into Expert mode:

Command (m for help): XEnter

Selected partition 1

Set the number of heads to 255

Expert command (m for help): HEnter

Number of heads (1-256, default 81): 255Enter

Set the number of sectors to 63

Expert command (m for help): SEnter

Number of sectors (1-63, default 10): 63Enter

This warning is normal and fine:

Warning: setting sector offset for DOS compatiblity

Now the number of cylinders has to be adjusted to match the size of your SDHC card:

cylinders = floor(bytes of the SDHC card (see the note above) / heads / sectors / sector size (512))

So for our 8GB microSDHC card, this is then (use Google to calculate):

7948206080 / 255 / 63 / 512 = 966.314348

So we cut off the decimal digits (not rounding) and use 966 for this example.

Expert command (m for help): CEnter

The number 966 is of course only valid for our 8GB SDHC card. Use your calculated number here!

Number of cylinders (1-1048576, default 19165): 966Enter

Return to normal mode:

Expert command (m for help): REnter

Check the result:

Command (m for help): PEnter

Disk /dev/sdb: 7948 MB, 7948206080 bytes 255 heads, 63 sectors/track, 966 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0x00000000

  Device Boot      Start         End      Blocks   Id  System

Create the boot partition

Create a new partition (the boot partition):

Command (m for help): NEnter

Command action

  e   extended
  p   primary partition (1-4)

Create the first primary partition:

Command (m for help): PEnter

Command action

  e   extended
  p   primary partition (1-4)

Partition number (1-4): 1Enter First cylinder (1-966, default 1): Enter

Using default value 1

Select cylinder 50 as last cylinder

Last cylinder, +cylinders or +size{K,M,G} (1-966, default 966): +50CEnter Create the Linux partition

Create a new partition (the linux partition):

Command (m for help): NEnter

Command action

  e   extended
  p   primary partition (1-4)

Create the first primary partition:

Command (m for help): PEnter

Command action

  e   extended
  p   primary partition (1-4)

Partition number (1-4): 2Enter First cylinder (52-966, default 52): Enter

Using default value 52

Select cylinder 966 as last cylinder (using the default)

Last cylinder, +cylinders or +size{K,M,G} (52-966, default 966): Enter Final Result

Check the result, it should now look like this (depending on the SDHC card size):

Command (m for help): PEnter

Disk /dev/sdb: 7948 MB, 7948206080 bytes 255 heads, 63 sectors/track, 966 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0x00000000

  Device Boot      Start         End      Blocks   Id  System

/dev/sdb1 1 51 409626 83 Linux /dev/sdb2 52 966 7349737+ 83 Linux

Write the partition table

The changes you made are not yet written to the hard disk. Write them now. FDISK will exit after the write operation.

Command (m for help): WEnter

The partition table has been altered!

Calling ioctl() to re-read partition table. Syncing disks.

Finished! The next step is to format the new partitions. Format the Card

Watch out to use the right harddisk handle (/dev/sdb or /dev/sdc)! You can't format mounted drives (e.g. your currently running Linux) but you might format the wrong card or a spare harddisk. Format the boot partition (labeled in this case 'BOOT', but any other string is legal). It is recommended to use the proposed drive label names as this will make the further use of our tutorials more convenient.

sudo mkfs.msdos -F 32 /dev/sdb1 -n BOOT

Format the Linux partition (labeled 'LINUX')

sudo mkfs.ext3 -L LINUX /dev/sdb2

Copy files onto SDHC card

The last step is to copy the Linux system onto a bootable SD/SDHC card. This allows, in contrast to the onboard NAND flash, to include a wide range of software packets and data, having several gigabytes.

Unplug and re-plug your card reader in order to auto-mount the two new partitions

If your card is correctly formatted, then you can now copy the Linux system on it. This is covered in a special guide:

   * Copy Linux filesystem on bootable SD car

Automated script

Design Documents

Zippy2-base.jpg


Software

  • place these files on your formated SD card per the instuctions at the LinuxBootDiskFormat page
  • boot your BeagleBoard while holding down the "User" button.