Cypress.com: Documentation http://www.cypress.com/?app=search&searchType=advanced&id%3D186 Programming the EZ-Host Development Board - KBA84123 http://www.cypress.com/?rID=44386 Answer: The following instructions will guide you through building and downloading Design Example 3 (DE3) to the Host Development Board.

To build DE3:

  1. Open a BASH window Start → Programs → Cypress → BASH → EnvironmentOTG — Host → USB
  2. Change directories to DE3
    [cy]$ cd Source/stand-alone/de3
  3. Do a make clean to start from scratch
    [cy]$ make clean
  4. Do a make all to rebuild all code
    [cy]$ make all

To download the code to the EZ-Host Development Board RAM:

  1. Open a BASH environment and go to the de3 directory
  2. Use a text editor to view de3.ld to see where the code is org’d at (. = 0x####)
    [cy]$ cy16-elf-objdump –f de3
    [cy]$ cy16-elf-readelf –h de3
    [cy]$ head -20 de3.ld
  3. Run scanwrap on the binary image
    [cy]$ scanwrap de3.bin de3_scan.bin 0x04A4

To download the code to the EZ-Host Development Board EEPROM:

  1. Set all of the board’s dipswitches to off
  2. Power up the board by plugging in the power connector
  3. Reset the board by pressing the reset button
  4. Set the dipswitches for EEPROM 4/stand-alone mode
  5. Open a BASH window and go to the de3 directory
  6. Plug in a USB cable to SIE2 (Peripheral–2A)
  7. Verify the device manager is using the correct driver
    Cypress USB EZ-OTG Device VID=04B4, PID=7200
  8. Run qtui2c
    [cy]$ qtui2c de3_scan.bin f
]]>
Mon, 08 Apr 2013 06:38:00 -0600
USB On-The-Go Specification Adds Muscle To Portable Devices http://www.cypress.com/?rID=14576 Electronic Design (USA)

Reprinted with permission from Electronic Design,
June 10, 2002. Copyright 2002, Penton Media Inc.
611 Route 46 West, Hasbrouck Heights, NJ  07604, USA

Read the article here.

For more information on our USB Embedded Hosts products, visit: cypress.com

]]>
Thu, 31 Jan 2013 00:59:08 -0600
CY3662 - EZ-811HS (OBSOLETE) http://www.cypress.com/?rID=14315 This development kit is no longer available. This web page has been left in place for informational purposes only.

 

CY3662 - EZ-811HS Development Kit
 

The new EZ-811HS (CY3662) development platform provides the most flexible development environment for embedded host applications. The EZ-USB(R) development kit is the ideal starting platform for SL811HS development, using the internal 8051 core as the microcontroller unit (MCU) interface to the SL811HS and the EZ-USB interface for debugging purposes.

The EZ-811HS kit includes the EZ-USB base board and the SL811HS embedded host daughter card, plus a generic mini-port driver that lets you develop simple code to interface to a variety of microprocessors and target peripherals. Real-time operating system (RTOS) drivers are also available for VxWorks, Linux and Windows CE 3.x.


Hardware Description

The EZ-811HS development kit comes with the following components: SL811HS daughter card, EZ-USB development board, USB cable, serial cable, and CD.
]]>
Fri, 19 Oct 2012 02:12:26 -0600
Cypress USB Solutions http://www.cypress.com/?rID=47005 Thu, 30 Aug 2012 01:19:26 -0600 AN023 - USB Compliance Testing Overview http://www.cypress.com/?rID=12995 One of the secrets to USB’s success has been the compliance-testing program. This program verifies that your device meets the specification and works well with other USB devices.

]]>
Fri, 10 Aug 2012 03:24:37 -0600
CY7C67300: EZ-Host(TM) Programmable Embedded USB Host and Peripheral Controller with Automotive AEC Grade Support http://www.cypress.com/?rID=14164 EZ-Host(TM) Programmable Embedded USB Host and Peripheral Controller with Automotive AEC Grade Support

EZ-Host Features

  • Single chip programmable USB dual-role (Host/Peripheral) controller with two configurable Serial Interface Engines (SIEs) and four USB ports
  • Support for USB On-The-Go (OTG) protocol
  • On-chip 48 MHz 16-bit processor with dynamically switchable clock speed
  • Configurable IO block supporting a variety of IO options or up to 32 bits of General Purpose IO (GPIO)
  • 4K x 16 internal masked ROM containing built in BIOS that supports a communication ready state with access to I2C(TM) EEPROM Interface, external ROM, UART, or USB
  • 8K x 16 internal RAM for code and data buffering
  • Extended memory interface port for external SRAM and ROM
  • 16-bit parallel Host Port Interface (HPI) with a DMA/mailbox data path for an external processor to directly access all of the on-chip memory and control on-chip SIEs
  • Fast serial port supports from 9600 baud to 2.0M baud
  • For more, see pdf
     

Introduction

EZ-Host(TM) (CY7C67300) is Cypress Semiconductor's first full-speed, low cost multiport host/peripheral controller. EZ-Host is designed to easily interface to most high performance CPUs to add USB host functionality. EZ-Host has its own 16-bit RISC processor to act as a coprocessor or operate in standalone mode. EZ-Host also has a programmable IO interface block allowing a wide range of interface options.      More...

]]>
Mon, 30 Jul 2012 03:13:02 -0600
SL811HS: Embedded USB Host/Slave Controller http://www.cypress.com/?rID=14162 SL811HS Embedded USB Host/Slave Controller

Features

  • First USB Host/Slave controller for embedded systems in the market with a standard microprocessor bus interface
  • Supports both full speed (12 Mbps) and low speed (1.5 Mbps) USB transfer in both master and slave modes
  • Conforms to USB Specification 1.1 for full- and low speed
  • Operates as a single USB host or slave under software control
  • Automatic detection of either low- or full speed devices
  • 8-bit bidirectional data, port I/O (DMA supported in slave mode)
  • On-chip SIE and USB transceivers
  • On-chip single root HUB support
  • 256-byte internal SRAM buffer
  • For more, see pdf
     

Introduction

The SL811HS is an Embedded USB Host/Slave Controller capable of communicating in either full speed or low speed. The SL811HS interfaces to devices such as microprocessors, microcontrollers, DSPs, or directly to a variety of buses such as ISA, PCMCIA, and others.

]]>
Mon, 30 Jul 2012 02:28:18 -0600
CY7C67200: EZ-OTG™ Programmable USB On-The-Go Host/Peripheral Controller http://www.cypress.com/?rID=14163 EZ-OTG(TM) Programmable USB On-The-Go Host/Peripheral Controller

Features

  • Single-chip programmable USB dual-role (Host/Peripheral) controller with two configurable Serial Interface Engines (SIEs) and two USB ports
  • Supports USB OTG protocol
  • On-chip 48-MHz 16-bit processor with dynamically switchable clock speed
  • Configurable IO block supports a variety of IO options or up to 25 bits of General Purpose IO (GPIO)
  • 4K × 16 internal mask ROM contains built-in BIOS that supports a communication-ready state with access to I2C(TM) EEPROM interface, external ROM, UART, or USB
  • 8K x 16 internal RAM for code and data buffering
  • 16-bit parallel host port interface (HPI) with DMA/Mailbox data path for an external processor to directly access all on-chip memory and control on-chip SIEs
  • Fast serial port supports from 9600 baud to 2.0M baud
  • SPI supports both master and slave
  • For more, see Pdf
     

Functional Description

EZ-OTG(TM) (CY7C67200) is Cypress Semiconductor's first USB On-The-Go (OTG) host/peripheral controller. EZ-OTG is designed to easily interface to most high-performance CPUs to add USB host functionality. EZ-OTG has its own 16-bit RISC processor to act as a coprocessor or operate in standalone mode. EZ-OTG also has a programmable IO interface block allowing a wide range of interface options.      More...

]]>
Fri, 27 Jul 2012 03:56:44 -0600
Windows Hardware Certification Process for Customer Modified Cypress USB Driver Files http://www.cypress.com/?rID=65775 Cypress supplies a digitally signed driver with its reference designs and development kits. The signature on the driver files is invalidated when customer-specific information (VID, PID, strings, and so on) are added to the driver files. The following steps allow customers to obtain the ‘Certified for Windows’ logo digital signature by passing Microsoft’s Windows® Hardware Quality Labs (WHQL) testing for customer-modified Cypress USB driver files. More information on the logo programs offered by Microsoft (including cost, debug procedure etc.) is available at http://msdn.microsoft.com/en-us/windows/hardware/gg463010 and http://msdn.microsoft.com/en-us/windows/hardware/gg487530

 

Driver Signing for Windows Hardware Certification

A complete beginning-to-end walkthrough of how to digitally sign drivers is provided by Microsoft and is available at http://www.microsoft.com/whdc/winlogo/drvsign/kmcs_walkthrough.mspx

 

FAQs

Question 1: I get the following error while binding my device to CyUSB.sys in Windows 7/Vista 64-bit environment, “Windows encountered a problem installing the driver software for your device” or usage of CyUSB.sys in Vista 64-bit operating system gives Code 39 error (Code 52 in the case of Windows 7). What do these errors mean? How can they be resolved?

Answer: CyUSB.sys downloaded through our website is an unsigned driver. This error reported while an unsigned driver used in 64-bit operating systems in normal mode. Following are the steps to disable driver signature enforcement in 64-bit operating system:

a) During boot-up press F8.

b) In the list of options that appear select “Disable driver signature enforcement”.

This should resolve the issues.

Note: In the case of Windows Vista 64-bit operating system the error message is “Windows cannot load the device driver for this hardware. The driver may be corrupted or missing. (Code 39)”. In the case of Windows 7 64-bit operating system it is "Windows cannot verify the digital signature for the drivers required for this device. A recent hardware or software change might have installed a file that is signed incorrectly or damaged, or that might be malicious software from an unknown source. (Code 52)".

Question 2: What is the signing procedure when script files are used?

Answer:When script files are used, the Inf file should contain both VID/PID combinations while signing the driver. The procedure for signing the procedure is the same as that for regular drivers. The script file (.spt file) will need to be shipped along with the Inf/Sys files.

]]>
Tue, 10 Jul 2012 00:57:27 -0600
CY3663 - EZ-OTG / EZ-Host Development Kit http://www.cypress.com/?rID=14316 This development kit is no longer available. This web page has been left in place for informational purposes only.

 

CY3663 EZ-OTG(TM)/EZ-Host(TM) Development Kit
 

The EZ-OTG(TM)/EZ-Host(TM) Development Kit contains all the key elements required to get an embedded host or On-The-Go system up and running. Cypress understands the importance of time-to-market and a minimal learning curve for new technology. The development kit includes multiple design examples that illustrate all primary usage models of the chip. Complete source code, intended for reference and reuse, is included for all components. 

 

The kit features: 

  • Development boards for both EZ-OTG and EZ-Host
  • Design examples for primary usage modes
    • Designs illustrate:
      • USB On-The-Go
      • Multiport host
      • Peripheral mode
      • Simultaneous host and peripheral operation
    • Design example components
      • Windows-based tutorial and control panel application
      • EZ-OTG/EZ-Host firmware
      • Linux firmware for StrongArm 1110
  • CY16 processor development tools
    • Eclipse IDE (Integrated Development Environment)
    • Compiler
    • Assembler
    • Linker
    • Debugger
    • Multiple binary utilities
  • Linux OS support on the StrongArm
    • Linux USB Stack
    • Cypress provided drivers for:
      • Host support
      • Peripheral support
      • OTG support
  • Complete documentation
    • Data sheets
    • Usage guides for all software components
    • Hardware design materials
      • Schematics
      • Bill of Materials
      • OrCAD source
      • Gerber databases
 

The downloads listed below include: 

  • Individual key documents
  • Entire CY3663 documentation package (zipped)
  • Zipped hardware reference files (Schematics, BOM, gerber files, and OrCAD files)
 

Related Links
Complete (278 MB) Development Kit CD-ROM image
Java Runtime Environment for the Eclipse IDE
EZ-OTG/EZ-Host Windows CE driver.


Hardware Description

- EZ-Host Daughter Card
- Book "USB Multi-Role Device Design By Example"
- Co-processor board (StrongArm 1110)
- All required cabling and power supplies
- CD-ROM containing complete set of materials described above
]]>
Fri, 02 Mar 2012 00:38:30 -0600
Delay between sending LCP commands for OTG-HOST http://www.cypress.com/?rID=32800 It is true that the host must grant a delay of 30us to the BIOS between LCP commands. This not specific to the HSS interface and is applicable to the other co-processor interfaces as well

]]>
Mon, 02 Jan 2012 01:02:34 -0600
Difference between SL811HS and CY7C67300/CY7C67200 http://www.cypress.com/?rID=32792  Below is presented a short summary of the differences. The comparison has been made considering embedded host environment and not on the end application that can be constructed off these chips.

1. The SL811HS is a Serial Interface Engine [SIE] only device [no internal processor]. This would mean that it would only handle the low level USB transactions like bit stuffing, ser-deserializing, CRC functions and the like [protocols]. Certainly it would detect device insertion and removal but this would to a very large extent be firmware dependent as well. On the contrary, the OTG-HOST [comprising of the CY7C67200 and the CY7C67300] has an internal CY16 RISC processor [16 bit enhanced] that would be basically used for processing the code in standalone mode and frees up the external processor for other tasks.

2. This would certainly put the point across that the SL811HS is inherently a 8 bit controller as opposed to the 16 bit processing power of the OTG-HOST.

3. The SL811HS has 256 bytes of internal RAM for the control registers and buffers. The CY7C67200 has 16KB of internal RAM [no external interface available] and the CY7C67300 has 16KB of internal RAM with external memory interfacing available. This is one of the major differences between the CY7C67200 and the CY7C67300.

4. The SL811HS does not have the OTG [On the Go] functionality which is present in the OTG-HOST.

5. The OTG-HOST can operate either in standalone mode where the firmware is downloaded over EEPROM or one of the co-processor interfaces [HPI, SPI or HSS]. The standalone mode is not possible using the SL811HS and neither does it support these interfaces.

6. The SL811HS has a single SIE with a single USB port. The OTG-HOST has two configurable SIE's with 2 usb host ports for the CY7C67200 and 4 usb host ports for the CY7C67300, with the additional single OTG port for both the parts. This makes design using the OTG-HOST parts very flexible.

7. Battery operation is possible using the booster circuit in the OTG-HOST parts. This is not possible in the SL811HS.

]]>
Mon, 02 Jan 2012 01:01:32 -0600
Code execution in the OTGHOST http://www.cypress.com/?rID=32788 There are ways to check if the code is being executed.

1. When BIOS first starts executing and does initialization, it will try and see if a 16-bit RAM is connected to the external memory bus. It does this by writing and reading a value of 0x6000 on the external memory bus. You could probe for this write. The BIOS will also perform an external read to 0xC100 (should do this prior to writing the 0x6000 for the 16-bit RAM test).

2. The qtuarena or qtsarena tools could be used to talk directly to the BIOS. These tools are explained in the CY16 Binary Utilities.pdf in the C:\Cypress\USB\OTG-Host\Docs directory.

]]>
Mon, 02 Jan 2012 00:59:00 -0600
Device Mode Unplug Detection in CY7C67300 http://www.cypress.com/?rID=38773 The best way to determine if you are connected to a host is by monitoring VBUS. A host must supply VBUS to your peripheral device. Since you are using SIE1 you can connect VBUS on the connector to the OTGVBUS pin. Then by enabling the VBUS interrupt (Device n Interrupt Enable) you can detect when VBUS changes. Our key example of how this is used is when doing OTG functions like in de1. This example can be located at C:\Cypress\USB\OTG-Host\Source\stand-alone\de1 after you install the CY3663 EZ-OTG(TM)/EZ-Host(TM) development kit tools.

]]>
Wed, 28 Dec 2011 23:14:30 -0600
Theoretical Transfer Rate (speed) of EZ-Host http://www.cypress.com/?rID=37717 EZ-HOST is USB 2.0 Full speed controller.So the theoretical maximum value will be 1.5MBPs=12Mbps.


Practical throughputs will vary around 200KBPS - 1MBPS .It depends on mostly firmware overhead which largely depends on type of applications like mass storage-CF , MP3 , IDE interfaces, Class devices. To list some of the factors of firmware that affect throughput:

1. Standard USB request processing + Class requests (mass storage,audio , printer class etc)

2. Communication interfaces like
SPI Slave:  1-2 Mbps
SPI Master: 12 Mbps
HSS: 2Mbps
HPI: 16MBps
UART: 115 Kbps

With slower communication interfaces, the processor should share the load between interface and the USB bus.  This will reduce the throughput drastically. With faster communication interfaces the throughput will be near to max limit. In this case it depends on the user code design here to get better throughput.

]]>
Wed, 28 Dec 2011 23:09:47 -0600
What is the difference between the SL11 and the SL11T? http://www.cypress.com/?rID=29508 There is no functional difference between the SL11 and the SL11T.  These are simply two different package options.  There is a 28 pin PLCC package (SL11) and a 48 pin LPQFP package (SL11T).

]]>
Tue, 15 Nov 2011 02:54:42 -0600
Cypress EZ-HOST(TM) and EZ-OTG(TM) Embedded Controllers http://www.cypress.com/?rID=14795 cypress_ez_host_tm__and_ez_otg_tm__embedded_controllers_15.jpg

Cypress EZ-HOST and EZ-OTG Embedded Controllers.
]]>
Thu, 10 Nov 2011 02:33:20 -0600
In the SL11H (slave mode) and SL11, does the "Send Stall" bit (bit 5) of the Endpoint Control Register(s) need to be reset for every transaction? Or is it a sticky bit? http://www.cypress.com/?rID=29517 The Send Stall bit (bit 5) of the Endpoint Control Registers is a sticky bit and needs to cleared by firmware.  Otherwise once set, each transaction will be STALLed.



Everytime a packet is STALLed an USB Done interrupt will be generated giving the opportunity to monitor and clear the Send Stall bit.


]]>
Sun, 02 Oct 2011 15:54:24 -0600
Why can't I get any slave devices to respond to the SL11H's requests (as a host)? http://www.cypress.com/?rID=29514 There are two fundemental reasons why a device wouldn't respond to the SL11H's requests.

1) The SL11H's request wasn't setup properly.You can eliminate this problem by using a bus analyzer and see the request properly being sent on the bus.

2) The devices wasn't  reset properly and hasn't made it to it's default state.  If this is the case it will not respond to any USB traffic.

Trouble Shooting:
First, make sure that the SL11H is setup as a host (bit 7 of register 0FH) and that SOFs or EOPs are properly enabled (with SOF counter low and high registers set for 1ms intervals).

To ensure the request was properly setup, be sure that either full or low speed was selected correctly.  To do this make sure data polarity bit 6 of register 0FH along with USB Speed bit 5 of register 05H are set appropriately.

If the device still isn't responding then Make sure that the SL11H is issuing a proper reset once the device has been plugged in and detected (see section 7.1.7.5 of the USB2.0 spec).  Also be sure to allow adaquet  time between the end of the reset and the first transaction.


]]>
Sun, 02 Oct 2011 15:52:16 -0600
SL11H (slave mode) or SL11 ignoring packets/requests http://www.cypress.com/?rID=29513 First make sure the Arm and Enable bits are set in the Endpoint Control Register [03H, 11H, etc.. ].  If the Enable bit isn't set then all transactions to that endpoint will be ignored.

If the SL11H (slave mode) or SL11 still isn't responding to packets/requests then read the Packet Status Register.  Pay attention to the time-out bit (bit 2) and the Error bit (bit 1).

If a time-out ocurs then make sure the direction bit (bit 2) in the Endpoint Control Register [03H, 11H, etc…] is set appropriately.  If this bit is set to expect an IN, and an OUT occurs, then the part  will ingore it and the time-out bit will be set (and vise versa).  If this is the case, re-set the direction bit appropriately and re-arm the endpoint.  The host will resent the packet upto three times if it is ignored.


]]>
Sun, 02 Oct 2011 15:49:28 -0600
Read content error when reading back the register address written to SL11H/SL11 with an external processor http://www.cypress.com/?rID=29512 Internal to the part there are two latches, an address latch and a data latch.Which one is read and written to depends on the A0 line.  If you are reading back the register address then you are accessing the Address register when you read.  

Check the following:

1) On the read cycle you still have a 65ns A0 setup time referenced to the rising edge of the RD strobe.  (the RD/WR strobe has a required 65ns hold time so theoretically you could toggle both at the same time and be okay).

2) Most of the time this problem occurs because the cycle time between accesses is violated (remember writing the register address is an access).  Be sure that nCS inactive time (Tcscs) of 85ns is met (also twrrdl which is 85ns.  nWR high to nRD low).  Therefore between writing the register address and reading back the data you need to allow 85ns.


]]>
Sun, 02 Oct 2011 15:49:08 -0600
Address lines driven low for the CY7C67200 in sleep mode http://www.cypress.com/?rID=29261 In the sleep mode, the external memory address lines are driven low and it is not expected that the memory is shared by an external processor. These address lines are not the same as the HPI_A0 and HPI_A1. Since there is no one else expected to be on this particular address bus, we drive the lines low to conserve power.

 

 

]]>
Sun, 02 Oct 2011 15:46:41 -0600
Slave mode of the SL811HS on endpoint 1 http://www.cypress.com/?rID=29256 The SL811HS does work in slave mode with endpoint 1. Please note that the registers are different in Slave mode. You will need to refer to the definitions in the SL811HST datasheet for information on the Slave registers. 

]]>
Sun, 02 Oct 2011 15:42:13 -0600
Deploying SL811HS in an Operating System less environment http://www.cypress.com/?rID=29239 Yes, it is possible to interface SL811HS with an Operating System less environment to transfer data to the printer. We have a design example for this kind of application, which should give a head start in developing such an application. However, this design example is for our EZ-OTG / EZ-Host family of devices. It is an Operating System less application running on our CY16 core instead of the 8051. This example is based on our Frameworks and can be built using the tools included with our CY3663 - EZ-OTG / EZ-Host Development Kit software, available on our website. Please find the design example attached.

]]>
Sun, 02 Oct 2011 15:38:36 -0600
Writing to Host n SOF/EOP Count Registers when using a hub http://www.cypress.com/?rID=33530 The Host n SOF/EOP Count Register (0xC092 and 0xC0B2) contains the SOF/EOP count value that is loaded into the SOF/EOP counter. This value is loaded each time the SOF/EOP counter counts down to zero. This default value set in this register at power up is 0x2EE0, which will generate a 1 ms timer frame. The SOF/EOP counter is a down counter decremented at a 12-MHz rate. When Host n SOF/EOP Count Register (0xC092 and 0xC0B2) gets written, the SOF/EOP generator will be reset and the frame length will be changed. In EZ-Host two ports share one SIE (PortA and PortB share SIE1). Suppose the PortA is connected to a hub ( they are working) while a device is inserted to PortB. The host software may want to write a value to Host n SOF/EOP Count Register (0xC092). Then the SOF/EOP generator will be reset and the frame length will be changed. This will likely cause the hub stop working. The reason is:

Although the hub is synchronized to the SOF, timing skew can accumulate between the host and a hub. The total accumulated skew can be as large as ?9 bit times. Beyond that the hub may stop working.

So when sharing an SIE for two host ports, Host n SOF/EOP Count Register (0xC092 and 0xC0B2) for this SIE shouldn't be written when a new device is inserted. The default value (0x2EE0) will be used in this case. If you are using the ISR HUSB_RESET when you get an insert, the HUSB_RESET will write to this register and can cause the problem.

The corrective action for this issue is to NOT write to the "Host n SOF/EOP Count Register" when you have a hub on that SIE - or at all for that matter. Leave the value as the default 0x2EE0. If you need to call the USB Reset function in the BIOS, then you may need to write your own USB Reset handling routine based on our BIOS code, but removing the write of the Host n SOF/EOP Count Register.


 

]]>
Sun, 02 Oct 2011 15:37:22 -0600
IDE bus sharing with CY7C67300 (EZ-Host) http://www.cypress.com/?rID=33528 When you want the CY7C67300 to control the IDE bus you would put it in IDE mode with the GPIO Control Register in the Mode Select bits. When you want these lines to be tri-stated you would configure this bus to be GPIO inputs, which will effectively put them in a high impedance mode. This of course would need to be done in a controlled manner. For example a GPIO pin would likely be used as an input that would be used to determine whether or not the IDE bus is to be put in a high impedance mode or not.

]]>
Sun, 02 Oct 2011 15:33:37 -0600
Development with EZ-Host/OTG, getting started. http://www.cypress.com/?rID=33527 The CY7C67200/300 can look intimidating because of its flexibility of being able to run in either stand-alone mode using the internal processor or running in co-processor mode in conjunction with an external processor. Depending on the application the decision to go one route over the other will determine what is available to the customer and how complicated the overall solution will be. The OTG-Host products come with the complete tool set needed to modify, compile and debug your complete solution. It uses GNUPro tools and does not require the purchase of other tools.

 

If you purchase a CY3663 - EZ-OTG / EZ-Host Development Kit, you get hardware that can be used to do the development in either co-processor or stand-alone mode. You get both EZ-Host and EZ-OTG boards along with a StrongArm board that runs Linux to demonstrate the co-processor portion. You can download all the documentation and actually the CY3663 CD-ROM image  from our web site and install the tools without purchasing a kit but without the hardware you can only do so much. Because of the flexibility of the part there is a lot of documentation, which can be a little overwhelming so be warned. When the software is all installed you will find 4 main design examples that are good starting points for almost any design.

 

There are also several simple examples used in conjunction with the book written by John Hyde called USB Multi-Role Device Design By Example, which is in the kit's Docs directory, used to demonstrate various functions of the part and tools.

 

 The recommendation would be to first go through the OTG-Host Navigator tutorial, which is started from the Windows Start | Program Files | Cypress | USB | OTG-Host | OTG-Host Navigator. This tutorial will walk you through the 4 design examples already mentioned. Next it is a good idea to read through the USB Multi-Role Device Design By Example and use the examples to understand the part and the tools. From here you will find the key documents you will need are 1) the datasheet  and 2) the BIOS Users Guide, which is also found in the Docs directory.

]]>
Sun, 02 Oct 2011 15:32:10 -0600
EZ-Host GPIO http://www.cypress.com/?rID=33525 The GPIO pins are fairly easy to use. The GPIO pins can be configured to have a pre-defined interface definition, which is described in the datasheet in the Interface Descriptions section. If a hardware interface such as HPI is not enabled and the GPIO pin is available then the free pin can be defined as either an input or an output. The direction is defined in the GPIO n Direction Register. You simply set up the direction register to specify each GPIO pin's definition (either an input or an output.) By default GPIO pins are defined as inputs meaning they would be in a high impedance state.

 

If a GPIO pin is set as an input, simply read the contents of the GPIO n Input register. All Inputs are sampled asynchronously with state changes occurring at a rate of up to two 48-MHZ clock cycles. GPIO pins are latched directly into registers with a single flip-flop. As an output simply write to the GPIO n Output Data Register. As an example to demonstrate both outputs and reading an input try the following using qtudump. 

 

If we want 3 GPIO pins to be outputs (let's say GPIO 2:0) then you would set the GPIO 0 direction register (0xC022 to 0x0007). Type in the following from a BASH shell prompt with your board connected : [cy]$ qtudump 0xC022 w 0x0007.

Now GPIO[2:0] are defined as outputs. Since the GPIO 0 Output Data Register by default is set to 0x0000, GPIO[2:0] should all go low. You can read these values by reading the GPIO 0 Input Data Register by doing a qtudump 0xC020 1 from the BASH shell prompt ([cy]$ qtudump 0xC020 1).

To make one output go high simply write to the GPIO0 Output Data Register using bash  shell command([cy]$qtudump 0xC01E w 0x0001) and the output should go high.Again a read should show the current value of the pin ([cy]$qtudump 0xC020 1).

]]>
Sun, 02 Oct 2011 15:30:48 -0600
OTG-Host Class Driver for PDA http://www.cypress.com/?rID=33524 The EZ-Host and EZ-OTG parts can operate in stand-alone or in co-processor mode.The mode your design is using will affect the class drivers that are available.

Co-processor mode:  In this mode you would use an external processor in conjunction with the internal CY16 processor through one of the 3 processor interfaces available in the CY7C67200/300. The most popular interface is the HPI bus because of its speed and flexibility. In co-processor mode the external processor is typically running an RTOS such as Linux or WinCE. The CY3663 - EZ-OTG / EZ-Host Development Kit does include a Linux driver for our parts and an EZ-OTG/EZ-Host Windows CE.NET driver is available on our web site. A driver would need to be developed for other RTOSs. The advantage to using an RTOS is the access to other class drivers. You would need to contact the provider of the RTOS you are using to determine if a driver is available for your target device. 

 

Stand-alone:  In stand-alone mode the internal CY16 processor is typically the only processor in the solution. In this case firmware is loaded into the part from an EEPROM at power up. When operating in stand-alone you will need to build your own driver that applies to the target device you want to host or internal firmware for being a slave. We do not have class drivers for a Palm in our frameworks code at this time although Cypress has had customers who have used these parts for hosting Palm PDAs. In the CY3663, there are several design examples that are typical to a given design and a customer will normally start from the one that most closely matches their design. They then will use the driver template and develop the driver for their TPL (Targeted Peripheral List).

 

]]>
Sun, 02 Oct 2011 15:29:31 -0600
Eclipse Crashes http://www.cypress.com/?rID=33521 If you are using Win98 or Win98SE you must change your environment variable settings for your Command Windows. This is required because Eclipse is launched from a Batch File. Please see the "Getting Started Guide" that describes the required 2048 environment requirement. However, if you are using windows XP and have installed any Windows Service Packs with the required Java Runtime libraries then please reinstall the Java Runtime Library.


Most customers who start with the Sun version first without success will have better luck with the IBM JRE. You can download a copy of the IBM version from our web site at: http://www.cypress.com/?rID=14437


As a suggestion, another resource for eclipse questions can be directed at http://www.eclipse.org./ It has been reported that the newer version of Eclipse operates better with either of the JREs.

]]>
Sun, 02 Oct 2011 15:29:10 -0600
Do you have any bench mark results for the CY3663? http://www.cypress.com/?rID=33520 Performance is a measurement of an overall system and thus is difficult to quantify. For example if a measurement was done hosting two different mass storage devices, the performance can be significantly different between the two devices. There are also dependencies on what is done with the data and bottlenecks that can occur due to an application itself. With the CY3663 DVK, using the StrongArm processor running Linux, we have seen bursts of over 800KB/s reading the data and throwing it away to /dev/null. A more realistic average throughput could be more in the 400-600KB/s range. Since the StrongArm processor was discontinued soon after the CY3663 DVK was released, and your products will not be designed with the StrongArm processor your product performance will also be different. The Linux driver has also been ported to uCLinux by some customers, but without a MMU, performance can be hindered particularly with mass storage devices.

]]>
Sun, 02 Oct 2011 15:27:16 -0600
In the CY3663 development kit, what is the purpose of the StrongArm SBC and how can I use it for my desired development ? http://www.cypress.com/?rID=33519 The purpose of the SBC in CY3663 DVK is used to demonstrate the co-processor interface available on both EZ-OTG and EZ-Host. These two parts have three separate co-processor interfaces available. These are HPI, SPI and HSS. For more information on these particular interfaces please refer to the appropriate datasheet. The SBC runs a Linux kernel, which is a popular RTOS used by the development community for embedded systems. By demonstrating Linux on the Cypress SBC, a user can run experiments until their hardware, with their target processor is available. The Linux driver can then be ported over to their development system.

The CY3663 DVK contains design examples which require the SBC for some of the examples to operate. Also include is a book written by John Hyde, which contains several simple examples used to demonstrate various OTG-Host concepts. Some of these simple examples require the SBC to complete.

The CY3663 DVK comes with the SBC and two mezzanine boards for maximum configurability by the user. These mezzanine boards cannot be purchased separately although there is another option for those who want to run only in a stand-alone mode. This is to purchase the CY4640, which is a mass storage reference design. This board is very similar to the EZ-Host mezzanine board in the CY3663. The key difference in the boards is the fact that the CY4640 has some of the parts physically removed although the pads are still available for re-populating the board. These parts are not necessary for the CY4640 and may not be necessary for your design either. The document called CY4640 Hardware User Manual is included in the CY4640 documents describes the components that are not loaded.

Keywords:
CY7C67200, CY7C67300, EZ-OTG, EZ-Host, CY3663, CY4640, mezzanine board, Linux

ID: VCS05050502

]]>
Sun, 02 Oct 2011 15:24:45 -0600
Enabling of USB device Insert/Remove interrupt to the Host Port Interface (HPI) http://www.cypress.com/?rID=33518 The best resource for co-processor based questions can be found in Cypress' Linux driver. The Linux driver can be found in the C:\Cypress\USB\OTG-Host\Source\coprocessor\linux\drivers\usb\cy7c67300 directory after the CY3663 - EZ-OTG / EZ-Host Development Kit has been installed on your system. The Insert/Remove interrupt code can be found in the hcd_irq_resumeX function found in cy7C67200_300_hcd.c. cy7C67200_300_lcd.c contains the code that enables the required registers. Basically what needs to happen is that the Host/Device n Interrupt Enable register will need to have the correct hardware interrupts enabled, the Host n Interrupt Enable Register for Portx Connect Change Int En will need to be configured correctly and the HPI routing register must be configured correctly to route the interrupt to the HPI_INT hardware pin.

]]>
Sun, 02 Oct 2011 15:23:35 -0600
susb1.s file http://www.cypress.com/?rID=33514 Please find the file susb1.s attached with this interaction. This file needs to be saved in the destination folder C:\Cypress\USB\OTG-Host\Source\stand-alone\common on your computer after installing our CY3663 - EZ-OTG / EZ-Host Development Kit available on our website.

]]>
Sun, 02 Oct 2011 15:20:07 -0600
EZ HOST configuration using LPI commands over HPI http://www.cypress.com/?rID=33513 The EZ HOST device can be configured using LCP commands over HPI. This is the co processor mode in which the EZ HOST can function where it communicates with an external processor over the HPI or SPI or HSS interfaces. The BIOS User's Manual will provide additional information on using these commands. This document has been attached in this article for quick reference but is also available in the documentation of the CY3663 dev kit.

As for the development system, having the development system is not really required. However downloading the CY3663 development kit will provide you with a known good working environment to build and test your application with.

]]>
Sun, 02 Oct 2011 15:08:57 -0600
The difference between hardware interrupts and software interrupts http://www.cypress.com/?rID=33512 Yes, there is a difference. When a hardware interrupt occurs, all interrupts are disabled and registers are pushed onto the stack. A hardware interrupt routine requires a ?sti? instruction before returning.
However, a software interrupt is handled just like a call routine. The difference between a regular CALL to a routine and a software INT instruction is that creating a software interrupt gives us a static handle to the routine.
 

]]>
Sun, 02 Oct 2011 15:07:42 -0600
The primary differences between the EZ-Host (CY7C67300) and EZ-OTG (CY7C67200) http://www.cypress.com/?rID=33511 EZ-Host is geared towards the non-mobile embedded market such as kiosks, set-top boxes, etc. EZ-Host has up to 4 USB host ports, an external memory interface, and a few additional I/O options. EZ-Host comes in a 100-pin TQFP.
EZ-OTG is geared towards the mobile market such as PDAs, cell phones, MP3 players, etc. EZ-OTG has up to 2 USB host ports and no external memory interface. EZ-OTG comes in a 48-pin FBGA.
 

]]>
Sun, 02 Oct 2011 15:06:18 -0600
Using Synchronization Type or Usage Type in the bmAttributes of an ISOCHRONOUS endpoint. http://www.cypress.com/?rID=33510 Questions:How to manage ISOCH endpoints that set the Synchronization Type or Usage Type to anything except 00 in the bmAttributes field of the endpoint descriptor?If I set any other bits in the bmAttributes field besides bits 1:0, I do not get endpoint descriptors back correctly. I'm having ISOC problems when using the Synchronization Type or Usage Type in my endpoint descriptors, how do I correct this?

Response:If operating EZ-Host or EZ-OTG in peripheral mode and the peripheral is configured for ISOCHRONOUS endpoints you may see this problem. For an ISOCHRONOUS endpoint, if the bmAttributes field in the Endpoint Descriptor is using bits 5..2, which is valid, the BIOS will not correctly parse the endpoint and set up the part correctly for ISO transfers.

There are two ways to address this issue. One method is to mask these bits before the BIOS parses the descriptors. Since there will be multiple interfaces with an ISOCH solution, you can mask the bmAttributes in the SET_INTERFACE handler. This is actually demonstrated in the application note titled: Using Multiple Interfaces to Implement a USB Isochronous Composite Peripheral with EZ-Host(TM) and EZ-OTG(TM) - AN5083. An alternate solution would be to replace the BIOS delta config interrupt and modify the USB_parse code to mask off all but the lower two bits of the bmAttribute (for bEPAttribute). A copy of the BIOS source code can be requested from Cypress Technical support. A possible solution in the BIOS code might look like this:

 

Currently in the BIOS USB_parse you will find this:

@@:  cmp b[r8+bEPAttribute],1      ; check ISO

          rne

          or  r2, EP_ISO

          ret

 

The cmp statement checks to see if the bEPAttribute equals 1. To resolve this issue, you can check that only the lower two bits equal 01b and ignore the upper bits. Your code could look something like this:

 

@@:   test  b[r8+bEPAttrigute], 0x01    ; check ISO

          rz

          test   b[r8+bEPAttribute], 0x02

          rnz

          ; if we get here, then the lower two bits of bEPAttribute = 01 meaning it is ISO

          or  r2,EP_ISO

          ret

]]>
Sun, 02 Oct 2011 15:04:53 -0600
Can I download a stand-alone firmware image over the co-processor interface? http://www.cypress.com/?rID=33509 Yes! In matter of fact the CY4640 version 1.1 and greater have enabled this feature and can be used for reference. To understand how this is implemented by Cypress you first need to understand how scan signatures and scan codes are used by the BIOS. The standard process when building stand-alone code is to compile the code and then run the scanwrap or scanwrp2 programs, which embed scan signatures and scan codes in the firmware image. These scan signatures/codes can perform functions like write to a register, write to regular memory locations and start the execution of code. More information on scan signatures and scan codes can be found in the BIOS User Manual (Section 1.7.2) included in the Docs directory after the CY3663 or CY4640 software has been installed on your computer. Once a scanwrapped image is available an application can parse through this image and do the same thing that the BIOS would do with these scan codes except it can do this over the co-processor interface using LCP commands. For example one of the first things in a scan wrapped image might be to change the wait states for the external memory. If you were to look at the scan wrapped image with a HEX editor you would see:


B6 C3 03 00 09 3A 22 22  (Note the byte swap for the little endian)

C3 B6 - is the scan signature
00 03 - is the length after the OpCode
09 - is the OpCode for Write Configuration
3A - is the configuration address (adds 0xC000 because this is the configuration space)
22 22 - is the data that will be written to address 0xC03A.

So the parsing routine would recognize the scan signature as being valid and would know how long the actual data is going to be. It will then recognize that this is to write a configuration register and has the register address and data that needs to be written. Then over the co-processor interface it will use the equivalent LCP command. In this case it would equate to a COMM_WRITE_CTRL_REG LCP command. The application can then continue parsing through the scan wrapped image until it has downloaded the complete image and started execution of the code at the starting location of the firmware image.

Check the Cypress web site for updated application notes that address this topic in more detail.

]]>
Sun, 02 Oct 2011 15:04:13 -0600
How can the SIEs on the CY7C67300 be configured? http://www.cypress.com/?rID=33507 The CY7C67300 has two configurable SIEs, each with two USB ports.  Both of these SIEs can be configured as a USB host with two downstream ports, or as a USB peripheral with a single upstream port.  In addition, SIE1 can be used as a single OTG port.  Together, the two SIES gives possible combinations of:



1) Up to four host ports


2) Up to Two peripheral ports


3) A combination of up to two host ports and one peripheral port.


4) A combination of one OTG port and up to two host ports.


5) A combination of one OTG port and one peripheral port.



Keywords: EZ-Host, CY7C67300, SIE


ID: MUL03091002



]]>
Sun, 02 Oct 2011 15:01:58 -0600
How can the SIEs on the CY7C67200 be configured? http://www.cypress.com/?rID=33564 The CY7C67200 has two configurable SIEs, each with 1 USB port.  Both of these ports can be configured as a USB host or as a USB peripheral.  In addition, one of the ports can be used as a OTG port.  Together, the two ports gives possible combinations of:



1) Two host ports


2)  Two slave ports


3) One host and one slave.


4) One OTG and one host.


5) One OTG and one slave..



Keywords: EZ-OTG, CY7C67200, SIE


ID: MUL03091001

]]>
Sun, 02 Oct 2011 15:01:04 -0600
What does the UD bit in the GPIO control register actually do? http://www.cypress.com/?rID=33563 There is an error in the datasheet regarding the UD bit in the GPIO Control Register (0xC006). This bit actually controls internal diagnostics used by Cypress Semiconductor during test and characterization. This bit should be reserved and not used in customer applications. This is true for both EZ-Host and EZ-OTG.

]]>
Sun, 02 Oct 2011 14:58:17 -0600
Standalone mode of ez-host to co processor(HPI) mode http://www.cypress.com/?rID=33515 No, because the mode it boots into is determined by the TTL voltage level of GPIO[31:30] at the time nRESET is deasserted. After a reset pin event occurs, the BIOS bootup procedure executes for up to 3 ms. GPIO[31:30] are sampled by the BIOS during bootup only. After bootup these pins are available to the application as GPIOs. So it has to reset to change the mode.

However, the OTG-Host products can also operate in a mode where standalone code is running on the OTG-Host and is communicating over the coprocessor interface to an external master.

In this case the entire USB stack, including the device driver, can be running on OTG-Host, which reduces the bandwidth requirements on the external processor. There are two different ways of accomplishing this type of configuration. The first method is to operate fully in standalone mode, where the firmware is stored in the EEPROM. When running, the developer’s firmware can communicate over one of the standard interfaces or create a new interface using GPIO pins. Alternately the firmware can call the routine in the BIOS that enables and configures the coprocessor interface. Once this is done, the OTG-Host part will accept standard LCP commands over the defined coprocessor interface.
 
More details on this mode can are included in application note  Standalone versus Coprocessor Mode Choosing the Best Mode for Your Design - AN6072.
]]>
Sun, 02 Oct 2011 14:50:34 -0600
Software USB Stack Implementation For EZ-Host/OTG http://www.cypress.com/?rID=44306 The Cypress CY3663 development kit has design examples built around the frameworks code which provides USB host stack functionality

In CY4640 Reference Design, the entire USB Host stack is implemented in firmware. Additionally the firmware stack supports BOT compliant Mass storage devices. It includes FAT 12/16/32 support, File operations , Mass storage(UMSC,SCSI) class API to enumerate Pen drives and Hard disks on its own
]]>
Sun, 02 Oct 2011 14:49:29 -0600
Hybrid Mode for EZ-Host http://www.cypress.com/?rID=44308 Other than the co-processor and the stand-alone modes, there is a third mode known as hybrid mode, in which the firmware in EZ-Host will handle the enumeration and the external processor can still communicate with it over the co-processor interface. This mode is also detailed in the attached application note.In this mode, you can communicate to the external processor over SPI, HPI or HSS. 

]]>
Sun, 02 Oct 2011 14:47:37 -0600
BIOS Reinitialization Without Hardware Reset http://www.cypress.com/?rID=43642 Instead of pulsing the external RESET line, in order to cause a BIOS reinitialization of CY7C67200, you can also send an LCP command, JUMP2CODE to restart the code execution at 0xE000. This will cause a BIOS reinitialization. 

]]>
Sun, 02 Oct 2011 14:45:01 -0600
Switching from HSS Block to Byte Mode http://www.cypress.com/?rID=42821 HSS FIFO mode once enabled in hardware can be terminated only after the ongoing transfer. You will have monitor the Receive Done Interrupt Flag and once the entire block is received switch to "byte" mode. 

]]>
Sun, 02 Oct 2011 14:43:46 -0600
Eclipse IDE Problems with CY3663 Development Kit. http://www.cypress.com/?rID=33541 In many cases the Sun version of the Java JRE can cause problems on various computers. There are a couple of things that can be done about this. One option is to upgrade to the latest version of Eclipse from www.eclipse.org. It has been reported to Cypress that newer versions of Eclipse do not have the same issues with the Sun JRE although Cypress does not have experience with the more recent versions of Eclipse. A second option is to uninstall the Sun JRE and use the IBM JRE instead. This has solved most of the issues customers have seen. There is a link on the Cypress CY3663 web page to download the required files (see Related links below). When installing the IBM JRE follow the instructions in the CY3663 Getting Started document, which can be found in the C:\Cypress\USB\OTG-Host\Docs directory.


 

]]>
Sun, 02 Oct 2011 14:36:47 -0600
Getting msc_scan.bin file from MSC (mass storage class) project in EZ-Host http://www.cypress.com/?rID=42719 To get the msc_scan.bin you need to type the command [cy]$ make wrap. For more information refer section 5.2 of CY4640 1_1 GettingStarted.pdf in the folder path C:\Cypress\USB\OTG-Host\Docs\CY4640.

]]>
Sun, 02 Oct 2011 14:33:44 -0600
The value of EZ-Host CY7C67300 Hardware Revision Register http://www.cypress.com/?rID=40276 The value of EZ-Host CY7C67300 Hardware Revision Register is 0x0102 ( or 0x0101, for first silicon version).

]]>
Sun, 02 Oct 2011 14:32:28 -0600
Signature SCAN support in EZ-HOST or EZ-OTG http://www.cypress.com/?rID=37720 The signature SCAN support is a comprehensive control protocol that allows UART, serial EEPROM(I2C), USB, and external ROM to interface to the BIOS. There are 2 interrupts to utilize the signature SCAN support

1. SCAN_INT as Interrupt 67 at vector location 0x86

2. SCAN_DECODE_INT as Interrupt 79 at vector location 0x9E

During Boot up time BIOS will utilize signature SCAN features in the following way:

1.   Read External ROM location 0xC100 for SCAN signature 0xC3B6.If it exists BIOS will jump to the location following the signature  for the entire BIOS override.

2.   Reads the EEPROM through I2C for SCAN signature 0xC3B6. If it exists the subsequent SCAN records are read sequentially and the entire firmware image is copied from EEPROM to on-chip RAM at start_addr mentioned in the SCAN record.

3.   At the end of BIOS initialization BIOS creates usb_idle and uart_idle tasks. uart_idle used for debugging through COM port and usb_idle to download firmware image into EEPROM. These tasks run concurrently in the background and call SCAN interrupt if 0xC3B6 is decoded in the UART/USB packets.

Using scanwrap.exe utility of CY3663 DVK the firmware image xxxx.bin is converted to scan_xxx.bin .This image contains SCAN records inserted between data. The image is downloaded into EEPROM in standalone mode .During boot up BIOS checks the EEPROM for SCAN records in this image.

The image contains SCAN records in the below format

Record1:

0xC3B6-0xnnnn(data length)-0xmm(SCAN opcode) – data_0....data_n 

Record2:

0xC3B6-0xnnnn(data length)-0xmm(SCAN opcode) – data_0....data_n 

Last Record:

0x00 0x00

There are 10 SCAN opcodes for different functionality. Method of interpreting the data bytes depends on SCAN opcode number. SCAN_DECODE_INT interrupt will decode the SCAN record to find the relevant opcode. simple examples (se2,se8) utilize SCAN opcodes 0 and 4 to skip SIE1/SIE2 hardware initialization in BIOS. For I2C download SCAN opcode 7 and 8 are used.

Refer the following documents for detailed description,

1.   USB Multi-Role Device Design By Example.pdf: Page 34-35

2.   OTG-Host BIOS User Manual.pdf :pages 35-39

Both the documents can be found at C:\Cypress\USB\OTG-Host\Docs in CY3663 DVK .

 

]]>
Sun, 02 Oct 2011 14:21:41 -0600
BIOS and Firmware For EZ-Host Chip http://www.cypress.com/?rID=37597 The BIOS is part of the silicon is factory programmed into the chip. You do not have to seperately load it.

There are 2 ways to communicate with the EZ-Host in co-processor mode.

Method 1 is as follows:

The external processor can send LCP commands to BIOS. The TD_list information is dumped into EZ-HOST memory which contains details about the set up phase, data phase and acknowleldgement phase of USB transactions. The LCP commands can be used by the external master to access any CPU register.

Here, triggering the BIOS through LCP and then sending TD_list information is sufficient.The OTG-Host device then transfers the data associated with this TD_List to or from USB.
This method eliminates the need of having USB Host stack (TD_list,urb,mass storage class or any class request info,File operations/FAT32 for mass storage etc) in EZ-HOST. BIOS will handle the entire function of decoding LCP commands.

Please refer to the attached appnote which explains TD_list preperation. You will also find chapter 3 of the attached document OTG-Host BIOS User Manual useful.

The Method 2 is as follows:

Download firmware from External processor to EZ-HOST memory through HPI,HSS and SPI.

Intially from GPIO[30:31] pins logic BIOS will decide to switch to any of the 3 SPI,HSS and SPI assembly routines in its ROM code . These routines have capability to understand and decode the content of LCP formatted commands.

Initially for firmware download, BIOS on EZ-HOST side will handle all relevant LCP commands . After download there is an LCP command to jump to the start of downloaded firmware sent by external processor .From this point the firmware will have control over the EZ-HOST chip.
Now user can implement the protocol of his choice (LCP or any other) in his firmware here to suit his end device connected to HOST port.

]]>
Sun, 02 Oct 2011 14:20:14 -0600
Perfomance of Mass Storage Host Ref. Design (CY4640) http://www.cypress.com/?rID=37603 Please find the document 'CY4640 Mass Storage Reference Design Kit 1.0 Release Notes' attached for your reference. This document tabulates the performance measurements across different interfaces and devices.

]]>
Sun, 02 Oct 2011 14:18:46 -0600
Features of CY3663 EZ-HOST interfaces in DVK board http://www.cypress.com/?rID=36475 In terms of board design using EZ-HOST chip there are several ways of utilizing the chip USB Host and peripheral capabilities.

For example Cypress CY3663 DVK based EZ-HOST board has the following features

1. USB Ports:

    SIE1   -2 Host ports (HOST 1A, 1B), 1 Peripheral port (1A) and an OTG port.

    SIE2   -2 Host ports (HOST 2A, 2B) and 1 Peripheral port (2A).     

     These are the maximum USB ports interfacing available using EZ-HOST DVK.

2. Four i2c eeproms are added to allow flexibility to switch between different firmware images.

3. Using a 8 switch dip buttons user can manually select one of the eeprom to boot the image.

4. Additional cypress CPLD CY37064 to add more flexibility in controlling 

     a. Seven segment display
     b. 4on/off Push buttons

     c. Dip switch

     d. GPIO [30:31].

5. CY7C1021CV 64*16 ASYNC SRAM is added to provide external memory support for bulky applications (more than internal RAM size of 15K).

 CPLD based Seven segment display and On/Off push buttons are optional for customer designs. External memory support is needed only when size of the application firmware exceeds more than 15KB internal RAM size.

]]>
Sun, 02 Oct 2011 14:17:22 -0600
Voltage and Current Rating of CY4640 Development Kit http://www.cypress.com/?rID=35312 The section 2.9 on Power of the CY4640 hardware user manual that can be located at C:\Cypress\USB\OTG-Host\Docs\CY4640, the EZ-Host board can receive power either from an external five volt wall transformer or through the co-processor connectors. When in standalone mode, the power from the external five volt wall transformer is fused on board by a fast acting non-resetable fuse at F1. A 3.3 volt regulator provides 3.3 volts to the logic on the board. When in co-processor mode, power is provided by the Cypress StrongARM SBC; five volts through J32 and 3.3 volts through J24 and J30.


The current rating for the fuse F1 is 5A and the current rating for the 3.3V regulator used is 3A.

]]>
Sun, 02 Oct 2011 14:15:39 -0600
Choice of different Interfaces Used in Co-Processor mode of CY7C67300 http://www.cypress.com/?rID=35310 The throughputs for SPI interface that can be used for coprocessor mode in CY7C67300 is up to 12 Mbit/s.

HPI is a popular choice because of the speed at which it can move data. The throughput with HPI is up to 16 MB/s. Both of the serial interfaces, SPI and HSS, are much slower due to the serial nature of the interface and the additional overhead required for a serial interface. However, depending upon your application, the SPI serial interface is still adequate and is desirable when connecting to a system processor that has the same serial interface.

]]>
Sun, 02 Oct 2011 14:11:38 -0600
How does the CyUSB.dll recognize a cypress device? http://www.cypress.com/?rID=35281 Cypress .Net interface is capable of handling USB, Mass storage and HID class. So it traverses these three classes in registry and maps the DriverGUID registry entries with the corresponding Driver. Using this DriverGUID registry value only our .Net interface recognises devices. VID/PID is used to get handle to a particular device when more than one device is connected to CyUSB.sys.

In our cyusb.inf we comment out the lines
CyUsb.GUID="{AE18AA60-7F6A-11d4-97DD-00010229B959}"
and
HKR,,DriverGUID,,%CyUsb.GUID%
to imply the fact that customer should use their own GUID for production even if cyusb.sys is used without modifying. 
In some releases of ours we would have not commented out these two lines. When one of these inf files is used the DriverGUID registry value is added in the registry. Which makes the device visible to the .Net interface.

]]>
Sun, 02 Oct 2011 14:08:39 -0600
Methods to download firmware to EZ_HOST/EZ_OTG in standalone mode http://www.cypress.com/?rID=39427 In Standalone mode EZ_HOST/EZ_OTG is the main processor for the  entire system. If both GPIO[31:30] pins are pulled high then the internal ROM BIOS  boots in Standalone mode . The USB ports on both SIE1/SIE2 will function in peripheral mode by default. Connect a USB cable between Host PC and the any one of the two peripheral ports and follow the methods explained below to download the firmware.

i. Download to EEPROM: Using windows based bash shell utility(qtui2c.exe available in CY3663 Development  kit ), the entire firmware image can be  downloaded into I2C based EEPROM. After reset the image will boot  from the EEPROM.

ii. Download to on-chip RAM: The image can be downloaded directly to RAM using load_ram utility which is a PC based bash shell script. Please refer to these scripts in CY4640 RDK firmware example folders (msc, scsi).

]]>
Sun, 02 Oct 2011 13:58:28 -0600
Difference between SL811HS and CY7C67200/300 http://www.cypress.com/?rID=32673 The major difference between the SL811HS and the CY7C67200/300 is the fact that the CY7C67200/300 has an internal processor, has more available USB ports, has more internal memory and has alternate processor interfaces. The SL811HS requires an external processor to control it but it is fairly simple to use. The CY7C67200/300 has an internal processor or can run from an external processor.

Since CY7C67300 has an internal CY16 RISC based processor with BIOS, it requires less CPU bandwidth because it takes a list of transfer descriptors and operates on them on a frame basis. Since SL811HS does not have an internal processor, it will require more external CPU bandwidth because it must deal with individual packets. SL811HS has 8-bit interface + cntl lines while CY7C67300 has 16-bit HPI, SPI or HSS interface.

Besides this, there are certain OTG protocols that the SL811HS does not support. As for example, the SRP and HNP protocols are among the few protocols that are not supported by this product.

]]>
Sun, 02 Oct 2011 13:56:19 -0600
Clear STALL in SL811HS http://www.cypress.com/?rID=32672 If the condition causing a halt has been removed, clearing the Halt feature via a ClearFeature(ENDPOINT_HALT) request results in the endpoint no longer returning a STALL. For endpoints using data toggle, regardless of whether an endpoint has the Halt feature set, a ClearFeature(ENDPOINT_HALT) request always results in the data toggle being reinitialized to DATA0. The Halt feature is reset to zero after either a SetConfiguration() or SetInterface() request even if the requested configuration or interface is the same as the current configuration or interface. You can find more information on the ClearFeature in section 9.4.1 of the USB 2.0 specification.

]]>
Sun, 02 Oct 2011 13:54:54 -0600
How can I use the HSS interface with the CY4640? http://www.cypress.com/?rID=32615 More recent versions of the CY4640 (starting in version 1.1) include options to use the various co-processor interfaces. This includes the HSS interface. This kit enables the download of the firmware image over the co-processor interface to eliminate the EEPROM and and implements a protocol to communicate between an external MCU and the internal CY16. The basic theory behind this design is to place the EZ-Host into co-processor mode with the HSS enabled. EZ-Host is then under HSS control so after power on when initialization is complete, EZ-Host will wait for the external device to communicate with it. One of the first things the external processor will do is to download the stand-alone firmware image over the co-processor interface (other KnowledgeBase articles discuss downloading of firmware over the co-processor interface). Once the download is complete the external processor tells the firmware to run and a handshake mechanism is in place to send commands and data between the external MCU and the internal CY16 processor.

]]>
Sun, 02 Oct 2011 13:52:07 -0600
Downloading code to CY7C67300 by uart http://www.cypress.com/?rID=32713 After power up, the BIOS reserves a background task for the UART/USB via the uart_idle and the usb_idle tasks. These background tasks call the SCAN interrupt for the special signature word 0xC3B6 from the UART/USB. If found, the Signature Scan Opcodes and data are processed, allowing code and data to be moved into the CY16's RAM space and executed. For more information please refer to page 35 of 172 of the Bios User Manual, available on our website. http://www.cypress.com/?rID=14316

]]>
Sun, 02 Oct 2011 13:49:55 -0600
What is CY4640 http://www.cypress.com/?rID=32614 The CY4640 is the Mass Storage RDK for the EZ-Host IC. The CY4640 is easily configurable for the users needs and comes with hardware and firmware to get started very quickly. The CY4640 runs in stand-alone mode. The CY4640 uses a terminal emulator available on any PC as the user interface to the product. The CY4640 will enumerate up to two USB mass storage devices and also has the ability to talk to an internal IDE drive. The CY3663 on the other hand is a more full featured DVK used for non-mass storage developments. It includes the ability to develop in either co-processor or stand-alone mode. The CY4640 includes all of the development tools necessary to modify and rebuild the firmware to fit your needs.

]]>
Sun, 02 Oct 2011 13:47:31 -0600
Debug CY4640. http://www.cypress.com/?rID=32613 The CY4640 uses the maximum memory available with the EZ-Host without using paging. Because of this, when the firmware is compiled to run in the debugger, the debug symbols cause the code size to be much too large to fit in the available memory. There are several techniques that can be used to debug your code anyway. Here are the main ways to debug the code:

  1. The code can actually be compiled using a standard compiler to run on a windows based system. This of course will use the x86 processor with a larger available memory and so typical debugger functions can be used.
  2. If the code is pared down to just the necessary code for debugging and just the section of code that you need to debug is actually built with the debug symbols, you may be able to get the code to run in the part with the debugger.
  3. The CY4640 includes hardware tracing so the user can connect a logic analyzer to the memory bus and trace various functions.
  4. The CY4640 utilizes the serial terminal for exercising the RDK. This serial terminal connection also provides a good way to display useful information and can be used as a debug tool.

Thes options are covered in detail in a document found in the $HOME/Docs/CY4640 directory and is called CY4640 Debugging Options.

]]>
Sun, 02 Oct 2011 13:44:13 -0600
Type of Mass storage devices CY4640 can support http://www.cypress.com/?rID=32612 The CY4640 implements a mass storage class driver that supports devices that are Bulk Only Transport (BOT) Mass Storage Compliant devices. The device must be a direct access device that has 512 byte sectors. This means that optical devices such as CD-ROMs or DVDs will not work with the CY4640 but most USB HDDs should. If optical support is necessary then a new driver would need to be developed and memory will be come more of an issue due to the large sector sizes. The CY4640 also supports removable media devices as long as the design also meets the above criteria. One of the most popular uses for the CY4640 are with the small USB Flash based drives and it is ideal for these types of devices. Cypress has tested the CY4640 with a variety of these Flash based drives and has built the CY4640 to work with a large variety of drives. There is a chipset used in many of these flash drives that insert a hub between the flash drive and the outside world. For these drives to work a minihub driver was implemented and is included in the kit. The minihub support is not a full featured hub and if your design is not going to support these types of devices the minihub can be compiled out by modifying the fwxcfg.h file. A list of devices that were tested is included in the CY4640 RDK. 

The CY4640 MSC driver will match using VID/PID and Class/Protocol codes. The bInterfaceSubclass in the Interface Descriptor is typically 0x06 for mass storage HDDs, which is the SCSI Tranarent Command Block set. If other bInterfaceSubclasses are required then the user will be required to make the modifications to accomodate any necessary changes. This may include changing the command structures in the scsi.h file.

]]>
Sun, 02 Oct 2011 13:41:50 -0600
CY4640 Device Compatability list http://www.cypress.com/?rID=32610 The following list of devces were tested to be functional on the CY4640 at Cypress with revision 1.0 of the firmware (original release).

 

Connect

Type

Model #

USB

CF

Magicstor CF+ TypeII Plus 2.2 GB GS1022C

USB

CF

Crucial 128MB

USB

MD

Hitachi 4GB MicroDrive HMS360404D5CF00

USB

CF

Memorex 64MB

USB

Flash

Lexar JumpDrive 2.0 Pro 256 MB JD256-40-500 B

USB

Memory Stick

Lexar 256 MB 256100BV0204

USB

CF

Seagate 5 GB ST1 Drive ST650211CF

USB

CF+ SMART

SMART 128 MB SM9FLACF128-C

USB

Secure Digital

SanDisk 64MB AB0407RP

USB

SMARTMEDIA

SimpleTech 32MB K9S5608VOA

USB

CF

SanDisk 256MB

USB

Flash

Memorex 128MB Travel Drive USB 2.0

USB

Flash

euStick CompUSA 16 MB Pen

USB

Secure Flash

Lexar JumpDrive Secure 128 MB JDS128-04-500E

USB

Flash

Lexar JumpDrive PD128-04-500 Rev H

USB

Flash

Prolific USB 2.0 256 MB (w/ mini Hub)

USB

Multi-LUN

Various ScanLogic SL11R-IDE Board CFSM010

IDE 2.5"

HDD

Toshiba 6GB MK6015map

IDE 2.5"

HDD

Fujitsu 20GB MHM2200AT

IDE 2.5"

HDD

Fujitsu 30GB MHN2300AT

IDE 2.5"

HDD

Toshiba 3GB MK3209MAT

IDE 2.5"

HDD

IBM Travelstar 40GB IC25N0ATCS04-0

IDE 2.5"

HDD

Fujitsu 15GB MHN2150AT#F

IDE 2.5"

HDD

IBM Travelstar 10.6GB DJSA-210

IDE 2.5"

HDD

IBM Travelstar 20 GB DJSA-220

IDE 2.5"

HDD

Hitachi 20GB DK23CA-20

IDE 3.5"

HDD

IBM 10 GB DTTA - 371010

IDE 3.5"

HDD

Western Digital 40GB WD400BB

IDE 3.5"

HDD

Western Digital 20GB WD200

IDE 3.5"

HDD

Fujitsu 3GB MPC3032AT

IDE 3.5"

HDD

Samsung 6.4GB SV0644A/MEI

 

Keywords:
USB, CY4640, CY7C67300, EZ-Host, Mass Storage, Drive Compatability

 

ID: VCS04110500

]]>
Sun, 02 Oct 2011 13:31:32 -0600
How can I get the CY7C67200 (EZ-OTG) to support Mass Storage? http://www.cypress.com/?rID=32609 The main issue with the CY7C67200 supporting mass storage is the fact that it has a limited amount of internal memory. When file system support is needed and is being run internally the code space is used up very quickly. This is not to say that it cannot be done because it has but with limited functionality. With limited code space you would not expect to be able to enumerate a large variety of USB HDDs because they are each a little different and may extra steps may be required to be able to fully enumerate and utilize these. You will also find that trying to do both reads and writes will put some heavy burdens on the memory usage. One way to address this is to move various pieces of functionality into the external controller. Typically if a device is going to enumerate a USB HDD then an external processor will be used to navigate on the HDD and determine the actions. If this external processor has the bandwidth to support the file system support then doing things like reading the partition tables and FAT tables can be done on the external processor leaving more room for code in the CY7C67200. You will also need to limit the scope and functionality of the product using the CY7C67200 for mass storage.


The better solution is to use the CY7C67300 (EZ-Host). The CY7C67300 has an external memory bus and so the available memory can be expanded and thus more functionality can be place in the EZ-Host. This is exactly what the CY4640 does and expands the available memory from aproximately 15KB in the EZ-OTG to a combind value of up to about 54KB without use of paging.

Another option to consider is using the EZ-OTG part in co-processor mode instead of in stand-alone mode. When doing this the RTOS that is running in the external processor?will not have these same constraints and they typically have a USB stack with a USB Mass Storage Class driver.


]]>
Sun, 02 Oct 2011 13:24:44 -0600
How do I customize my CY4640? http://www.cypress.com/?rID=32608 The CY4640 is very easy to customize and change the functionality. The reason behind this is that not every customer will want to have all of the available options. For example you might want to have an internal HDD where a different customer has no need for this. To make the modification all you need to do is edit the fwxcfg.h file found in the source directory. In this file the various options have either #define or #undef in front of them. If it is defined with a #define then that functionality will be compiled into the code. If it uses a #undef then it will not be compiled in. After the modifications are done simply rebuild the project with the make command. Note how the amount of used memory changes when this is done.


]]>
Sun, 02 Oct 2011 13:22:53 -0600
Does the CY4640 support peripheral mode mass storage? http://www.cypress.com/?rID=32607 Cy4640 V1.1 release does not support peripheral mode mass storage. CY4640 1.0 supports hosting mass storage devices and has support for one internal IDE drive.

]]>
Sun, 02 Oct 2011 13:20:48 -0600
EZ HOST function when connected to SRAM http://www.cypress.com/?rID=32661 During initialization, the BIOS reads external memory locations to determine if there is any external memory and what width the memory is (8 or 16 bit). It then configures the External Memory Control Register appropriately. Of course you can add to your code or in the scan record to force this to be correct. If the EZ-Host had access to RAM through the CPLD by default and the delay was such that no timing violations occurred, then this initialization should work correctly. By default, the BIOS is conservative and starts with 5 wait states for external memory accesses. 

 

]]>
Sun, 02 Oct 2011 13:19:09 -0600
How can I use the SPI with the CY4640? http://www.cypress.com/?rID=32606 More recent versions of the CY4640 (starting in version 1.1) include options to use the various co-processor interfaces. This includes the SPI interface. This kit enables the download of the firmware image over the co-processor interface to eliminate the EEPROM and and implements a protocol to communicate between an external MCU and the internal CY16. The basic theory behind this design is to place the EZ-Host into co-processor mode with the SPI enabled. EZ-Host is then under SPI control so after power on when initialization is complete, EZ-Host will wait for the external device to communicate with it. One of the first things the external processor will do is to download the stand-alone firmware image over the co-processor interface (other KnowledgeBase articles discuss downloading of firmware over the co-processor interface). Once the download is complete the external processor tells the firmware to run and a handshake mechanism is in place to send commands and data between the external MCU and the internal CY16 processor.

]]>
Sun, 02 Oct 2011 13:17:00 -0600
How can I use the HPI with the CY4640? http://www.cypress.com/?rID=32605 More recent versions of the CY4640 (starting in version 1.1) include options to use the various co-processor interfaces. This includes the HPI interface. This kit enables the download of the firmware image over the co-processor interface to eliminate the EEPROM and and implements a protocol to communicate between an external MCU and the internal CY16. The basic theory behind this design is to place the EZ-Host into co-processor mode with the HPI enabled. EZ-Host is then under HPI control so after power on when initialization is complete, EZ-Host will wait for the external device to communicate with it. One of the first things the external processor will do is to download the stand-alone firmware image over the co-processor interface (other KnowledgeBase articles discuss downloading of firmware over the co-processor interface). Once the download is complete the external processor tells the firmware to run and a handshake mechanism is in place to send commands and data between the external MCU and the internal CY16 processor.

]]>
Sun, 02 Oct 2011 13:15:01 -0600
Gerber files and schematics for the CY4640 http://www.cypress.com/?rID=32604 After you have downloaded or purchased the CY4640 and have completed the install, you will find a directory labeled Hardware. The full default path is: C:/Cypress/USB/OGT-Host/Hardware/CY4640. Here you will find the schematics for the CY4640 board that is shipped with the CY4640 RDK along with the Gerber files. You will also find a simplified schematic that has the components removed that would not be part of a typical real design such as the CPLD. Gerber files are also included for this schematic.

]]>
Sun, 02 Oct 2011 13:13:13 -0600
On-The-Go Electrical Tester(OET) from cypress http://www.cypress.com/?rID=33015 The USB On-The-Go Electrical Tester (OET) is available for purchase only through the USB-IF.
You can check the below link for your reference

http://www.usb.org/developers/estoreinfo/



 

]]>
Sun, 02 Oct 2011 13:08:33 -0600
External Interrupt in coprocessor mode http://www.cypress.com/?rID=32858 There are only two general purpose external hardware interrupts which you have found on GPIO24 and GPIO25 for EZ-Host. These two interrupts are enabled and controlled in the GPIO Control Register 0xC006. In addition, the Interrupt Enable Register 0xC00E has a GPIO Interrupt Enable bit which is the global enable for these two interrupts (IRQ1 and IRQ0), this bit must be set appropriately as well.

 

The GPIO25 interrupt functions the same regardless of standalone or coprocessor mode. GPIO24 is used for the HPI interrupt or in HPI mode or used as IOReady in IDE mode. If either HPI or IDE is enabled, then GPIO24 is no longer a general purpose interrupt.

 

]]>
Sun, 02 Oct 2011 13:06:03 -0600
Crystal for the SL811HS http://www.cypress.com/?rID=33907 Yes, the SL811HS works off a 12 MHz crystal or a 48 MHz crystal. The CM pin is used to configure the clock. Tie it HIGH for 12 MHz and LOW for the 48 MHz. You must be aware of the errata on this part. Please note item 15, which states that the PLL used for 12 MHz operation, is susceptible to noise.

 

]]>
Sun, 02 Oct 2011 13:04:00 -0600
Using the USB-B registers for the SL811HS http://www.cypress.com/?rID=33908 The B register set usage is the same as the A register set. You would only use both register sets if the SL811HS were supporting multiple devices.
 If you download the SL811HS-DK design files from the dev kit section of our website, you'll find a file called sl11h.h where both sets are defined. Here they are defined as:



#define EP0Control 0x00

#define EP0Address 0x01

#define EP0XferLen 0x02

#define EP0Status 0x03

#define EP0Counter 0x04



#define EP0BControl 0x08

#define EP0BAddress 0x09

#define EP0BXferLen 0x0a

#define EP0BStatus 0x0b

#define EP0BCounter 0x0c

 

]]>
Sun, 02 Oct 2011 12:57:14 -0600
Printer Reference Design or Examples for the SL811HS http://www.cypress.com/?rID=33905 We do not have any printer specific examples or reference designs. The best place to start is with the EZ-811HS development kit for the SL811HS. This kit comes with sample firmware that provides all of the fundamental routines to enumerate and communicate on a low level with most USB devices (can do control, interrupt, and bulk transfers). You can take these fundamental routines and build upon them to create a "printer driver". The ability to do bulk transfers is already in place. All of the files including sample code and documentation for this kit are available from our website. From the home page if you select products->Embedded Hosts->SL811HS->EZ-811HS.

Alternatively, if you are running an RTOS that already contains printer class drivers, you may simply be able to add one of our Host Controller Drivers (HCD). We have HCDs available for WinCE, Linux, and VxWorks. An RTOS with printer drivers, our HCD, and our SL811HS hardware together would create a complete USB solution.

 

]]>
Sun, 02 Oct 2011 12:54:32 -0600
What are the main differences between the SL811HS-DVK and EZ-811HS Development Kits? http://www.cypress.com/?rID=33904 The EZ-811HS is a newer development kit with newer collateral associated with it. It is the recommended development kit and can do everything that the older SL811HS-DVK kit can do and more. The only time the SL811HS-DVK kit might be recommended is when interfacing to the ISA bus or when developing for an x86 processor. The SL811HS-DVK is built upon two ISA cards.

 

]]>
Sun, 02 Oct 2011 12:51:54 -0600
Hosting a Mass Storage Device with the SL811HS http://www.cypress.com/?rID=33903 We do not have any mass storage specific examples. The EZ-811HS kit (SL811HS dev kit) comes with sample firmware that provides all of the fundamental low level routines to enumerate and communicate on a low level with most all USB devices. This includes the routines to do bulk transfers that are required by the mass storage device.

You can take these fundamental routines and build upon them to create a "mass storage device driver". The embedded host will need to be able to implement file management and drive management. If you will be communicating with an IDE type device, the embedded host will need to be able to generate Command Block Wrappers (CBW) and interpret Command Status Wrappers (CSW) that the USB Mass storage peripheral understands.

 

]]>
Sun, 02 Oct 2011 02:55:42 -0600
Interrupt in coprocessor mode http://www.cypress.com/?rID=32660 There are only two general purpose external hardware interrupts which you have found on GPIO24 and GPIO25 for EZ-Host. These two interrupts are enabled and controlled in the GPIO Control Register 0xC006. In addition the Interrupt Enable Register 0xC00E has a GPIO Interrupt Enable bit which is the global enable for these two interrupts (IRQ1 and IRQ0), this bit must be set appropriately as well.

 

The GPIO25 interrupt functions the same regardless of standalone or coprocessor mode. GPIO24 is used for the HPI interrupt or in HPI mode or used as IOReady in IDE mode. If either HPI or IDE is enabled, then GPIO24 is no longer a general purpose interrupt.

 

]]>
Mon, 26 Sep 2011 05:11:55 -0600
Occasionally my OTG-Host part doesn't load code from the EEPROM, what could be happening? http://www.cypress.com/?rID=33562 At power on or after a pin reset, the BIOS checks the value of GPIO31:30 to determine what mode to operate in. For stand-alone mode, both of these pins must be pulled high. If these pins are not both high, the BIOS will configure the part to operate in one of the three different co-processor modes. If while the BIOS is loading firmware, the part is reset and at that time the EEPROM is driving the SDA line low, the BIOS will see that the part is configured to be in co-processor mode instead of in stand-alone mode. This will cause the EZ-Host/OTG part to configure the hardware to be in co-processor mode and thus will not try to load firmware from the EEPROM. This will persist until power is removed from the EEPROM because the EEPROM will be waiting for the next clock.

]]>
Mon, 26 Sep 2011 05:10:31 -0600
EZ-Host support on the external memory. http://www.cypress.com/?rID=33561 For the external memory data bus, the hold time on a write to flash memory under hot, low voltage operation can only be guaranteed to 4.5ns. This will violate some flash hold time requirements. Therefore, if flash support is desired, please be sure it does not require a data hold time longer then 4.5ns.

 

]]>
Mon, 26 Sep 2011 05:09:12 -0600
EZ-Host/OTG: On a single SIE, portA device has priority for scheduling over portB http://www.cypress.com/?rID=33560 The device in portA has priority for scheduling. If the portA device NAKs a bulk request, the host will immediately retry the request to that device. EZ-Host/OTG will continue sending the request to the portA device for the entire frame as long as the portA device continues to NAK it. Under this condition, the portB device will never be sent a request in that frame.
The same condition can occur for a single device with multiple bulk endpoints defined.
One way around this is at the end of the frame during EOT, change the priority of the ports (change priority in sh_schedule_trans for Linux OTG driver). However, this approach may slow throughput for some conditions. Alternatively, the BIOS could be changed to move retried requests to the end of the frame, after all other requests.

 

]]>
Mon, 26 Sep 2011 05:08:03 -0600
Why do I get errors when trying to start the Eclipse IDE? http://www.cypress.com/?rID=33557 -1. The Eclipse IDE requires a Java Run-Time Library. Please see the Getting Started Guide in the CY3663 development kit for details on where to download a library from.

-2. As discussed in the Getting Started Guide of the CY3663 kit, Windows 98 machines require that the Initial Memory Environment be set to at least 2048 for Eclipse. Below are the steps to make the appropriate changes:

1. Locate the batch file (eclipse.bat). After the CY3663 CD is installed (default), this file can be found at:

C:\CYPRESS\USB\OTG-Host\Tools\elcipse.bat

2. Right click on the file eclipse.bat and select properties.

3. In the properties window select the Memory tab.

4. Change the "Initial environment" setting to at least 2048 (the total setting should be Auto) and click Apply.

5. Now you should either be able to start the Eclipse IDE by clicking on the eclipse.bat file, or by using the shortcut installed at:

START/Programs/Cypress/USB/OTG-Host/Eclipse



Keywords: EZ-Host, CY7C67300, EZ-OTG, CY7C67200, CY3663, Eclipse



ID: MUL03091803

]]>
Mon, 26 Sep 2011 05:04:42 -0600
EZ-Host Data Buffers Must Reside In Internal Memory http://www.cypress.com/?rID=33559 Data buffers must reside in internal memory. EZ-Host's internal DMA engine can not access external memory. This means that all data buffers for USB, SPI, IDE, HSS and HPI must reside in internal memory. Any external DMA access attempts will result in the address wrapping around and the DMA engine will access internal memory and possibly overwrite vector tables or other important data/code space

In standalone development, if a Cypress design example supplied in the CY3663 developement kit is used, the linker script file (*.ld) will ensure the USB buffers get allocated in internal memory.

]]>
Mon, 26 Sep 2011 05:03:03 -0600
Why do I get an "Out of Environment Space" error when trying to run BASH? http://www.cypress.com/?rID=33558  -As discussed in the Getting Started Guide of the CY3663 kit, Windows 98 machines require that the Initial Memory Environment be set to at least 1024. Below are the steps to make the appropriate changes:

1. Locate the shortcut for the Bash enviroment. After the CY3663 CD is installed (default), the shortcut can be found at:

START/Programs/Cypress/USB/OTG-Host/BASH Environment

2. Right click on the shortcut and select properties (otherwise start the BASH shell and click on the properties button in the CMD window).

3. In the properties window select the Memory tab.

4. Change the "Initial environment" setting to at least 1024 (the total setting should be Auto) and click Apply.

5. Next time you start the BASH shell from this shortcut you should get a prompt ([cy]$).



Note, If you are using the Simple Examples (SE) discussed in the book "USB Multi Role Device Design By Example", then the actual bash_env.bat batch file properties must be modified. These examples each have a seperate bash_env.bat file and do not use the shortcut installed in the start memu. Follow the same steps listed above to modify each of the bash_env.bat file properties.

 

]]>
Mon, 26 Sep 2011 05:02:00 -0600
Industrial Temperatue Range for USB Chips http://www.cypress.com/?rID=33556 We do have two USB chips which are rated for the industrial temperature range. These parts are full/low speed devices only. For more information about these chips, please view the following links:

EZ-Host (CY7C67300)


EZ-OTG (CY7C67200)


EZ-Host (CY7C67300) is Cypress Semiconductor?s first full-speed, low-cost multiport host/peripheral controller. EZ-Host is designed to easily interface to most high-performance CPUs to add USB host functionality. EZ-Host has its own 16-bit RISC processor to act as a coprocessor or operate in standalone mode. EZ-Host also has a programmable I/O interface block allowing a wide range of interface options.

EZ-OTG (CY7C67200) is Cypress Semiconductor?s first USB On-The-Go (OTG) host/peripheral controller. EZ-OTG is designed to easily interface to most high-performance CPUs to add USB host functionality. EZ-OTG has its own 16-bit RISC processor to act as a coprocessor or operate in standalone mode. EZ-OTG also has a programmable I/O interface block allowing a wide range of interface options.



Keywords: Industrial, temperature, Host , peripheral, USB

]]>
Mon, 26 Sep 2011 05:00:10 -0600
EZ-OTG I/O 5 Volt tolerant http://www.cypress.com/?rID=33555 Yes, per the Absolute Maximum Ratings table 10.0 in the CY7C67200 datasheet, it shows a voltage max of 5.5V.

 

]]>
Mon, 26 Sep 2011 04:57:40 -0600
Development Kit for EZ-OTG http://www.cypress.com/?rID=33553 The CY3663 is the development kit for EZ-Host and EZ-OTG. This kit comes complete with a full set of professional tools, boards, etc... For more information on this kit please see the following:


CY3663 - EZ-OTG / EZ-Host Development Kit

]]>
Mon, 26 Sep 2011 04:56:10 -0600
CY7C67200 default VID/PID http://www.cypress.com/?rID=33552 The VID is 0x04B4 and the PID is 0x7200. This VID can only be used during the development phase of your product. The device you ship to the field must include your own VID that you've registered with the USB-IF.

]]>
Mon, 26 Sep 2011 04:50:53 -0600
OTG-Host BIOS handling standard requests http://www.cypress.com/?rID=33551 The BIOS will handle the chapter 9 standard requests and all you really need to do is point to the descriptor information before doing the sie_init. This is described in chapter 4 of the BIOS User Manual (Slave Support Module Firmware). To describe this a little more I'll use our frameworks code as an example. For this discussion we can talk about design example 1, which is our OTG example and thus can be a host or slave. In app.c you will see the app_pre_init function, which is done before the SIE is turned on. This calls sie1_install_descriptor, which is found in sie1.c. Here is what it looks like:

 

void sie1_install_descriptor(void)

{

/* Set OTG-Host device descriptor pointer to point at our device descriptor. */

 

WRITE_REGISTER( SUSB1_DEV_DESC_VEC, &device_descriptor );

 

/* Set OTG-Host config descriptor pointer. */

 

WRITE_REGISTER( SUSB1_CONFIG_DESC_VEC, &sie1_descriptors.config_descriptor );

 

#if NUM_STRING_DESCRIPTORS > 0

 

/* If we have some string descriptors, set string descriptor pointer. */

   WRITE_REGISTER( SUSB1_STRING_DESC_VEC, &sie1_string_descriptor );

#endif

 

/* Put the device on the bus. */

}

 

Here you see that we write the descriptor pointers to their software interrupt vectors, which are mapped in the cy7C67200_300.h file found in the common directory. For more information regarding interrupt vectors refer to the BIOS User manual. Once the SIE is enabled the BIOS should take care of all of this including sending the correct status.

 

Related Links:

Cypress CY3663 OTG-Host Development Kit


]]>
Mon, 26 Sep 2011 04:49:53 -0600
EZ-Host external memory support http://www.cypress.com/?rID=33550 Upto 32KB of external memory from 0x4000 - 0xBFFF is available via one chip select line (nXRAMSEL) with RAM Merge enabled (BIOS default). Additionally, another 8KB region from 0xC100 - 0xDFFF is available via a second chip select line (nXROMSEL) giving 40KB of total available external memory. Together with the internal 15KB, this gives a total of either ~48KB (1 chip select) or ~56KB (2 chip selects) of available memory for either code or data.

 Please note that the memory map and pin names (nXRAMSEL/nXROMSEL) define specific memory regions for RAM vs. ROM. This allows the BIOS to look in the upper external memory space at 0xC100 for SCAN vectors (enabling code to be loaded/executed from ROM). If no SCAN vectors are required in the design (external memory is used exclusively for data), then all external memory regions can be used for RAM. Similarly, the external memory can be used exclusively for code space (ROM).

 If more external memory is required, EZ-Host has enough address lines to support upto 512KB, however this will require complex code banking/paging schemes via the Extended Page Registers.


 

]]>
Mon, 26 Sep 2011 04:48:46 -0600
EZ-Host/OTG harware connections required to come out of reset and begin executing BIOS http://www.cypress.com/?rID=33549 1. 12MHz clock or crystal that matches datasheet?s specs.

2. Power on reset (low signal) of at least 10ms, as indicated in datasheet.

3. EZ-Host Only: Pull-up resistor (47K) on EZ-Host pin 38, A15/CLKSEL pin.

4. Ground all reserve pins (pin 48 on EZ-Host, pin A6 on EZ-OTG).

5. Set GPIO[31:30] appropriately.

6. Make sure VCC, AVCC, and BoostVCC are all connected to power.

7. Make sure that both GND and AGND are grounded.


When EZ-Host/OTG properly comes out of reset, code execution will begin at 0xFFF0 with an immediate jump to 0xE000, which is the start of BIOS. During BIOS initialization, BIOS will make read operations to both the I2C bus and external memory interface (EZ-Host only) to see if there is code to be loaded. Therefore, either the SDA pin on the I2C interface or the nRD pin of the external memory can be probed for activity to ensure that the part properly exited reset and began BIOS code execution.

 

]]>
Mon, 26 Sep 2011 04:47:08 -0600
EZ-Host/OTG HSS and UART signal directions http://www.cypress.com/?rID=33548 The HSS and UART signals are defined as follows:



HSS_TxD : OUT from EZ-Host/OTG;

HSS_RxD : IN to EZ-Host/OTG;

HSS_CTS : IN to EZ-Host/OTG;

HSS_RTS : from EZ-Host/OTG;



UART_TxD : OUT from EZ-Host/OTG;

UART_RxD : IN to EZ-Host/OTG;



Keywords: EZ-Host, CY7C67300, EZ-OTG, CY7C67200, HSS, UART, directions


ID: BGE03082107

]]>
Mon, 26 Sep 2011 04:45:29 -0600
CY3663 standalone http://www.cypress.com/?rID=33547 Yes, but in order to do this you need to make a few modifications, then rebuild the project with "make DEBUG=1".

As an example, you can run design example 4 (de4) using the GDB debugger as follows:
1. FWX_SERIAL_EEPROM in fwxcfg.h must be undefined. In order to use the debugger, this must not be defined. This is described in the Frameworks Reference Guide.
2. The de4.ld file must be modified to change the org point to 0x1000. This will allow room for the GDB stub to be loaded into memory.
Also, you will have to run the debug session through the serial port instead of the USB port because design example 4 takes over control from the BIOS for the USB port on SIE2.


 

]]>
Mon, 26 Sep 2011 04:38:55 -0600
CY3663 projects http://www.cypress.com/?rID=33545 You must make sure that your project is the active window (highlighted in the project window) when you select build. The actual top level project must be highlighted, not just an individual file.

]]>
Mon, 26 Sep 2011 04:36:10 -0600
Host throughput using Linux driver may be low due to EOT time slot http://www.cypress.com/?rID=33544  A portion at the end of the frame is reserved for processing the frames events and setting up the TD for the next frame. This time slot is referred to as EOT. The EOT time defined in the release of our driver is extra long to ensure proper functionality by all devices (mainly, it kept audio devices from making cracking and popping noises). 
This EOT time is configurable in the Linux OTG driver and by default is around 40% of the frame. Therefore, by default, 40% of each frame is reserved for processing and no USB transfers can take place during that time.
 

You can decrease this EOT time and increase the throughput by changing:


1. The MAX_FRAME_BW define in the cy7c67200_300_hcd_simple.c file.
This number defaults to 4096 (~bits per frame). You'll want to increase this, possibly upto 6-7K.

2. The DEFAULT_EOT define in the cy7c67200_300_hcd.c file.
This number defaults to 4800 (40% of frame). You'll want to decrease this, probably no lower then 1200 (10% of frame).



 

]]>
Mon, 26 Sep 2011 04:34:49 -0600
47K pull-up resistor is required on pin 38 of EZ-Host http://www.cypress.com/?rID=33543 EZ-Host requires a 47K pull-up resistor tied to VCC on pin 38. Pin 38 is used as a CLKSEL (clock select) pin sampled after reset to determine whether to enable the internal PLL (required for normal operation). Pin 38 has an alternate function as A15 for the external memory interface.


 

]]>
Mon, 26 Sep 2011 04:32:25 -0600
Passing parameters between functions using the GNUPro Compiler Tools. http://www.cypress.com/?rID=33542 The manner in which parameters are passed between functions depends on the amount of information being passed. For the first six parameters that are passed by the calling functions, they are passed in the registers r0, r1, r2, r3, r4, r5. If there are additional parameters beyond this, the additional parameters will be passed by being pushed onto the stack. If the function that is called is going to returning a 16-bit value, the function will return the value in the register r0. If the called function is returning only an 8-bit value, the value will be returned in the LSB of register R0. If the called function is returning a 32-bit value, the value will be returned in the registers r1 and r0, where r1 will contain the LSW and register r0 will contain the MSW. If you were to return a structure (this is bad practice) space is allocated on the stack and a pointer to the stack area is returned. The calling function will contain code to release the used stack memory upon completion. Keywords: GNUPro Compiler, passing parameters between C+ and assembly ID: KKU03091701

]]>
Mon, 26 Sep 2011 04:29:53 -0600