Frequently Asked Questions
Questions and answers on the following topics:
eCOG1k FAQ
Why can't I receive characters on DUART B?
There is a hardware error in channel B of the eCOG1k DUART which prevents received characters from being read via the duart.b_rx register. The received characters can be read via the duart.b_tx16 register instead.
Why does the ADC give strange results on the eCOG1k development board?Some early V1.2 development boards are fitted with pre-production eCOG1i devices. These devices have two problems with the analogue inputs.
Ensure that the input range of the ADC remains within ±0.65V.
The eCOG1i devices that show these problems are marked as follows:
eCOG1 501254
C64250.00 0212
Later eCOG1i devices and all eCOG1k devices do not exhibit these errors.
eCOG1X FAQ
What are the differences between the eCOG1k and the eCOG1X?
The main differences between the eCOG1k and the eCOG1X are summarised in the following table.
| eCOG1k | eCOG1X | |
|---|---|---|
| Package | 128LQFP | 68QFN, 100QFN, 208BGA
|
| Max. CPU clock speed | 25MHz | 70MHz |
| Flash memory | 64KB | 128KB, 256KB, 512KB |
| SRAM | 4KB | 24KB |
| Max. I/O lines | 88 | 120 |
| UARTs | 2 | 4 |
| Analogue inputs | 4 | 4, 11, 14 |
| Analogue outputs | - | 2 |
| Ethernet MAC | - | Yes |
| USB interface | - | Yes |
| 6 channel PWM for motor control | - | Yes |
| LCD controller | - | Yes |
The eCOG1X also has other new features not listed here. For more information, please refer to the eCOG1X data sheet.
What are the USB Vendor ID and Product ID numbers?
All USB devices are identified by three numbers, described here in order of importance.
For more information, see the details on the USB Implementers Forum web site at www.usb.org/developers/vendor.
How do I get a USB Vendor ID and Product ID for my design?
(a) Become a member of the USB-IF. The annual membership fee is US$4000, and this includes the assignment of a vendor ID to your company (if one has not been assigned previously).
(b) Become a USB-IF non-member logo licensee. This allows you to use the USB logo in conjunction with products that pass USB-IF compliance testing. In addition, a vendor ID is assigned to your company (if one has not been assigned previously). The fee for this is US$2000 for a two-year term.
(c) Purchase a vendor ID without signing the logo license agreement. The administration fee for this purchase is US$2000. Note that if you do not sign the logo license agreement, you are not authorised to use the USB logo in conjunction with your products regardless of their testing status.
For full details, please refer to the USB Implementers Forum web site at www.usb.org/developers/vendor.
If you prefer not to buy your own VID, you can request a block of eight PIDs from Cyan, for use with Cyan's VID. We do not charge for this service. The PIDs assigned to you must be used only with Cyan's VID (0x1B45) and in systems using a Cyan microcontroller with a USB interface.
Please send us the following information when requesting a block of PID numbers:
Note that if the VID or PID are changed, any example device drivers provided by Cyan also need to be changed to match the new numbers. Check any .inf or .ini files for references to the VID and PID numbers.
Software Tools FAQ
What are the system requirements for CyanIDE V1.4?
Why do I get the error message "QT-MT312.DLL missing" when I start CyanIDE?
This error can occur if the PATH variable has become too long, or if there are too many environment variables defined. The maximum limit for the PATH is either 127 or 255 characters depending on the system, and the default space available for environment variables is 256 bytes.
Try reducing the number of entries in the system PATH list, remove any environment variables that are no longer required, or increase the space allocated for environment variables.
An error similar to this has been reported occasionally on specific machines running Windows XP. The symptoms are that the project build fails with the following errors:
Error : FATAL, System error
Description : runprog - spawnvp
Build failed (Exit code 2).
As far as we know, there are two possible causes for this error.
Ideally, both of these issues should be checked.
Can CyanIDE and the eCOG1 Toolkit both be used on the same machine?No, it is not recommended to have both CyanIDE and the eCOG1 Toolkit installed on the same machine. The two packages use the same environment variables with different directories, libraries and driver files. If both are installed, then one of the two packages uses the files from the other instead of its own files.
Is it necessary to uninstall a previous version of CyanIDE before installing the new version?Yes. Earlier versions of CyanIDE or the eCOG1 Toolkit should be uninstalled before a new version of CyanIDE is installed. Any files that have been added below the CyanIDE install directory since the previous installation (for example, any new software projects in the examples directory) are not removed when CyanIDE is uninstalled.
If I change from one USB evaluation board to another, the "Found New Hardware" wizard starts. Is this a problem?This is normal. When a USB device is plugged in to a PC, the PC runs through a process known as enumeration. In this process Windows reads the details of the device from the EEPROM on the device, including the serial number. If these details match with a set already in the registry, the appropriate device driver is loaded automatically.
As the serial number is used in the enumeration process and each Cyan USB device has a unique serial number, then when any Cyan USB device is connected to a computer for the first time, the "New Hardware Wizard" is triggered. Once this has happened once for that particular serial number, then subsequently the drivers are loaded automatically when the same device is connected again.
Do I need Administrator privileges to install CyanIDE under Windows 2000 or XP?Yes. The CyanIDE installation copies device drivers for the eICE debug port to the system directories, and also sets up the PATH and environment variables. These actions will fail unless you have Administrator privileges on the machine when installing the package.
How can I use CyanIDE under Windows NT4 without USB support? The standard eICE driver with CyanIDE V1.1-V1.3 includes support for both parallel port and USB eICE connections. This fails under Windows NT4 which has no support for USB.
There is a copy of the parallel port only driver for the eICE debugger in the CyanIDE installation, in the directory <C:\Program Files\Cyan Technology\CyanIDE\bin\pport>.
Copy the file <eice.dll> from this directory to <C:\WinNT\System32>, replacing the one already there which includes the USB support.
This allows you to run CyanIDE V1.3 and the eICE debugger under NT4 without USB support.
CyanIDE V1.4 no longer includes support for the parallel port eICE driver and so it cannot be used under Windows NT4.
I get an error message "The eCOG1 flash programmer is not responding as expected" when downloading a compiled project to the target system. This can indicate that there are timing problems with the eICE communications between the host PC and the target device. It may occur only on some specific host machines.
Check for any updates to CyanIDE or the eICE driver (eice.dll) on the Software Downloads page. If there is a newer version of the eICE driver, download the new version (file eICE_dll.zip), unzip the file, copy it to the Windows\System32 or WINNT\System32 directory.
This error message indicates a possible problem with the autoexec.nt file on your system. Further information related to this error may be found on these web pages.
http://support.microsoft.com/default.aspx?scid=kb;en-us;324767
http://kb.bighammer.com/article.aspx?id=10003
Please note that Cyan is not responsible for the content of any external web sites. Any files downloaded from any web site should be checked for viruses or spyware before use.
How can I find out the size of my compiled program?The easiest way to check the code size is to look at the file <project.sec> in the output directory. This is new to CyanIDE V1.3, and shows a summary of the fixed memory segments. Here is the summary for the led example project.
| Section | Type | Address | Size |
|---|---|---|---|
| C_RESERVED1 | USER_SEG | 0000 | 0001 |
| CODE | CODE_SEG | 0000 | 0D95 |
| CONST | CONST_SEG | 0001 | 0051 |
| TOTAL | ODE7 | ||
| VAR | VAR_SEG | EDF5 | 0003 |
| C_RESERVED2 | USER_SEG | EFB8 | 0048 |
| REGISTERS | USER_SEG | FEA0 | 0130 |
| TOTAL | 071B |
The first block lists the code and constant data segments located in flash mmeory, and the second block lists the non-constant data segments located in RAM. The first total is the amount of flash occupied, including the code, any reserved data space and constants. The second total is the amount of RAM required for static data, not including the dynamic data areas for the heap, user stack and interrupt stack.
Development Kits FAQ
I get the message "eICE Write - eICE found LOADB unexpectedly low" when I start the emulator with the parallel cable plugged in.
There may be a misconfiguration in the PC's parallel port or a fault with the hardware. To test this, start the emulator with the parallel cable disconnected. If the error message persists the problem is with the parallel port. Make sure you have configured it for ECP mode (usually done via the BIOS).
If the message changes to "eICE Write - eICE timed out waiting for LOADB to become low" the problem is probably with the cable or hardware.
PortA_7 is connected to the INTR0 output of U10 - LAN91C111-NE and hence can only be used as an input.