Stamp Board USB Add-on Card Description This USB (Universal Serial Bus) Card is designed for stamp board. Which has two USB (Universal Serial Bus) chips on it: one is SL811HS and another is ISP1362. The SL811HS is an Embedded USB (Universal Serial Bus) 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 (Universal Serial Bus)) On-The-Go (OTG) controller integrated with an Slave Host Controller. It has two USB (Universal Serial Bus) 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 (Universal Serial Bus) card's schematic and PCM layout here. Currently only the host side drivers are supported for ISP1362 and SL811HS. Jumpers setting on USB Add-on Card The reason why there is no information for the BF561-EZKit, is that it is not expected to work. 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. Settings for BF533-STAMP 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 (Universal Serial Bus)-LAN extender, the CPLD (Complex Programmable Logic Device) on BF533-Stamp Board need to be reprogrammed. For how to reprogram CPLD (Complex Programmable Logic Device), please refer to cpld_programming. The CPLD (Complex Programmable Logic Device) file is . In addition, to use the USB (Universal Serial Bus)-LAN with the BF533 you have to populate the U-connector. Settings for BF537-STAMP On the USB (Universal Serial Bus) Board: Jumpers to setting , PF pin 11-12 , PF3 13-14 , PF4 15-16 , PF5 17-18 , PF6 19-20 , PF7 Set sw6.4 to off, to disconnect Asynchronous Memory banks 3 from the NOR (Not OR (parallel flash memory type)) Flash on the STAMP board. If choose PF2 to PF5 as the interrupt pin for ISP1362 and SL811HS, the correspondent switch on sw5 need to be set to off according to the following table. PF pin , switch PF2 , sw5.1 PF3 , sw5.2 PF4 , sw5.3 PF5 , sw5.4 Linux Kernel Configuration ISP1362 / SL811 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 (Universal Serial Bus) Host USB support ---> <*> Support for Host-side USB <*> ISP1362 HCD support (53) GPIO for Interrupt <*> SL811HS HCD support (54) GPIO for Interrupt USB HID devices To use a HID device like USB (Universal Serial Bus) keyboard, or USB (Universal Serial Bus) 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 ---> Test USB Mass Storage To use USB (Universal Serial Bus) Mass Storage device, like a USB (Universal Serial Bus) 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 (Universal Serial Bus) runtime power management and wakeup'. After booting the kernel, plug the USB (Universal Serial Bus) Flash Disk to the USB (Universal Serial Bus) 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. Test USB Network Adaptor 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 Compile uClinux and download image to Bf537 stamp board. After kernel is start up. Plug in the USB (Universal Serial Bus) Network Adaptor. Run “ifconfig -a”. There is an ethernet interface named eth1 added. Plug the ethernet cable. Configure eth1 interface. dhcp eth1 & Run any network application normally. For example: Linux:~ # ping PING ( 56(84) bytes of data. 64 bytes from icmp_seq=1 ttl=64 time=2.11 ms 64 bytes from icmp_seq=2 ttl=64 time=0.256 ms 64 bytes from icmp_seq=3 ttl=64 time=0.302 ms 64 bytes from icmp_seq=4 ttl=64 time=0.196 ms 64 bytes from icmp_seq=5 ttl=64 time=0.323 ms 64 bytes from icmp_seq=6 ttl=64 time=0.151 ms --- 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 Performance Test ISP1362 / USB SD Card Reader System Setting Board Version , CCLK (Core Clock) , SCLK (System Clock) , Kernel Version , Toolchain Version , SD (Secure Digital) Card BF537 STAMP-2.1 - Rev 0.2 , 500MHz , 100MHz , 2.6.28-rc2-ADI (Analog Devices, Inc.)-2009R1-pre-svn5938 , gcc 4.1.2 (svn) , Transend SDHC 8GB class 6 Test Case 1: Bonnie++ on Ext2 root:/> mkfs.ext2 /dev/sda1 root:/> mount /dev/sda1 /mnt/ root:/> bonnie++ -u root -d /mnt/ Result: 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 Compared with result on Linux PC, using the same SD (Secure Digital) card and USB (Universal Serial Bus) card reader: 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