1. Technical Field
The invention pertains to communication among a controller and integrated circuits, and in particular embodiments, to initializing integrated circuit addresses.
2. Related Art
Microelectronic devices may include multiple integrated circuits (ICs) that operate in conjunction with a controller. In such devices, it is necessary to provide a manner of communicating data between the controller and the ICs. In the interests of miniaturization, it is typically undesirable to use separate dedicated communication lines between each IC and the controller. As a result, a shared bus approach is preferred for most applications.
An example of a conventional shared bus system is illustrated in FIG. 1. The system includes a controller 10 and several integrated circuits (ICs) 12, 14, 16. The integrated circuits may be any of a variety of well known types of ICs including application specific integrated circuits (ASICs), digital signal processors (DSPs), mixed signal processors, and microprocessors. Although three ICs are shown in FIG. 1, the number will vary depending on the application.
The controller communicates data to and from the ICs through a shared bus 18. In order to distinguish communications on the shared bus, each IC is assigned a unique address. The address of each IC is initialized during system initialization. In the system shown in FIG. 1, a four bit address is communicated to each IC in the form of single bits provided on individual dedicated address lines 20. However, as seen in FIG. 1, the system requires separate address lines for each IC, and each address line occupies a separate pin of the controller and of an IC. This arrangement is undesirable because pins are scarce in miniaturized circuits, and the pins used for the address lines in the conventional system are typically not used for any further purpose. Consider that, for example, if it is desired to use sixteen ICs, a total of 64 individual address lines would be required, occupying 64 pins of the controller and four pins of each IC. This eliminates valuable resources at both the controller and the ICs, and may limit the number of ICs that can be used in a given system to a number that is less than would otherwise be desired.
In an alternative to the system of FIG. 1, addresses may be preassigned to each IC by tying address pins of each IC to high or low levels. While this eliminates the need to occupy pins on the controller, it still occupies a large number of pins on each IC, and it complicates the manufacturing process by requiring manual address configuration during manufacturing, since the ability to configure IC addresses during operation is eliminated.