CobraNet® firmware is stored in external FLASH memory which must be programmed before the CobraNet device
can become operational.
Once an initial firmware load of the FLASH is accomplished, the device will be functional. All subsequent firmware
updates can be accomplished via the network, using Cirrus-supplied tools such as CobraNet Discovery or the Python-based manufacturing script.
There are two means for accomplishing this initial firmware load:
•Use of pre-programmed FLASH
•Use of the CID debug interface tool
1.1Pre-Programmed Flash Device
The simplest and most efficient approach, especially for volume production, is to pre-program the FLASH
memory before it is soldered to the circuit board.
CobraNet firmware is delivered as a 1M byte binary file (example: cm18101_2_11_6.bin). The latest firmware may be downloaded from th e C irr us L og i c w eb site at htt p://www.cirrus.com. The firmware binary file
is an exact image of FLASH contents required to boot and operate the CobraNet chip.
A properly constructed CobraNet interface populated with a pre-programmed FLASH will, without intervention, boot and function properly from initial power-up.
It is recommended that the initial firmware image to be used is the cs18100_2_11.x.bin firmware file. This
is the lowest common denominator firmware and will provide proper network functionality in ALL CobraNetchip-based platforms. A manufacturer can then stock only one pre-programmed chip type and then, later,
update specifically required firmware variants during the manufacturing process. FLASH will always need
to be reprogrammed in any case as part of the MAC address assignment process.
1.2I²C® Interface
The chip also features an I²C® interface. Use of the I²C port for device bring-up requires use of:
•I²C/Parallel interface adapter.
•Personal Computer
•CID software
•CobraNet Discovery Software
The software noted above is bundled with this document and can also be downloaded from the Cirrus Logic
web site. The interface adapter can be constructed from th e schematic included in this docu ment or can be
supplied by Cirrus Logic to qualified manufacturers.
Details on using the I²C interface and support software (CID) are provided in the “ I²C Interface and Software”
section.
Use of the I²C interface to load firmware is a two-step process. CID is used to load and run a base version
of firmware in volatile RAM. Once running from RAM and operational on the network, either CobraNet Discovery or the Python manufacturing script must be used to permanently load the FLASH memory with the
most current firmware version.
The standard firmware includes a boot-up routine that performs a Power On Se lf Test (POST). POST tests internal
memory, FLASH memory, the Ethernet controller, and audio clock circuitry. POST can discover and help diagnose
many hardware design errors.
When booting from pre-programmed FLASH, POST errors are reported through blinking indicators on the Ethernet
connectors. For detailed information on POST error r eporting, see the Error Reporting section in the CobraNet Pro-grammer's Reference Manual.
When booting from the I²C interface, POST errors are reported at the CID command line as descri bed in the “POST
Results” section on page 4.
3. I²C INTERFACE AND SOFTWARE
The I²C interface hardware connects between a standard bidirectional parallel printer port on a PC and the target
system.
3.1Software Installation
To install the software:
1. Unzip the contents of the software archive bundled with this document (CID_DIstribution.zip) to an empty directory.
2. Open a command prompt window and change to the directory containing the software.
3. Run 'port95nt' to install the parallel port I/O driver.
3.2Connecting the Target System
The I²C adaptor connects to a PC parallel printer por t with a straight-through male-fem ale 25-pin cable. The
adaptor features a 10-pin header on the tar get side. The first four pins connect from the adaptor to the ta rget.
Pin 1 is marked with a square pad and is the pin furthest towards the bottom in Figure 1.
Figure 1. I²C Adaptor (right) Connected to an Example Target System (CM-2, left)
2AN334REV1
AN334
For target systems that do not use the standard I²C pin-out of the CM-2, I²C adaptor signals are described
in Table 1 and shown in the schematic included in the CobraNet Hardware User's Guide.
WARNING:CID will only function properly when code is not running on the target platform. It is designed to be used
with an 'empty' FLASH. If attempting to use CID with a running device, the device's ability to boot must
first be disabled and the device restarted. See “Disabling the Boot Process” on page 4 if this step is
required.
The following procedure will download CobraNet firmware to the target system's RAM and invoke execution.
1. From a command prompt at the directory where the CID software has been copied, run 'cid'
2. At the prompt, type "e lcm2.cmd". This command takes approximately 20 seconds to execute. Success
is indicated by the following printout.
Stopped at 0x617d
Running from new location
data returned:
0x1ff0: 0x6000ff2b 0x00ff0000
x1: 0xffffffff
Stopped at 0x33<< - 0x33 at this line indicates success
Running from new location
The output above indicates that the interface is booted and functioning on the network. This step does not
load firmware to FLASH memory. At this time, a base version of firmware has been loaded to volatile RAM,
and the device is now running from RAM. CobraNet Discovery or the Python manufacturing script must next
be used to connect to the device via the network and load the latest firmware version to the FLASH memory.
4. DEBUGGING THE HARDWARE
The download and boot process has been seen to fail with the following message in rare instances:
Stopped at 0x617d (or some other invalid address)
Running from new location
data returned:
0x1ff0: 0x6000ff2b 0x00ff0000
x1: 0x00000004
Stopped at 0x1f98(or some other invalid address)
Running from new location
The above example indicates a POST failure on the Ethernet MAC test. This is caused by an interaction
between the CID software, the CobraNet chip, and the Ethernet controller. If you encounter a failure, retry
the operation by resetting your hardware and then reissuing the "e lcm2.cmd". If success can be achieved
after one or two tries, you can be assured that ther e is no problem with th e CobraNet chip or with your hardware design.
AN334REV13
5. MAC ADDRESS
The line 0x1ff0: 0x6000ff2b 0x00ff0000 shows the MAC address. The MAC address is stored in a section
of the flash memory called the configuration record. The value shown here is a special default value used
for the case when an un-programmed configuration record is detected.
In this case of empty FLASH, a special MAC address of 00:60:2b:ff:ff:00 is used.
The value should be viewed as consecutive words that are byte-order-reversed, with the last word (2 bytes)
being of no significance. Units with default MAC addresses should not be used in an operational network
until the configuration record is programmed with a valid MAC address.
MAC addresses must be globally unique. Blocks of Ethernet MAC addresses for productio n can be obtained
directly from the IEEE or from Cirrus Logic.
The configuration record, with new MAC address, can be programmed by using the Cirrus-supplie d Python
manufacturing script in conjunction with the Cirrus-supplied PACNDisco and PACNFirm COM objects.
These objects are automatically installed when CobraNet Discovery is installed.
If a valid MAC address has been previously programmed, the programmed MAC address will be shown. For
example, a MAC address of 34:12:78:56:bc:9a would be indicated by the following CID output:
"0x1ff0: 0x12345678 0x9abcxxxx" – where 'xxxx' can be anything.
AN334
6. POST RESULTS
The line, "stopped at 0x33", indicates POST has passed. If "stopped at 0x1f78" is shown instead, POST has
failed and the failure code is indicated on the previous line, "x1: 0xffffffff". The value shown here (0xffffffff)
is given in the case where no POST error was detected. Possible POST error codes are as follows.
•x1: 0x00000004 - Ethernet controller test failed. Unable to access Ethernet controller. Problem with
Ethernet controller or bus interface to Ethern et co nt ro ller .
•X1: 0x00000007 - Firmware incompatible problem. Firmware is incompatible with CobraNet chip used.
•X1: 0x00000008 - Internal memory test failure. Problem with on-chip CS18101 mem ory.
•x1: 0x00000016 - Sample clock pull range test failed. The sample clock frequency could not be ade-
quately adjusted. There is a problem with the VCXO or supporting circuitry.
•x1: 0x00000017 - Sample clock frequency test failed. The sample clock does not appear to be operating.
There is a problem with the VCXO or supporting circuitry.
7. DISABLING THE BOOT PROCESS
There are two ways to prevent the target device from booting when the FLASH memory contains valid code.
•Ground the HS1 pin (pin 17) on the CobraNet chip. This will instruct the on-chip boot loader to skip load-
ing firmware from FLASH memory.
•Invalidate the boot record in FLASH. Invalidation of the boot record will prevent all subsequent boots.
Invalidation of the boot record is accomplished by running the included 'eboot' script instead of the 'lcm2'
script. This may require running multiple times before it is successful because CID will be conflicting with
the existing firmware that is running. Reset the target device after each time 'eboot' is run.
4AN334REV1
AN334REV15
54321
VCC_+3.3
147
U1E
74LVC125
D
VCC_+3.3
1K Ohm
R4
R3R2R1
C
J1
DB25
B
VCC_+3.3
R9
1K Ohm
1
14
2
15
ERROR#
3
16
4
DATA4
17
5
DATA5
18
GND
6
DATA6
19
GND
7
DATA7
20
GND
8
21
GND
9
22
GND
10
ACK
23
GND
11
BUSY
24
GND
12
PAPER_OUT
25
GND
13
SELECT
R14
R15
R16
R17
23
GND
1
56
GND
4
1211
GND
13
98
GND
10
74LVC125
74LVC125
74LVC125
74LVC125
U2D
U2C
U2B
U2A
33 Ohm
33 Ohm
33 Ohm
33 Ohm
VCC_+3.3
U1A
74LVC125
U1B
74LVC125
U1D
74LVC125
U1C
74LVC125
VCC_+3.3
VCC_+3.3
C2
C1
0.1 uF
1211
13
98
10
56
4
23
1
C5
0.1 uF
10 uF, X5R, 6.3 Volts
VCC_+3.3
1K Ohm
R8
R10
33 Ohm
R11
33 Ohm
R12
33 Ohm
R13
33 Ohm
IO3
GND
IO2
GND
IO1
GND
IO0
GND
R7R6R5
IO0
IO1
IO2
IO3
VCC_+3.3
J2
1
2
GND
3
4
5
6
7
8
9
10
GND
CON10
6
D
C
B
VCC_+3.3
147
U2E
74LVC125
A
123456
VCC_+3.3
VCC_+3.3
VCC_+3.3
C4
C3
0.1 uF
C6
0.1 uF
10 uF, X5R, 6.3 Volts
Cirrus Logic Confidential
Title:
Cirrus Logic, Inc.
305 Interlocken Parkway
Broomfield, CO 80021
(303) 466-5228
Filename:
Sheet: of
Date:
(C) 2002, Cirrus Logic, Inc.
debugger.sch
00
9-Nov-2005
A
AN334
Figure 2. CID Adapter
AN334
Contacting Cirrus Logic Support
For all product questions and inquiries contact a Cirrus Logic Sales Representative.
To find one nearest you go to http://www.cirrus.com
IMPORTANT NOTICE
Cirrus Logic, Inc. and its subsidiaries ("Cirrus") believe that the information contained in this document is accurate and reliable. However, the informat ion is subject
to change without not ice and is provi ded "AS I S" without warran ty of any kind (express or implied). Customers are advised to obtain the latest version of relevant
information to verify, before placing orders, that information being relied on is current and complete. All products are sold subject to the terms and conditions of sale
supplied at the time of order acknowle dgment, including tho se pertaining to warra nty, indemnification, and l imitation of liability. No responsibility is assumed by Cirrus
for the use of this information, including use of this inform ation a s the basis for m anufactur e or sale of an y items, or for i nfringement of patents or other rights of third
parties. This document is the property of Cirrus and by furnishing this information, Cirrus grants no license, express or implied under any patents, mask work rights,
copyrights, trademarks, trade secrets or other intellectual pro perty rights. Cirrus owns the copyr ights associated with the information con tained here in and gives consent for copies to be made of the information only for use within your organization with respect to Cirrus inte grated circuits or other products of Cirrus. This consent
does not extend to other copying such as copying for general distribution, advertising or promotional purposes, or for creating any work for resale.
CERTAIN APPLICATIONS USING SEMICONDUCTOR PRODUCTS MAY INVOLVE POTENTIAL RISKS OF DEATH, PERSONAL INJURY, OR SEVERE PROPERTY OR ENVIRONMENTAL DAMAGE ("CRITICAL APPLICATIONS"). CIRRUS PRODUCTS ARE NOT DESIGNED, AUTHORIZED OR WARRANTED FOR USE
IN PRODUCTS SURGICALLY IMPLANTED INTO THE BODY, AUTOMOTIVE SAFETY OR SECU RITY DEVICES, LIFE SUPPOR T PRODUCTS OR OTHE R CRITICAL APPLICATIONS. INCLUSION OF CIRRUS PRODUCTS IN SUCH APPLICATIONS IS UNDERSTOOD TO BE FULLY AT THE CUSTOMER'S RISK AND
CIRRUS DISCLAIMS AND MAKES NO WARRANTY, EXPRESS, STATUTORY OR IMPLIED, INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS FOR PARTICULAR PURPOSE, WITH REGARD TO ANY CIRRUS PRODUCT THAT IS USED IN SUCH A MANNER. IF THE CUSTOMER OR
CUSTOMER'S CUSTOMER USES OR PERMITS THE USE OF CIRRUS PRODUCTS IN CRITICAL APPLICATIONS, CUSTOMER AGREES, BY SUCH USE, TO
FULLY INDEMNIFY CIRRUS, ITS OFFICERS, DIRECTORS, EMPLOYEES, DISTRIBUTORS AND OTHER AGENTS FROM ANY AND AL L LI ABI LI TY, I NCLUDING ATTORNEYS' FEES AND COSTS, THAT MAY RESULT FROM OR ARISE IN CONNECTION WITH THESE USES.
Cirrus Logic, Cirrus, the Cirrus Logic logo designs, and CobraNet are trademarks of Cirrus Logic, Inc. All other brand and p roduct names in this document may be
trademarks or service marks of their respective owners.
I2C is a registered trademark of Philips Semiconductor Corporation.
6AN334REV1
Loading...
+ hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.