This USB Card is designed for stamp board. Which has two USB chips on it: one is SL811HS and another is ISP1362. The SL811HS is an Embedded USB Host/Slave Controller capable of communicating in either full speed (12 Mbps) or low-speed (1.5 Mbps). SL811HS can work in two modes—host or slave, but is not On The Go (OTG). Data sheet can be found at here. To purchase the board, go buy_stuff.
The Philips ISP1362 which is a single-chip Universal Serial Bus (USB) On-The-Go (OTG) controller integrated with an Slave Host Controller. It has two USB ports: port 1 and port 2. Port 1 can be hardware configured to function as a downstream port, an upstream port or an OTG port whereas port 2 can only be used as a downstream port. The OTG port can switch roles from host to peripheral, or from peripheral to host. The OTG port can become a host through the Host Negotiation Protocol (HNP) as specified in the OTG supplement. You can find more information here.
You can get the USB card's schematic and PCM layout here.
Set J3 to choose a PF pin as interrupt for ISP1362. Set J5 to choose a PF pin as interrupt for SL811HS. Jumpers on J3 and J5 are divided into two category, one is for BF533 stamp board, another is for BF537 stamp board. The setting should be concurrent with the kernel configuration. Don't select the same pair of pins for ISP1362 and SL811HS.
| Jumpers to setting | PF pin |
|---|---|
| 1-2 | PF4 |
| 3-4 | PF8 |
| 5-6 | PF9 |
| 7-8 | PF14 |
| 9-10 | PF15 |
In order to make BF533 to work with USB-LAN extender, the CPLD on BF533-Stamp Board need to be reprogrammed. For how to reprogram CPLD, please refer to cpld_programming. The CPLD file is stamp_cpld_asm3.zip. In addition, to use the USB-LAN with the BF533 you have to populate the U-connector.
| Jumpers to setting | PF pin |
|---|---|
| 11-12 | PF3 |
| 13-14 | PF4 |
| 15-16 | PF5 |
| 17-18 | PF6 |
| 19-20 | PF7 |
| PF pin | switch |
|---|---|
| PF2 | sw5.1 |
| PF3 | sw5.2 |
| PF4 | sw5.3 |
| PF5 | sw5.4 |
Configure asynchronous memory for ISP1362
Blackfin Processor Options --->
--- Asynchronous Memory Configuration
EBIU_AMBCTL Control --->
(0xAAC2) Bank 3
Configure asynchronous memory for SL811HS
Blackfin Processor Options --->
--- Asynchronous Memory Configuration
EBIU_AMBCTL Control --->
(0xCCC0) Bank 3
In order to run Blackfin SCLK > 80MHz, additional bus cycles needs to be introduced between two successive bus accesses. The SL811 requires 85ns between /CS inactive and /CS active. This is achieved by doing a dummy read from a different memory bank before each bus access. Depending on how fast you run SCLK the total memory number of cycles that needs to be introduced by the dummy access ranges form 3-5 cycles.
In case you selected BANK2 for dummy accesses:
Blackfin Processor Options --->
--- Asynchronous Memory Configuration
EBIU_AMBCTL Control --->
(0x22A4) Bank 2
Configure USB Host
USB support --->
<*> Support for Host-side USB
<*> ISP1362 HCD support
(53) GPIO for Interrupt
<*> SL811HS HCD support
(54) GPIO for Interrupt
To use a HID device like USB keyboard, or USB mouse, enable:
USB support --->
<*> USB Human Interface Device (full HID) support
[*] HID input layer support
Input device support --->
<*> Generic input layer (needed for keyboard, mouse, ...)
<*> Mouse interface
(1024) Horizontal screen resolution
(768) Vertical screen resolution
<*> Event interface
[*] Keyboards --->
[*] Mouse --->
To use USB Mass Storage device, like a USB flash disk, select:
USB support --->
<*> USB Mass Storage support
SCSI device support --->
--- SCSI device support
<*> SCSI disk support
[*] Probe all LUNs on each SCSI device
File systems --->
DOS/FAT/NT Filesystems --->
<*> MSDOS fs support
<*> VFAT (Windows-95) fs support
(437) Default codepage for FAT
(iso8859-1) Default iocharset for FAT
Native Language Support --->
--- Base native language support
(iso8859-1) Default NLS Option
<*> Codepage 437 (United States, Canada)
<*> NLS ISO 8859-1 (Latin 1; Western European Languages)
In the case you encounter no scsi→sda assignments in the boot log, you should try to activate 'USB runtime power management and wakeup'.
After booting the kernel, plug the USB Flash Disk to the USB port, you will see message like:
usb 1-2: new full speed USB device using isp1362-hcd and address 4 usb 1-2: configuration #1 chosen from 1 choice scsi2 : SCSI emulation for USB Mass Storage devices Vendor: USB Model: Flash Disk Rev: 1.06 Type: Direct-Access ANSI SCSI revision: 00 SCSI device sda: 128928 512-byte hdwr sectors (66 MB) sda: Write Protect is off sda: assuming drive cache: write through SCSI device sda: 128928 512-byte hdwr sectors (66 MB) sda: Write Protect is off sda: assuming drive cache: write through sda:<7>usb-storage: queuecommand called sda1 sd 2:0:0:0: Attached scsi removable disk sda sd 2:0:0:0: Attached scsi generic sg0 type 0
Mount ”/dev/sda1” to ”/mnt”
# mount -t vfat /dev/sda1 /mnt
You can try to do R/W on the flash disk.
To enable ethernet over usb:
USB support --->
USB Network Adaptors --->
<*> USB RTL8150 based ethernet device support (EXPERIMENTAL)
Assume your Linux host is Suse 9.1
dhcp eth1 &
Linux:~ # ping 192.168.7.1 PING 192.168.7.1 (192.168.7.1) 56(84) bytes of data. 64 bytes from 192.168.7.1: icmp_seq=1 ttl=64 time=2.11 ms 64 bytes from 192.168.7.1: icmp_seq=2 ttl=64 time=0.256 ms 64 bytes from 192.168.7.1: icmp_seq=3 ttl=64 time=0.302 ms 64 bytes from 192.168.7.1: icmp_seq=4 ttl=64 time=0.196 ms 64 bytes from 192.168.7.1: icmp_seq=5 ttl=64 time=0.323 ms 64 bytes from 192.168.7.1: icmp_seq=6 ttl=64 time=0.151 ms --- 192.168.7.1 ping statistics --- 6 packets transmitted, 6 received, 0% packet loss, time 5002ms rtt min/avg/max/mdev = 0.151/0.556/2.111/0.698 ms
| Board Version | CCLK | SCLK | Kernel Version | Toolchain Version | SD Card |
|---|---|---|---|---|---|
| BF537 STAMP-2.1 - Rev 0.2 | 500MHz | 100MHz | 2.6.28-rc2-ADI-2009R1-pre-svn5938 | gcc 4.1.2 (svn) | Transend SDHC 8GB class 6 |
root:/> mkfs.ext2 /dev/sda1 root:/> mount /dev/sda1 /mnt/ root:/> bonnie++ -u root -d /mnt/
Version 1.94 ------Sequential Output------ --Sequential Input- --Random-
Concurrency 1 -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
blackfin 300M 45 99 615 5 320 1 120 99 645 2 49.6 2
Latency 272ms 10500ms 2136ms 104ms 304ms 664ms
Version 1.94 ------Sequential Create------ --------Random Create--------
blackfin -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
16 208 94 6703 100 1450 36 210 94 7327 99 615 73
Latency 55999us 4000us 4000us 44000us 4000us 4000us
root:/> mkfs.ext2 /dev/sdc1 root:/> mount /dev/sdc1 /mnt/ root:/> bonnie++ -u root -d /mnt/
Version 1.94 ------Sequential Output------ --Sequential Input- --Random-
Concurrency 1 -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
adam-desktop 2G 673 96 12603 2 7349 1 1312 99 18889 1 72.9 0
Latency 15833us 1028ms 1540ms 16366us 708ms 402ms
Version 1.94 ------Sequential Create------ --------Random Create--------
adam-desktop -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
16 2074 60 +++++ +++ 13069 9 2998 86 +++++ +++ 6660 57
Latency 6164us 6353us 6568us 6345us 58us 475us