Microchip

11AA02E48 - Spécification de bus Microchip - Free user manual and instructions

Find the device manual for free 11AA02E48 Microchip in PDF.

📄 22 pages English EN Download 💬 AI Question
Notice Microchip 11AA02E48 - page 5
Pick your language and provide your email: we'll send you a specifically translated version.

User questions about 11AA02E48 Microchip

0 question about this device. Answer the ones you know or ask your own.

Ask a new question about this device

The email remains private: it is only used to notify you if someone responds to your question.

No questions yet. Be the first to ask one.

Download the instructions for your Spécification de bus in PDF format for free! Find your manual 11AA02E48 - Microchip and take your electronic device back in hand. On this page are published all the documents necessary for the use of your device. 11AA02E48 by Microchip.

USER MANUAL 11AA02E48 Microchip

Note the following details of the code protection feature on Microchip devices:

• Microchip products meet the specification contained in their particular Microchip Data Sheet.
- Microchip believes that its family of products is one of the most secure families of its kind on the market today, when used in the intended manner and under normal conditions.
- There are dishonest and possibly illegal methods used to breach the code protection feature. All of these methods, to our knowledge, require using the Microchip products in a manner outside the operating specifications contained in Microchip's Data Sheets. Most likely, the person doing so is engaged in theft of intellectual property.
• Microchip is willing to work with the customer who is concerned about the integrity of their code.
- Neither Microchip nor any other semiconductor manufacturer can guarantee the security of their code. Code protection does not mean that we are guaranteeing the product as "unbreakable."

Code protection is constantly evolving. We at Microchip are committed to continuously improving the code protection features of our products. Attempts to break Microchip's code protection feature may be a violation of the Digital Millennium Copyright Act. If such acts allow unauthorized access to your software or other copyrighted work, you may have a right to sue for relief under that Act.

Information contained in this publication regarding device applications and the like is provided only for your convenience and may be superseded by updates. It is your responsibility to ensure that your application meets with your specifications. MICROCHIP MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND WHETHER EXPRESS OR IMPLIED, WRITTEN OR ORAL, STATUTORY OR OTHERWISE, RELATED TO THE INFORMATION, INCLUDING BUT NOT LIMITED TO ITS CONDITION, QUALITY, PERFORMANCE, MERCHANTABILITY OR FITNESS FOR PURPOSE. Microchip disclaims all liability arising from this information and its use. Use of Microchip devices in life support and/or safety applications is entirely at the buyer's risk, and the buyer agrees to defend, indemnify and hold harmless Microchip from any and all damages, claims, suits, or expenses resulting from such use. No licenses are conveyed, implicitly or otherwise, under any Microchip intellectual property rights.

Trademarks

The Microchip name and logo, the Microchip logo, dsPIC, KEELOQ, KEELOQ logo, MPLAB, PIC, PICmicro, PICSTART, rfPIC and UNI/O are registered trademarks of Microchip Technology Incorporated in the U.S.A. and other countries.

FilterLab, Hampshire, HI-TECH C, Linear Active Thermistor, MXDEV, MXLAB, SEEVAL and The Embedded Control Solutions Company are registered trademarks of Microchip Technology Incorporated in the U.S.A.

Analog-for-the-Digital Age, Application Maestro, CodeGuard, dsPICDEM, dsPICDEM.net, dsPICworks, dsSPEAK, ECAN, ECONOMONITOR, FanSense, HI-TIDE, In-Circuit Serial Programming, ICSP, Mindi, MiWi, MPASM, MPLAB Certified logo, MPLIB, MPLINK, mTouch, Octopus, Omniscient Code Generation, PICC, PICC-18, PICDEM, PICDEM.net, PICkit, PICtail, PIC ^32 logo, REAL ICE, rfLAB, Select Mode, Total Endurance, TSHARC, UniWinDriver, WiperLock and ZENA are trademarks of Microchip Technology Incorporated in the U.S.A. and other countries.

SQTP is a service mark of Microchip Technology Incorporated in the U.S.A.

All other trademarks mentioned herein are property of their respective companies.

© 2009, Microchip Technology Incorporated, Printed in the U.S.A., All Rights Reserved.

Printed on recycled paper.

QUALITY MANAGEMENT SYSTEM

CERTIFIED BY DNV

=ISO/TS 16949:2002=

Microchip received ISO/TS-16949:2002 certification for its worldwide headquarters, design and wafer fabrication facilities in Chandler and Tempe, Arizona; Gresham, Oregon and design centers in California and India. The Company's quality system processes and procedures are for its PIC® MCUs and dsPIO® DSCs, KEELOO® code hopping devices, Serial EEPROMs, microperipherals, nonvolatile memory and analog products. In addition, Microchip's quality system for the design and manufacture of development systems is ISO 9001:2000 certified.

Table of Contents

1.0 Introduction 5
2.0 General Characteristics 8
3.0 Standby Pulse 9
4.0 Bit-Level Definition 10
5.0 Byte-Level Definition 11
6.0 Start Header 12
7.0 8-Bit Device Addressing 13
8.0 12-Bit Device Addressing 14
9.0 Command Structure 15
10.0 Device Address Polling 16
11.0 Device Modes 17
12.0 Electrical Specifications 18

NOTES:

UNI/O ^® Bus Specification

1.0 INTRODUCTION

As embedded systems become smaller, there exists a growing need to minimize I/O signal consumption for communication between devices. Microchip has addressed this need by developing the patented** UNI/O® bus, a low-cost, easy-to-implement solution requiring only a single I/O signal for communication.

UNI/O bus-compatible devices can be used to enhance any application facing restrictions on available I/O. Such restrictions can possibly stem from connectors, board space, or from the master device itself.

1.1 Description

The UNI/O bus provides the definition for communication through a single I/O signal. It supports the use of multiple devices through a "bussed" system.

One device is defined as the master and is responsible for initiating and coordinating all operations with the slave devices on the bus. Each slave acts as a peripheral to the master and a slave can be designed for any number of purposes.

Figure 1-1 shows an example system with a microcontroller acting as the master, and other numerous devices attached to the bus as slave peripherals. Note that the master is not limited to being a microcontroller, but can be any device capable of processing the necessary I/O signal.

Data is embedded into the I/O stream through Manchester encoding. The bus is controlled by the master which determines the clock period, controls the bus access and initiates all operations, while all other devices act as slaves. Both master and slave devices can operate as transmitter or receiver, but the master determines which mode is active.

The UNI/O bus supports operation from 10 kbps to 100 kbps (equivalent to 10 kHz to 100 kHz) and places no restrictions on voltage ranges, temperature ranges, or manufacturing processes.

FIGURE 1-1: UNI/O ^® BUS EXAMPLE
Microchip 11AA02E48 - Description - 1

flowchart
graph TD
    A["Micro-controller (Master)"] --> B["SCIO"]
    C["Serial EEPROM (Slave)"] --> B
    D["Temperature Sensor (Slave)"] --> B
    E["Digital Potentiometer (Slave)"] --> B
    B --> F["A/D Converter (Slave)"]
    B --> G["Programmable Gain Amplifier (Slave)"]
    B --> H["I/O Port Expander (Slave)"]

**UNI/O® is a registered trademark of Microchip Technology Inc. Microchip's UNI/O Bus products are covered by the following patent issued in the U.S.A.: 7,376,020.

1.2 Definitions

1.2.1 SCIO

SCIO is the only I/O signal required for the UNI/O bus. Both the serial clock and data are embedded together through Manchester encoding. In this encoding method, each bit consists of a mandatory edge in the middle of a bit period. The direction of this edge determines the value of the bit. A rising edge indicates a '1', whereas a falling edge indicates a '0'.

1.2.2 MASTER DEVICE

The master device determines the clock period, controls bus access and initiates all operations. Only one master is allowed in a system. Examples of master devices include microcontrollers, ASICs and FPGAs.

1.2.3 SLAVE DEVICE

A slave device acts as a peripheral on the bus. Slaves do not initiate any operations; they merely respond to operations begun by the master. Each slave must have a unique device address with which the master can select the device. Slave devices can operate as both transmitter and receiver, but the mode is determined by the master in conjunction with the command issued. Examples of slave devices include serial EEPROMs, temperature sensors and A/D converters.

1.2.4 TRANSMITTER

The transmitter is defined as the device with control of the bus during transmission of a byte. For example, while data is outputting from a slave to the master, the slave is acting as the transmitter.

1.2.5 RECEIVER

The receiver is defined as the device receiving the current byte of data. For example, while a command is being transmitted to a slave from the master, the slave is acting as the receiver.

1.2.6 BIT PERIOD

The bit period is defined as the amount of time reserved for transmission of a single bit. This time period is determined by the master. All slaves recover this period through the start header by measuring the amount of time needed to send the header.

For each bit, the Manchester-encoded bit edge must occur at the middle of the bit period.

1.2.7 STANDBY PULSE

The high pulse used to place all slave devices into Standby mode is called the standby pulse. It is required at the beginning of a command when selecting a new device.

1.2.8 START HEADER

The start header is the combination of a short low pulse followed by a header byte of the value '01010101'. This is always the first byte transmitted for any given command.

After the header byte has been sent, an Acknowledge sequence is performed. For this specific sequence only, no slave responds during the normal SAK time.

1.2.9 DEVICE ADDRESS

Following the start header, the device address is sent. This can consist of either one or two bytes, depending on whether 8-bit or 12-bit device addressing is supported, respectively. The purpose of the device address is to select a specific slave device on the bus. For this reason, every slave device in a system must have a unique device address. Otherwise, bus conflicts will occur and operation will be undefined.

1.2.10 FAMILY CODE

The family code is a 4-bit value included in the device address and indicates the family in which the device resides. Examples of device families include memory devices, temperature sensors and A/D converters.

1.2.11 DEVICE CODE

The device code is either a 4- or 8-bit value, depending on whether 8-bit or 12-bit device addressing is supported, respectively. It is used to differentiate devices with the same family code. Some devices may support programmable device code bits, whereas on others they may be fixed.

After each byte is transmitted, a 2-bit Acknowledge sequence is performed. The first bit is for the MAK and the second bit is for the SAK. The sequence is used to indicate continuation or termination of an operation, as well as to confirm reception of a byte.

1.2.13 MAK/NOMAK

The MAK bit occurs as the first bit of every Acknowledge sequence. It is always sent by the master, regardless of which device transmitted the preceding byte. A MAK is sent as a '1', and a NoMAK as a '0'.

Sending a MAK during an Acknowledge sequence indicates that the current operation is to be continued. This means that more data is to be sent by the device acting as transmitter. A NoMAK indicates that the current operation is to be terminated immediately following the Acknowledge sequence.

1.2.14 SAK/NOSAK

The SAK bit occurs as the second bit of the Acknowledge sequence and is sent strictly by the slave device regardless of which device transmitted the preceding byte. A SAK is sent as a '1', and a NoSAK appears as no edge at all (i.e., no device transmitting).

A NoSAK will occur after each full byte that is transmitted before the end of the device address. For example, for 8-bit addressing, a NoSAK will occur after the start header only, and for 12-bit addressing, a NoSAK will occur after both the start header and the MSB of the device address.

1.2.15 IDLE MODE

Idle mode is a device mode during which a slave device ignores all serial communication until the reception of a standby pulse. Slave devices enter this mode after release from POR, as well as any time an error condition occurs.

1.2.16 STANDBY MODE

Standby mode is a low-power device mode during which a slave device awaits a high-to-low transition on SCIO, marking the beginning of the start header. Slave devices enter this mode upon reception of a standby pulse and after the successful termination of a command via a NoMAK/SAK combination.

1.2.17 HOLD MODE

Hold provides a method for the master to pause serial communication in order to service interrupts or perform other necessary functions. Hold mode is entered by holding SCIO low during any given MAK bit period and is exited by performing a standard Acknowledge sequence with a MAK bit.

Hold mode is not required to be implemented on all slave devices.

2.0 GENERAL CHARACTERISTICS

There is only a single I/O signal, SCIO, necessary for communication between devices and all data transmission occurs through this line. The SCIO signal for all devices in a system are connected together directly in a bussed configuration. The Idle state of the bus is high. In order to ensure the bus is in the Idle state during times when the master may not be driving the bus, the use of a pull-up resistor is recommended. Both clock and data are embedded together by way of Manchester encoding.

The serial stream is divided into bit periods, with one data bit being embedded per period. The bit period time is determined by the master and communicated to the slave during the start header at the beginning of each command. Therefore, the bit period must only be consistent within a single command.

2.1 Bit Rate

Parameter FBIT in Table 12-2 defines the currently supported frequency range. Note that, due to the asynchronous nature of the bus, both minimum and maximum frequencies are defined.

2.2 Voltage Range

In order to support a wide number of fabrication processes, no limitation has been defined for the operating voltages of devices attached to the bus. Such ranges are dependent solely on the specific devices. The only requirement is that input threshold voltages and output current limits meet the electrical specifications set forth in Table 12-1.

2.3 I/O Structures

The I/O structure for SCIO consists of an input buffer and a tri-stateable, push-pull output driver. To avoid high currents during possible bus contention, and to refrain from requiring external components, the SCIO output driver on all slave devices must be current-limited to the specifications listed in Table 12-1. If the output driver on the master device in a system is not significantly stronger than on the slave devices, ambiguous voltage levels may occur during times of possible bus contention.

Because the bus Idle state is high, a pull-up resistor is recommended to ensure bus idle during power up/down sequences, as well as any other time in which no device is driving the bus.

2.4 Bus Capacitance

Successful communication is dependant upon edge transitions occurring within the proper time frames. Moreover, slew rates must be minimized to avoid detecting unwanted edges, most critically during the start header. Because of this, the bus capacitance is limited to 100 pF. This is comprised of the SCIO pin capacitance for all devices on the bus, as well as the capacitance of all wires and connections.

2.5 Fabrication Processes

The UNI/O bus is not designed for any particular process or technology. Therefore, all IC fabrication technologies are supported, so long as the electrical specifications set forth in Section 12.0 “Electrical Specifications” are met.

3.0 STANDBY PULSE

Before communicating with a new device, a standby pulse must be performed. This pulse signals to all slave devices on the bus to enter Standby mode, awaiting a new command to begin. The standby pulse can also be used to prematurely terminate a command.

The standby pulse consists of holding SCIO high for a minimum of TSTBY. After this has been performed, the slave devices will be ready to receive a command.

Once a command is terminated satisfactorily (i.e., via a NoMAK/SAK combination during the Acknowledge sequence), performing a standby pulse is not required to begin a new command as long as the device to be selected is the same device selected during the previous command. In this case, a period of Tss must be observed after the end of the command and before the beginning of the start header. After Tss, the start header (including low pulse) can be transmitted in order to begin the new command.

If a command is terminated in any manner other than a NoMAK/SAK combination, or if an invalid number of data bytes has been sent (as specified by the command's definition), then this is considered an error condition and the master must perform a standby pulse before beginning a new command, regardless of which device is to be selected.

An example of two consecutive commands is shown in Figure 3-1. Note that the device address is the same for both commands, indicating that the same device is being selected both times.

Note: After a POR/BOR event occurs, a low-to-high transition on SCIO must be generated before proceeding with any communication, including a standby pulse.

FIGURE 3-1: CONSECUTIVE COMMANDS EXAMPLE
Microchip 11AA02E48 - STANDBY PULSE - 1

text_image Standby Pulse Start Header MAK NoSAK Device Address MAK SAK SCIO 0101:0 0 00 00101 NoMAK SAK TSS Start Header MAK NoSAK Device Address MAK SAK SCIO

Upon detection of the standby pulse, a slave device will typically enter its lowest power state. The exception to this is when the slave device is executing an internal process in the background. Examples include an EEPROM performing a write cycle, or a temperature sensor carrying out a conversion.

If at any point during a command an error is detected by the master, a standby pulse should be generated and the command should be performed again.

4.0 BIT-LEVEL DEFINITION

Clock and data are embedded together through Manchester encoding. Each data bit is transmitted within a single bit period, TE, which is specified by the master during the start header of the command.

Every bit period includes an edge transition at the middle of the period, and it is the direction of this edge which determines the value of the bit. A rising middle edge indicates a '1' value, whereas a falling edge indicates a '0', as shown in Figure 4-1.

FIGURE 4-1: BIT VALUES
Microchip 11AA02E48 - BIT-LEVEL DEFINITION - 1

text_image '1' '0' TE TE

Because every bit period must have a middle edge transition, there may or may not exist another edge transition at the beginning of a bit period. This is entirely dependent upon the values of both the previous and current bits. If two bits of equal value are being successively transmitted, then a transition at the beginning of the second bit is required. If the two bits are of opposing values, then no edge will occur. Refer to Figure 4-2 for details.

FIGURE 4-2: SUCCESSIVE BIT TRANSMISSION EXAMPLE
Microchip 11AA02E48 - BIT-LEVEL DEFINITION - 2

text_image '1' '1' Edge Exists '1' '0' No Edge Exists

4.1 Timing Considerations

In order to allow for flexibility in timing, UNI/O bus-compatible devices must be tolerant of small deviations, or jitter, in input edge timing, as specified by TIJIT. See Figure 12-4 for details.

Slave devices must also allow for a small amount of frequency drift. FDRIFT specifies the maximum drift per byte tolerance required for all slave devices, and FDEV shows the overall drift from the initial serial bit period for a single command. For example, if a command is begun using a 20 s bit period, the master can drift a maximum of 20 s*FDRIFT per byte, up to a total of 20 s*FDEV within that command.

5.0 BYTE-LEVEL DEFINITION

Communication is formatted using 8-bit bytes. All bytes are transmitted with the Most Significant bit sent first and the Least Significant bit sent last. Each bit is transmitted immediately following the previous bit, with no delay in between bits. An example is shown in Figure 5-1.

FIGURE 5-1: BYTE TRANSMISSION EXAMPLE
Microchip 11AA02E48 - BYTE-LEVEL DEFINITION - 1

text_image SCIO '1' '0' '1' '1' '0' '1' '0'

5.1 Acknowledge Sequence

An Acknowledge routine occurs after each byte is transmitted, including the start header. This routine consists of two bits. The first bit is transmitted by the master and the second bit is transmitted by the slave, as shown in Figure 5-2.

5.1.1 MAK

The Master Acknowledge, or MAK, is signified by transmitting a '1' and informs the slave that the command is to be continued (i.e., more data will be sent). Conversely, a Not Acknowledge, or NoMAK, is signified by transmitting a '0', as shown in Figure 5-3, and is used to end the current command and initiate any corresponding internal processing, if necessary.

A MAK must always be transmitted following the start header. If a NoMAK is transmitted, device operation will be undefined.

5.1.2 SAK

The Slave Acknowledge, or SAK, is also signified by transmitting a '1' and confirms successful reception of the previous byte of data. Unlike the NoMAK, the NoSAK is signified by the lack of a middle edge during the bit period.

In order to avoid possible bus collision due to multiple devices transmitting at the same time, no slave device will respond with a SAK until a specific slave has been selected. That is, a NoSAK will occur after each byte that is transmitted before the end of the device address (i.e., for 8-bit addressing, a NoSAK occurs after the start header only, and for 12-bit addressing, a NoSAK occurs after both the start header and the MSB of the device address).

5.1.3 ERROR DETECTION

If a SAK is not received from the slave after any byte (after a device has been selected), an error has occurred. The master should then perform a standby pulse and begin the desired command again.

FIGURE 5-2: ACKNOWLEDGE ROUTINE
Microchip 11AA02E48 - ERROR DETECTION - 1

flowchart
graph TD
    A["Master Slave"] --> B["MAK"]
    A --> C["SAK"]

FIGURE 5-3: ACKNOWLEDGE BITS
Microchip 11AA02E48 - ERROR DETECTION - 2

flowchart
graph TD
    A["MAK ('1')"] --> B["NoMAK ('0')"]
    C["SAK ('1')"] --> D["NoSAK(1)"]
    E["NoMAK ('0')"] --> F["NoSAK(1)"]

Note 1: A NoSAK is defined as any sequence that is not a valid SAK.

6.0 START HEADER

All operations must be preceded by a start header. The start header consists of holding SCIO low for a period of THDR, followed by transmitting an 8-bit '01010101' code. This code is used to synchronize the slave's internal clock period with the master's clock period, so accurate timing is very important. An Acknowledge sequence is then performed following transmission of the start header. Figure 6-1 shows an example of the start header sequence.

When a standby pulse is not required (i.e., between successive commands to the same device), a period of Tss must be observed after the end of the command and before the beginning of the start header.

FIGURE 6-1: START HEADER EXAMPLE
Microchip 11AA02E48 - START HEADER - 1

text_image TSS THDR '0' '1' '0' '1' MAK NoSAK' '1' '0' '1' SCIO Synchronization

During the Acknowledge sequence following the start header, no slave device will respond with a SAK. Within this time, the bus will not be driven by any device and no edge transition will occur. Refer to Section 5.1 "Acknowledge Sequence" for details.

6.1 Synchronization

6.1.1 OSCILLATOR

In order to provide an accurate time base with which to extract the serial clock frequency, an oscillator must be used by each slave device on the bus. This can be either internal or external to the device, though including an internal oscillator is strongly recommended to avoid requiring excess external components.

The necessary accuracy of the oscillator to a specific frequency is dependent only on the design of the device. The only bus-based requirements are that the chosen oscillator be stable enough across voltage and temperature and that the frequency is high enough to provide a reasonable state of synchronization during a command.

If an internal oscillator is included, it is recommended that it be powered down during Idle and Standby modes so as to reduce unnecessary power consumption. The THDR period provides a time during which such an internal oscillator can power-up and stabilize.

6.1.2 SERIAL FREQUENCY EXTRACTION

The start header is utilized by slave devices as a means of determining the bit period used by the master. During the start header, a counter can be used to measure the amount of time required to transmit 8 bits of data. This counter can then be divided down to determine the bit period, TE, which can be used as a comparison for all other bits.

The required widths of such counters are dependent upon the oscillator frequency used and would need to be wide enough to support 100 s bit periods (10 kbps operation).

6.2 Re-synchronization

During communication, it is possible that either the master's or the slave's reference clock may drift. This may be due to many events, including changes in voltage or temperature. If not corrected for, such a drift will eventually cause a loss of synchronization. Therefore, all slave devices must monitor the middle edge of each MAK bit and where it occurs relative to the slave's bit period, and then adjust its frequency to match.

6.2.1 PHASE ADJUSTMENT

During every MAK bit, the middle edge should also be used to reset the slave's phase (i.e., the slave should assume that the MAK edge is located at the middle of the master's bit period and therefore use it as a reference for further communication).

This will ensure that any error in phase which may occur will not accumulate from byte to byte.

7.0 8-BIT DEVICE ADDRESSING

In order to differentiate individual slave devices on the bus, a device address byte is sent by the master device following the start header. This is an 8-bit value used to select a specific device attached to the bus.

The device address byte consists of a 4-bit family code and a 4-bit device code. The device code may be either fixed or programmable in order to provide the ability to cascade multiple devices with identical family codes on the same bus.

FIGURE 7-1: 8-BIT DEVICE ADDRESS
Microchip 11AA02E48 - 8-BIT DEVICE ADDRESSING - 1

flowchart
graph TD
    A["Device Code"] --> B["Family Code"]
    B --> C["Device Code"]
    C --> D["MAK"]
    C --> E["SAK"]
    F["Device Address"] --> G["A7"]
    H["Device Code"] --> I["A6"]
    J["Device Code"] --> K["A5"]
    L["Device Code"] --> M["A4"]
    N["Device Code"] --> O["A3"]
    P["Device Code"] --> Q["A2"]
    R["Device Code"] --> S["A1"]
    T["Device Code"] --> U["A0"]

7.1 Family Code

The upper nibble (bits A_7-A_4 ) of the device address is the family code. This code is a 4-bit value and specifies in which family the device resides. The families and codes are defined by Microchip and must be followed in order to reduce the risk of address conflicts. To obtain the proper code for a specific device, please contact Microchip.

Certain codes have been reserved for special functions and are listed in Table 7-1.

TABLE 7-1: RESERVED FAMILY CODES

CodeDescription
‘0000’Reserved for future use
‘0011’Display Controllers
‘0100’I/O Port Expanders
‘1000’Frequency/Quadrature/PWM Encoders, Real-Time Clocks
‘1001’Temperature Sensors
‘1010’EEPROMs
‘1011’Encryption/Authentication Devices
‘1100’DC/DC Converters
‘1101’A/D Converters
‘1111’12-bit Addressable Devices

7.2 Device Code

The lower nibble (bits A_3-A_0 ) of the device address is the device code. This code is a 4-bit value and is used to differentiate between multiple devices on the bus within the same family. The device code is defined at the device level and can be either fixed or customizable. Such customizable bits can be implemented in any manner, including via external input pins or software configuration.

It is strongly recommended that as many customizable device code bits as possible be included in order to help avoid address conflicts.

8.0 12-BIT DEVICE ADDRESSING

As an extension to 8-bit device addressing (Section 7.0 "8-Bit Device Addressing"), 12-bit device addressing allows for support of a much larger number of devices. Devices designed to support 12-bit addressing are fully compatible with 8-bit addressable devices, and both can be connected onto the bus concurrently.

The 12-bit device addressing scheme takes advantage of the '1111' family code defined in Section 7.1 "Family Code". This code functions as an enable for 12-bit addressing compatible devices and will place all other devices into Idle mode.

FIGURE 8-1: 12-BIT DEVICE ADDRESS
Microchip 11AA02E48 - 12-BIT DEVICE ADDRESSING - 1

flowchart
graph TD
    subgraph DeviceCode
        A1["Device Code A7"] --> A6["Device Code A6"]
        A5["Device Code A5"] --> A4["Device Code A4"]
        A3["Device Code A3"] --> A2["Device Code A2"]
        A2["Device Code A2"] --> A1["Device Code A1"]
        A0["Device Code A0"] --> A0a["A0"]
    end
    subgraph FamilyCode
        A11["1A11"] --> A10["A10"]
        A9["A9"] --> A8["A8"]
    end
    subgraph 12-BitAddressCode
        B1["12-Bit Address Code"] --> B11["Family Code"]
        B11 --> B10
        B10 --> B9["A9"]
        B9 --> B8["A8"]
    end
    subgraph MAK
        C1["MAK"] --> C2["No SAK"]
        C2 --> C3["DEVICE LOW ADDRESS"]
        C3 --> C4["DEVICE"]
    end
    subgraph MAKSAK
        D1["MAK"] --> D2["SAK"]
    end

8.1 Family Code

The lower nibble (bits A_11-A_8 ) of the device high address is the family code. This code is a 4-bit value and specifies in which family the device resides. The families and codes are defined by Microchip and must be followed in order to reduce the risk of address conflicts. To obtain the proper code for a specific device, please contact Microchip.

Certain codes have been reserved for special functions and are listed in Table 8-1.

TABLE 8-1: FAMILY CODES

Code Description
'0000' Reserved for future use
'1111' Reserved for future use

8.2 Device Code

The low byte (bits A_7-A_0 ) of the device address is the device code. This code is an 8-bit value and is used to differentiate between multiple devices on the bus within the same family. The device code is defined at the device level and can be either fixed or customizable. Such customizable bits can be implemented in any manner, including via external input pins or software configuration.

It is strongly recommended that as many customizable device code bits as possible be included in order to help avoid address conflicts.

9.0 COMMAND STRUCTURE

After the device address, a command byte must be sent by the master to indicate the type of operation to be performed. This command is defined at the device level and no restrictions are placed on it by the bus.

A full operation can consist of any number of bytes, ranging from a single command byte to a theoretically unlimited maximum. After the initial command byte, additional bytes can be included for any necessary purpose, such as for addressing or data.

Regardless of the number of bytes required, all commands are terminated through the transmission of a NoMAK from the master.

A full operation consists of the following steps:

  • Standby Pulse (1)
  • Start Header
  • Device Address
  • Command Byte

- Any other bytes necessary for the operation

Note 1: A standby pulse may not be required for consecutive commands to the same device. Refer to Section 3.0 “Standby Pulse” for more details.

Figure 9-1 shows an example read operation for a serial EEPROM.

FIGURE 9-1: EXAMPLE EEPROM READ OPERATION
Microchip 11AA02E48 - COMMAND STRUCTURE - 1

text_image Standby Pulse Start Header MAK NoSAK Device Address MAK SAK SCIO 01 01 00 1 0 A3 A2 A1 A0 0 Command MAK SAK Word Address MSB MAK SAK Word Address LSB MAK SAK SCIO 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 1 Data Byte 1 MAK SAK Data Byte 2 MAK SAK Data Byte n MAK SAK SCIO 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 NoMAK SAK

10.0 DEVICE ADDRESS POLLING

Slave devices must respond with a SAK if either a MAK or NoMAK is received following the device address, as long as the address is valid. In the case of a NoMAK, the slave device will return to Standby mode immediately following the transmission of the SAK.

This feature allows the master to perform an address polling sequence in order to determine what devices are connected to the bus. Such a sequence is typically used in conjunction with a list of expected device addresses to allow for added flexibility in system design.

In order to perform device address polling, the master generates a standby pulse and start header and transmits the desired device address followed by a NoMAK. The master then checks to see whether or not a corresponding slave transmits a SAK. If a SAK is received, then a slave exists with the specified device address. Note that a standby pulse must be generated before every command, as a different device is being addressed during each sequence.

Figure 10-1 shows an example of polling for two devices, both with 8-bit device addresses. In this example, the first device exists on the bus and the second device does not exist. For 12-bit addressing, the sequence is the same except that the SAK is checked following the device low address.

FIGURE 10-1: DEVICE ADDRESS POLLING EXAMPLE
Microchip 11AA02E48 - DEVICE ADDRESS POLLING - 1

text_image Standby Pulse Start Header MAK NoSAK Device Address 1 NoMAK SAK SCIO 01010 00 00101 Standby Pulse Start Header MAK NoSAK Device Address 2 NoMAK NoSAK SCIO

11.0 DEVICE MODES

11.1 Device Idle

Slave devices must feature a Idle mode during which all serial data is ignored until a standby pulse occurs. Idle mode will be entered, without generation of a SAK, upon the following conditions:

  • Invalid Device Address
  • Invalid command byte
  • Missed edge transition (except when entering Hold)
  • Reception of a NoMAK before completing a command sequence, except following a device address

An invalid start header cannot be detected, but will indirectly also cause the device to enter Idle mode by preventing the slave from synchronizing properly with the master. If the slave is not synchronized with the master, an edge transition will be missed, thus causing the device to enter Idle mode.

11.2 Device Standby

Slave devices must feature a Standby mode during which the device is waiting to begin a new command. After observing the Tss time period, a high-to-low transition on SCIO will exit Standby and prepare the device for reception of the start header.

Standby mode will be entered upon the following conditions:

- A NoMAK followed by a SAK (i.e., valid termination of a command)

- Reception of a standby pulse

Standby mode can be used to provide a low-power mode of operation. In order to maximize power efficiency, such a mode should be interrupted only at the beginning of the low pulse of the start header.

11.3 Device Hold

Hold mode allows the master to suspend communication in order to perform other tasks, such as servicing interrupts, etc. In order to initiate the Hold sequence, the master must bring SCIO low at the beginning of the next MAK bit period for a minimum time of THLD and continue to keep it low while in hold.

To bring the slave out of hold, the master continues the current operation, starting with an Acknowledge sequence as described in Section 5.1 "Acknowledge Sequence", transmitting a MAK and checking for the slave response. See Figure 11-1 for more details. The Acknowledge sequence need not be in phase with previously transmitted bits, thereby allowing the Hold sequence to last for any length of time greater than THLD. The bit period must remain constant throughout the hold sequence.

Note that if SCIO is held low for a full bit period (i.e., if a middle edge does not occur) at any point other than a MAK, the slave must consider this an error condition, terminate the operation and enter Idle mode.

A Hold sequence must be terminated by issuing a MAK. If a NoMAK is issued, there is no method for detecting this, and the operation will be undefined.

Implementation of the Hold feature is optional. Without it, a device may still conform to the UNI/O bus specifications.

FIGURE 11-1: HOLD SEQUENCE
Microchip 11AA02E48 - Device Hold - 1

flowchart
graph LR
    A["SCIO"] --> B["Data Byte n"]
    B --> C["Hold Initiated"]
    C --> D["Hold In Progress"]
    D --> E["MAK/SAK"]
    E --> F["Data Byte n+1"]
    F --> G["MAK/SAK"]
    G --> H["THLD"]
    H --> I["Data Byte n"]

12.0 ELECTRICAL SPECIFICATIONS

TABLE 12-1: I/O STRUCTURE DC CHARACTERISTICS

DC CHARACTERISTICS
Param. No.Sym. ChCharacteristic Min. Max.Units TestConditions
D1VIH Highhigh-level input voltage.7 VccVcc+1V
D2VIL Lowlow-level input voltage-0.30.3*VccVVcc ≥ 2.5V
-0.30.2*VccVcc < 2.5V
D3 VHYSHysteresis of Schmitt Trigger inputs (SCIO)0.05*VccVVcc ≥ 2.5V
D4VOHHigh-level output voltageVcc -0.5VIoH = -300 μA, Vcc ≥ 2.5V
Vcc -0.5VIoH = -200 μA, Vcc < 2.5V
D5VOLLow-level output voltage0.4VIol = 300 μA, Vcc ≥ 2.5V
0.4VIol = 200 μA, Vcc < 2.5V
D6IOSlave output current limit (Note 1)±4mAVcc ≥ 2.5V
±3mAVcc < 2.5V
D7ILIInput leakage current (SCIO)±10μAVIN = Vss or Vcc
D8CINTDevice Capacitance (SCIO)7pF
D9CBBus Capacitance100pF
Note 1: The slave SCIO output driver impedance must vary to ensure Io is not exceeded.

TABLE 12-2: AC CHARACTERISTICS

AC CHARACTERISTICS
Param. No.Sym.CharacteristicMin.Max.UnitsConditions
1F BITSerial Bit Frequency10100kHz
2TEBit period10100μs
3TIJITInput edge jitter tolerance±0.08UI(Note 1)
4F DRIFTSerial bit frequency drift rate tolerance±0.75%Per byte
5F DEVSerial bit frequency drift limit±5%Per command
6TRSCIO input rise time100ns
7TFSCIO input fall time100ns
8TSTBYStandby pulse time600μs
9TSSStart header setup time10μs
10THDRStart header low pulse time5μs
11TSPInput filter spike suppression (SCIO)50ns
12THLDHold time1*TEμs
Note 1: A Unit Interval (UI) is equal to 1-bit period (TE) at the current bus frequency.

FIGURE 12-1: BUS TIMING - START HEADER
Microchip 11AA02E48 - ELECTRICAL SPECIFICATIONS - 1

text_image SCIO 9 10 2 Data '0' Data '1' Data '0' Data '1' Data '0' Data '1' Data '0' Data '1' MAK bit NoSAK bit

FIGURE 12-2: BUS TIMING – DATA
Microchip 11AA02E48 - ELECTRICAL SPECIFICATIONS - 2

text_image SCIO 2 11 6 7 Data '0' Data' 1' Data' 1' Data' 0'

FIGURE 12-3: BUS TIMING – STANDBY PULSE
Microchip 11AA02E48 - ELECTRICAL SPECIFICATIONS - 3

flowchart
graph LR
    A["SCIO"] --> B["POR"]
    B --> C["Release from POR"]
    C --> D["Standby Mode"]
    style A fill:#f9f,stroke:#333
    style D fill:#ccf,stroke:#333
    note right of C: 8

FIGURE 12-4: BUS TIMING – JITTER
Microchip 11AA02E48 - ELECTRICAL SPECIFICATIONS - 4

FIGURE 12-5: HOLD SEQUENCE
Microchip 11AA02E48 - ELECTRICAL SPECIFICATIONS - 5

flowchart
graph LR
    A["Data Byte n"] --> B["Hold Initiated"]
    B --> C["Hold In Progress"]
    C --> D["MAK SAK"]
    D --> E["Data Byte n+1"]
    E --> F["MAK SAK"]
    G["7 6 5 4 3 2 1 0"] --> H["12"]
    I["SCIO"] --> J["7 6 5 4 3 2 1 0"]

NOTES:

NOTES:

WORLDWIDE SALES AND SERVICE

AMERICAS

Corporate Office

2355 West Chandler Blvd.

Chandler, AZ 85224-6199

Tel: 480-792-7200

Fax: 480-792-7277

Technical Support:

http://support.microchip.com

Web Address:

www.microchip.com

Atlanta

Duluth, GA

Tel: 678-957-9614

Fax: 678-957-1455

Boston

Westborough, MA

Tel: 774-760-0087

Fax: 774-760-0088

Chicago

Itasca, IL

Tel: 630-285-0071

Fax: 630-285-0075

Cleveland

Independence, OH

Tel: 216-447-0464

Fax: 216-447-0643

Dallas

Addison, TX

Tel: 972-818-7423

Fax: 972-818-2924

Detroit

Farmington Hills, MI

Tel: 248-538-2250

Fax: 248-538-2260

Kokomo

Kokomo, IN

Tel: 765-864-8360

Fax: 765-864-8387

Los Angeles

Mission Viejo, CA

Tel: 949-462-9523

Fax: 949-462-9608

Santa Clara

Santa Clara, CA

Tel: 408-961-6444

Fax: 408-961-6445

Toronto

Mississauga, Ontario,

Canada

Tel: 905-673-0699

Fax: 905-673-6509

ASIA/PACIFIC

Asia Pacific Office

Suites 3707-14, 37th Floor

Tower 6. The Gateway

Harbour City, Kowloon

Hong Kong

Tel: 852-2401-1200

Fax: 852-2401-3431

Australia - Sydney

Tel: 61-2-9868-6733

Fax: 61-2-9868-6755

China - Beijing

Tel: 86-10-8528-2100

Fax: 86-10-8528-2104

China - Chengdu

Tel: 86-28-8665-5511

Fax: 86-28-8665-7889

China - Hong Kong SAR

Tel: 852-2401-1200

Fax: 852-2401-3431

China - Nanjing

Tel: 86-25-8473-2460

Fax: 86-25-8473-2470

China - Qingdao

Tel: 86-532-8502-7355

Fax: 86-532-8502-7205

China - Shanghai

Tel: 86-21-5407-5533

Fax: 86-21-5407-5066

China - Shenyang

Tel: 86-24-2334-2829

Fax: 86-24-2334-2393

China - Shenzhen

Tel: 86-755-8203-2660

Fax: 86-755-8203-1760

China - Wuhan

Tel: 86-27-5980-5300

Fax: 86-27-5980-5118

China - Xiamen

Tel: 86-592-2388138

Fax: 86-592-2388130

China - Xian

Tel: 86-29-8833-7252

Fax: 86-29-8833-7256

China - Zhuhai

Tel: 86-756-3210040

Fax: 86-756-3210049

ASIA/PACIFIC

India - Bangalore

Tel: 91-80-3090-4444

Fax: 91-80-3090-4080

India - New Delhi

Tel: 91-11-4160-8631

Fax: 91-11-4160-8632

India - Pune

Tel: 91-20-2566-1512

Fax: 91-20-2566-1513

Japan - Yokohama

Tel: 81-45-471-6166

Fax: 81-45-471-6122

Korea - Daegu

Tel: 82-53-744-4301

Fax: 82-53-744-4302

Korea - Seoul

Tel: 82-2-554-7200

Fax: 82-2-558-5932 or

82-2-558-5934

Malaysia - Kuala Lumpur

Tel: 60-3-6201-9857

Fax: 60-3-6201-9859

Malaysia - Penang

Tel: 60-4-227-8870

Fax: 60-4-227-4068

Philippines - Manila

Tel: 63-2-634-9065

Fax: 63-2-634-9069

Singapore

Tel: 65-6334-8870

Fax: 65-6334-8850

Taiwan - Hsin Chu

Tel: 886-3-6578-300

Fax: 886-3-6578-370

Taiwan - Kaohsiung

Tel: 886-7-536-4818

Fax: 886-7-536-4803

Taiwan - Taipei

Tel: 886-2-2500-6610

Fax: 886-2-2508-0102

Thailand - Bangkok

Tel: 66-2-694-1351

Fax: 66-2-694-1350

EUROPE

Austria - Wels

Tel: 43-7242-2244-39

Fax: 43-7242-2244-393

Denmark - Copenhagen

Tel: 45-4450-2828

Fax: 45-4485-2829

France - Paris

Tel: 33-1-69-53-63-20

Fax: 33-1-69-30-90-79

Germany - Munich

Tel: 49-89-627-144-0

Fax: 49-89-627-144-44

Italy - Milan

Tel: 39-0331-742611

Fax: 39-0331-466781

Netherlands - Drunen

Tel: 31-416-690399

Fax: 31-416-690340

Spain - Madrid

Tel: 34-91-708-08-90

Fax: 34-91-708-08-91

UK - Wokingham

Tel: 44-118-921-5869

Fax: 44-118-921-5820

Table of contents Click a title to access it
Manual assistant
Powered by Anthropic
Waiting for your message
Product information

Brand : Microchip

Model : 11AA02E48

Category : Spécification de bus