Multi Source Translation Content

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Multi Source Translation Content

Discussions

Sort by:
How do I convert the voltage of digital signals? (Japanese blog) 0. Table of Contents 0. Table of Contents 1. What is a voltage level translator? 2. Digital signals 2.1 Various Digital Signals 2.2 CMOS and TTL: Logic level signals using simple voltage HIGH and LOW 2.3 Input/Output Voltage Specification: VOH/VOL and VIH/VIL 2.3.1 Output voltage specifications: VOH and VOL 2.3.2 Input voltage specifications: VIH and VIL 2.3.3 The relationship between VOH/VOL and VIH/VIL 3. Basic voltage level conversion method: One-way signal conversion 3.1 Examples where conversion is not necessary even if the chip's power supply voltage is different. Column: How are the TTL values VIH(min) = 2.0V and VIL(max) = 0.8V determined? 3.2 Examples requiring conversion 3.2.1 Conversion using open-drain output 3.2.2 Conversion using standard logic (general-purpose logic) chips 4. Conversion of bidirectional signals requiring automatic direction switching. 4.1 Bidirectional conversion using a single MOS transistor 4.2 Bidirectional conversion using dedicated equipment 4.2.1 I²C signal voltage conversion chip 4.2.2 High-speed bidirectional open-drain signal-to-voltage conversion chip 4.2.3 Bidirectional push-pull signal-to-voltage converter chip 4.2.4 I3C signal voltage converter chip 4.2.5 Buffer-based conversion 5. Summary 5.1 Comparison of methods/part numbers introduced in the blog 6. Reference materials 1. What is a voltage level translator? When connecting digital circuits, you can simply connect the signal lines directly... That's not the case; if the " logic level voltage " doesn't match, it may not work, become unstable, or in the worst case, damage the chip. That's where a voltage level translator (also called a voltage level shifter) comes in handy. A voltage level translator is a circuit that allows signals to be exchanged between digital circuits with different power supply voltages. For example, it is needed in the following cases: 3.3V microcontroller ↔︎ 5V sensor connection Connecting a 1.8V FPGA to 3.3V peripheral devices Figure 1: Differences in signal voltage   This blog explains the differences in voltage levels between various types of logic circuits used in digital circuits (*TTL, *LVTTL, *CMOS), and the important meanings of VOH / VOL / VIH / VIL for determining them. Furthermore, it explains which voltage level translator to choose from among various conversion methods. Furthermore, this blog will look at specific examples of voltage level translators that automatically detect and convert the direction of a signal . NXP also offers voltage level translators for SD cards/SIM cards and application-specific translators such as GTL↔︎TTL level conversion, but this blog will focus on products targeted at general-purpose or serial bus applications. *TTL (Transistor-Transistor Logic) *LVTTL (Low Voltage Transistor-Transistor Logic) *CMOS (Complementary Metal-Oxide-Semiconductor) *GTL (Gunning Transceiver Logic) 2. Digital signals   2.1 Various Digital Signals So-called "digital signals" are electrical representations of logic levels 1 and 0. Historically, there have been various circuit design methods for handling these logic levels 1 and 0. These include methods that represent logic levels with simple voltage HIGH and LOW, and methods that use voltage differences to represent HIGH/LOW. TTL simply represents HIGH/LOW as 5V/0V. Further reducing the voltage of TTL to 3.3V/0V, such as LVTTL , are systems where the voltage level is determined based on a bipolar transistor circuit. Similarly, ECL (Electronic Classification) uses bipolar transistors but employs a negative power supply to implement low-amplitude, differential operation logic levels, resulting in higher speeds. GTL (Global Transistor Lapping) uses a reference voltage to transmit HIGH/LOW signals with low-amplitude single-ended signals, etc. Furthermore, even with a simple HIGH/LOW representation, the 4000 series of CMOS general-purpose logic, developed with the aim of reducing power consumption, allowed the use of 3V to 18V as the HIGH level. https://en.wikipedia.org/wiki/Logic_family This blog will explain how to handle voltage levels in TTL (LVTTL) and CMOS, which represent logic using simple HIGH and LOW voltages , among the various logic levels mentioned above. Other signal conversions utilize dedicated chips and are therefore not covered here. In addition, in recent years, semiconductor technology has become smaller, faster, and more power-efficient, and the voltage used for power supplies has been decreasing. For this reason, voltage level translators, which bridge the signal voltage difference, have become particularly important. Figure 2: Signal waveform - Voltage levels (HIGH/LOW) represent logic levels.   2.2 CMOS and TTL: Logic level signals using simple voltage HIGH and LOW In digital circuits, simple voltage-based logic level signals using HIGH and LOW typically use the power supply voltage for HIGH and 0V for LOW. As long as the HIGH/LOW voltage levels are the same, the signals can be transmitted even if the power supply voltages are different. For example, TTL (LVTTL) interprets an input signal as HIGH if it is 2.0V or higher, and LOW if it is 0.8V or lower. Because of this convention, the HIGH/LOW voltage levels of TTL signals do not change even if the power supply voltages are different. On the other hand, CMOS defines HIGH/LOW based on half the power supply voltage. Therefore, the HIGH/LOW voltage levels of CMOS change when the power supply voltage is different. Figure 3: Input signal voltage specification   2.3 Input/Output Voltage Specification: V OH / V OL and V IH / V IL In digital circuits, the voltages output as HIGH and LOW , and the voltage used to determine whether an input signal is HIGH or LOW, are specified. These are defined in the specifications of each chip used, so you need to check the datasheet. V OH : High-level output voltage VOL : Low-level output voltage V IH : High-level input voltage V IL : Low-level input voltage 2.3.1 Output voltage specifications: V OH and V OL When considering the output, you must take into account the current required when outputting HIGH/LOW signals. The current will increase or decrease depending on the load. The voltage that can be guaranteed at the maximum outflow current with HIGH output is called VOH (min) , and the voltage that can be guaranteed at the maximum inflow current with LOW output is called VOL (max) . V OH (min) is the voltage output when the upper transistor in the circuit's output stage is turned ON. This transistor has a resistance called "ON resistance". When a large current flows out of a transistor, a voltage is generated equal to "the transistor's resistance x the current flowing through it". This causes the output voltage to drop below the power supply voltage by that amount, resulting in a low VOH . Therefore, VOH (min) is the minimum voltage that can be guaranteed when the maximum expected outflow current is reached. Figure 4: Digital signal output circuit (push-pull)   Figure 5: HIGH output voltage varies depending on the load.   VOL is the opposite. When the lower transistor in the output stage of the circuit is turned ON, if the incoming current is large, the output will rise above 0V due to the voltage generated by the ON resistance of the transistor, as described above. Taking this into consideration, VOL (max) is the maximum voltage that can be guaranteed when the maximum incoming current is anticipated. Figure 6: LOW output voltage also changes depending on the load.   2.3.2 Input voltage specifications: V IH and V IL The input has voltage levels to determine HIGH and LOW : V IH (min) and V IL (max) . If the voltage is above V IH (min), it is judged as HIGH; if it is below V IL (max), it is judged as LOW. In CMOS inputs, half the power supply voltage serves as the reference for HIGH and LOW, but this is not directly used as V IH (min) and V IL (max). This is because the threshold can fluctuate due to variations between chips. Also, to mitigate glitches caused by noise on slow-rising signals appearing in the output, it is common practice to incorporate hysteresis into the input. For these reasons, V IH (min) and V IL (max) are defined with a certain voltage difference. 2.3.3 The relationship between VOH / VOL and VIH / VIL For normal signal exchange to occur, the relationship between the output and input must satisfy the following equation. HIGH level: V OH (min) > V IH (min) LOW level: VOL (max) < VIIL (max) If this relationship is maintained, the output circuit can correctly transmit HIGH/LOW signals to the next input circuit. Furthermore, the voltage difference between them, "V OH (min) - V IH (min)" and "V IL (max) - V OL (max)," becomes the " noise margin " and serves as a guideline for maintaining high noise immunity. Figure 7: V OH (min) / V OL (max) and V IH (min) / V IL (max) 3. Basic voltage level conversion method: One-way signal conversion   3.1 Examples where conversion is not necessary even if the chip's power supply voltage is different. Voltage level conversion is generally not necessary when the relationships "V OH (min) > V IH (min)" and "V OL (max) < V IL (max)" hold true. For example, although TTL and LVTTL use different power supply voltages for their respective chips, the input and output voltage specifications are the same . In both TTL (5V) and LVTTL (3.3V), V OH (min) is 2.4V and V OL (max) is 0.4V. Since V IH (min)/V IL (max) are also 2.0V/0.8V in both cases, they can be connected to each other without any problems. However, caution is required if the output voltage is higher than the power supply voltage of the input chip. If the output chip uses a 5V power supply and the input uses a 3.3V power supply, the input must support " 5V tolerant input ". A 5V tolerant input is an input that can operate without problems even when a 5V HIGH signal is connected to the input of a chip that operates on a 3.3V power supply voltage. While typical chip inputs have ESD protection circuits to protect against static electricity, if this ESD protection circuit is configured as shown in the following diagram, a 5V input can cause current to flow back from the input to the 3.3V power supply, potentially damaging the chip. A 5V tolerant input is designed to prevent such problems. Tolerant inputs do not lack ESD protection; they incorporate an ESD protection circuit that is structured to handle signals higher than the power supply voltage without causing problems. ESD protection diodes like the one shown in Figure 7 can also cause problems when the power to the input chip is turned off. In systems where the power to each chip is controlled individually, the output signal may feed back into the power supply even when the input chip is off, causing the input chip to operate. Figure 7: ESD protection diode - non-tolerant input Column: How are the V IH (min) = 2.0V and V IL (max) = 0.8V determined for TTL? While the input threshold of CMOS is based on the midpoint of the power supply voltage (VCC/2), the V IH (min)/V IL (max) of TTL is 2.0V/0.8V, which is not a particularly neat ratio with respect to the power supply voltage (5V). This is related to the fact that the input stage of TTL is composed of bipolar transistors. Example of the internal circuit of a standard TTL logic IC: SN7400 (2-input NAND). This information was included in the "Latest General-Purpose Logic Device Specifications Table 1988" (CQ Publishing). A typical TTL gate's input stage consists of a multiple emitter input transistor and a subsequent phase splitter transistor, both connected in series. The "switching threshold," at which the gate actually begins to react, is determined by the forward voltage of the PN junctions in these two stages. Since the forward voltage of a single silicon PN junction is approximately 0.6 to 0.7V, the combined forward voltage of the two stages is approximately 1.3 to 1.5V, which is the effective switching threshold for a TTL gate. However, this value of approximately 1.4V is merely a "typical value," and it will fluctuate from lot to lot and from condition to condition due to individual differences and variations in temperature. Therefore, the specified values V IH (min) and V IL (max) on the datasheet are defined as guaranteed values, with sufficient margins above and below this typical value of approximately 1.4V, meaning that "if it drops to this level, it can be reliably determined to be LOW (V IL (max) = 0.8V)" and "if it rises to this level, it can be reliably determined to be HIGH (V IH (min) = 2.0V)." Furthermore, this value is not determined in isolation, but is designed taking into account the relationship between VOH and VOL , as explained in Section 2.3.3. In standard TTL, due to the output stage configuration, the HIGH output is not the power supply voltage, but a slightly lower voltage (lower by the voltage generated by the 130Ω resistor, transistor, and diode in the circuit example above) (VOH(min)=2.4V). When this is combined with VOL(max)=0.4V, HIGH noise margin: V OH (min) − V IH (min) = 2.4 − 2.0 = 0.4V Low-side noise margin: V IL (max) − V OL (max) = 0.8 − 0.4 = 0.4V As shown, it is designed to ensure a noise margin of 0.4V symmetrically above and below. In other words, the 2.0V/0.8V figures for TTL, which may seem "odd" relative to the power supply voltage, are actually reasonable values derived from two requirements: the physical reality of the bipolar transistor junction voltage and the noise margin design. This image shows an SN7420 (4-input NAND) with three input pins set to HIGH and one pin receiving a 100kHz triangular wave (ch1). The output under no load (ch2) is less than 4V when HIGH (Vcc=5V). The circuit introduced in this column is an example of a standard TTL without a designation (such as 74 LS 00 or 74 HC 00, without LS/HC prefixes; sometimes called "vanilla TTL" in English), but the reason why the V IH /V IL specifications are the same (bipolar junction characteristics of the input stage) is common to other TTL families such as the 74LS.   3.2 Examples requiring conversion   While TTL and LVTTL connections are possible because the voltage levels are aligned, mismatches in logic levels often occur when connecting CMOS chips with different power supply voltages, or when connecting a CMOS chip to a TTL chip. This occurs when the aforementioned relationship "V OH (min) > V IH (min)" and "V OL (max) < V IL (max)" does not hold true, or when the difference becomes too small, resulting in insufficient noise margin. A voltage level translator solves this problem. Figure 9: Example of mismatched logic levels (1): Insufficient HIGH voltage input   Figure 10: Example of mismatched logic levels (2): Insufficient LOW voltage is input.     3.2.1 Conversion using open-drain output There are ways to easily adjust voltage levels without using a voltage level conversion chip. If the signal direction is fixed from the output chip to the input chip and does not switch, then this method involves making the HIGH output an open-drain output to match the input voltage. An open-drain output is a configuration in which the upper transistor of the output stage of a digital circuit is absent, and the HIGH voltage is obtained by a pull-up resistor connected to the power supply voltage of the input chip . Figure 11: Digital signal output circuit (open drain)   Open drains are a simple and inexpensive method, but there are a few things to keep in mind . First, the output side must be capable of open-drain output. Many microcontrollers' GPIO pins can provide this type of output through configuration. First, the output side must be capable of open-drain output. Many microcontrollers' GPIO pins can provide this output through configuration. If the output is fixed to push-pull output and cannot be configured for open-drain output, an external transistor or similar device will be needed to convert it to open-drain output. Furthermore, the selection of pull-up resistors is also important. A pull-up resistor is necessary to obtain a HIGH voltage, but if the resistance value is too small, the current flowing when the output is LOW will be large (similar to a heavy load), which will increase power consumption and lead to an increase in VOL . Conversely, if the value is too large, it will be affected by the capacitance of the wiring and pins, causing the rise time from LOW to HIGH to be slow, resulting in a decrease in communication speed. 3.2.2 Conversion using standard logic (general-purpose logic) chips For simple voltage level conversion, you can also use standard logic. For example, Nexperia's 74AVCH4T245 is a general-purpose CMOS logic chip that can perform 4-bit bidirectional level conversion. This chip can convert signals from 0.8V to 3.6V, and the signal direction can be switched using the DIR pin. The signal speed depends on the voltage being converted, but it can support speeds of approximately 100M to 380Mbps. Figure 12: Example of standard logic - 74AVCH4T245 This chip enables high-speed bidirectional voltage conversion of signals, but the direction must be controlled by an external signal. While such control is possible with signals like READ/WRITE on a parallel bus, it is difficult to apply to communications like serial buses where the communication direction switches depending on the protocol. Figure 13: Example of standard logic. The signal direction must be specified externally. 4. Conversion of bidirectional signals requiring automatic direction switching. The "open-drain output" and "voltage conversion methods using standard logic chips" introduced so far mainly perform conversion in only one direction, or require switching of direction by an external signal. Communication methods like I²C and I3C , where the direction of the signal changes dynamically, require " bidirectional voltage level conversion " that automatically detects and switches the direction. Controlling the direction of such signals externally is difficult, and it is challenging to implement this with the buffer chips mentioned above. Furthermore, since I²C is an open-drain signal, it is not possible to connect standard open-drain logic buffers in opposite directions. Figure 14 shows an example of this, where open-drain buffers are connected in opposite directions. There is no problem when both sides of the buffer are HIGH, but once one of them goes LOW, the buffers will keep pulling the other input LOW and will not be able to return to HIGH. Figure 14: A typical open-drain buffer cannot automatically switch between bidirectional communication.   4.1 Bidirectional conversion using a single MOS transistor   Until now, simple circuits have sometimes been used for I²C signal-to-voltage conversion. We will present the simplest method, using a MOS transistor, as an example. Figure 15: Example of conversion using a MOS transistor   Figure 15 is taken from the I²C specification version 2.1 (2000) and shows an example where two MOS transistors (TR1, TR2) are used to convert 3.3V and 5V signals, respectively. Although such a simple conversion example using only transistors has been removed from the current I²C specification due to the problems described later, it is included here to understand the principle . The I²C signal lines, called SDA and SCL, are both open-drain bidirectional signals. Pull-up resistors are connected to the 3.3V and 5V sides, respectively. In this circuit, when the 3.3V and 5V signals are HIGH, the gate (g) and source (s) of this transistor are at the same potential, so the source (s) and drain (d) are OFF, and the connection between them is broken. When 3.3V changes to LOW in this state, the 3.3V side transistor (between s and d) turns ON , and the 5V side signal also goes LOW . When the 3.3V side changes to HIGH and the 5V side changes to LOW , the parasitic diode (body diode) connecting the 3.3V side to the 5V side first turns ON . When the diode turns ON, the source(s) voltage drops . As a result, the transistor turns ON , and the signal on the 3.3V side also becomes LOW . While this very simple mechanism using a transistor as a switch allows for voltage level conversion, there are problems. Transistor variations affect the threshold voltage for signal conversion. Furthermore, with the increasing need to handle lower signal voltages, for example, at signal voltages of around 1V, such a circuit cannot operate because it cannot obtain a sufficient gate-to-source voltage (Vgs). Addendum: The same circuit as in Figure 15 is still publicly available as application note AN10441 "Level shifting techniques in I²C-bus design" from Nexperia , a company formed when the semiconductor discrete/logic products business was spun off from NXP. The application note was first published in 2007 (Rev.01) separately from the I²C specification, and was revised under the Nexperia brand in 2020 (Rev.2). 4.2 Bidirectional conversion using dedicated equipment   By using a dedicated voltage level translator IC , voltage level conversion for bidirectional communication buses such as I²C and I3C can be easily performed. 4.2.1 I²C signal voltage conversion chip The PCA9306 and NVT20xx series ( NVT2001/02 , NVT2003/06 , NVT2008/10 ) are voltage level translators specifically designed for bidirectional signal conversion. These chips can handle multiple signal lines (multi-bit signal lines) simultaneously. While they are designated as I²C signal voltage conversion chips, they can also be used for other purposes (such as SPI and other push-pull signals) if the signal specifications match . The PCA9306 and NVT20xx series share the same internal structure, and the pull-up resistor only needs to be connected to the higher voltage side if the voltage difference to be converted is 1V or more . Figure 16 shows its internal structure and connection to external chips (excerpted from Fig. 2 of Application Note AN11127 : "Bidirectional voltage level translators NVT20xx and PCA9306" ). This chip contains the number of signal lines (bits) + 1 MOS transistors. Each transistor has a structure in which the source and drain are interchangeable. The transistors in the signal transmission path are called pass transistors , and the remaining one is called a reference transistor . Figure 16: NVT20xx (PCA9306) - Diagram illustrating chip operation.   Looking at the circuit, the gate and drain of the reference transistor are shorted and connected to the higher voltage power supply via a 200kΩ resistor. The remaining terminal of the reference transistor, the source, is connected to the lower voltage power supply. With this connection, the reference transistor acts as a single diode , and its gate voltage is one diode higher than the lower voltage power supply . The remaining pass transistor has its drain connected to the high-voltage signal line and a 1kΩ pull-up resistor, its source connected to the low-voltage signal line, and its gate connected to the gate of the reference transistor. When both the high and low signals of the pass transistor are HIGH, the high-voltage side becomes the voltage pulled up by the 1kΩ resistor . A pass transistor forms a circuit known as a "source follower." The terminal on the lower voltage side (source terminal) has a voltage that is lower than the voltage applied to the gate by the amount of Vgs required to turn the transistor ON . In other words, it has the same voltage as the low-voltage power supply. The transistor is in a semi-ON state (operating in the linear region), neither ON nor OFF. In this state, when either the high or low signal becomes LOW , the voltage difference between the gate and the signal terminal causes the transistor to turn ON (operating in the saturation region where it is fully ON), and the other terminal also becomes LOW . The signal speed that this series can handle is affected by the pull-up resistor and the capacitance of the signal line. The datasheet states that the PCA9306 can handle up to 2MHz. The NVT20xx series can handle signal speeds up to 33MHz with a 192Ω pull-up resistor and a capacitance of 50pF. For signals around 1MHz, it will work without problems even if you don't worry too much about the pull-up resistor and capacitance (assuming it's within the range typically used for I²C). However, when using this chip to handle higher-speed signals in a push-pull configuration, a thorough understanding of its characteristics and careful component selection are necessary. Details of the operation of this type of voltage level translator are described in the article " The Internals and Operation of the PCA9306 ". 4.2.2 High-speed bidirectional open-drain signal-to-voltage conversion chip We introduce the NTS030x series ( NTS0302JK , NTS0304E ) as high-speed bidirectional open-drain signal conversion chips. This chip can perform 2-bit or 4-bit bidirectional signal conversion and can handle signals up to 2Mbps (1MHz) for open-drain signals and 20Mbps (10MHz) for push-pull signals.   Figure 17: NTS030x - Internal Chip Block Diagram   Figure 17 shows the internal structure of one signal bit in the NTS030x. In the diagram, transistor T3 is a pass-through transistor , and a gate terminal bias voltage is applied to it, so it turns ON when either the signal labeled A or B goes LOW. When both A and B are HIGH, T3 turns OFF, and since A and B are connected to their respective power supplies with relatively large pull-up resistors (10kΩ), they will have their respective voltages. This chip has T3, as well as T1 and T2 . These T1 and T2 are used for a function called " edge rate accelerator ." We will focus on one of them, T1, and explain its operation. T1 is placed on the A side, with its source terminal connected to the A signal and its drain terminal connected to the A side power supply. The gate terminal is connected to the block labeled "ONE-SHOT AND SLEW RATE CONTROL" that controls it. The "ONE-SHOT AND SLEW RATE CONTROL" block is connected to the B signal on the opposite side and detects the change from LOW to HIGH in the B signal . When this is detected, T1 is temporarily turned ON, bypassing the 10kΩ pull-up resistor and allowing current to flow, thereby accelerating the change from LOW to HIGH in the A signal . By speeding up the rise time of the signal in this way, it becomes possible to handle faster signals. Incidentally, the slew rate when T1 is turned ON is controlled, taking into consideration the suppression of ringing caused by a sudden increase in current. The other T2 uses the same mechanism but in the reverse direction, and is applied to the B-side signal as well. The NTS series has another user-friendly feature . In the case of the MOS transistors and PCA9306/NVT20xx described so far, there was a problem in that if one power supply was turned off, the signal of the other would be set to LOW. To solve this problem, the NTS030x operates so that when both power supplies are not ON, the signal pins are set to a high impedance state to prevent them from affecting each other . By using this function, it becomes possible to partially control the ON/OFF state of the system's power supply . The NTS010x series ( NTS0102 , NTS0104 ) is equivalent to the NTS030x series, but lacks slew rate control functionality to handle higher-speed signals. An evaluation board, NTS0304EUK-ARD, is available for the NTS0304E to allow for quick and simple operational verification. For an overview of the NTS0304EUK-ARD board and how to operate it, please refer to this video , "How to operate the NTS0304EUK-ARD" . 4.2.3 Bidirectional push-pull signal-to-voltage converter chip Furthermore, for use with push-pull signals only, there is the NTB010x series ( NTB0102 , NTB0104 ), which offers a faster option. When stable in a HIGH or LOW state, the signal is driven through a 4kΩ resistor. Similar to the NTS030x series, it has a one-shot function on both the HIGH and LOW sides, and has a mechanism that uses this to change the signal on the opposite side when there is a change in the signal at either terminal. This mechanism enables signal-to-voltage conversion at speeds of 70-80 Mbps while also having an automatic signal direction detection function.   Figure 17: NTB010x - Internal Chip Block Diagram 4.2.4 I3C signal voltage converter chip I3C has a specification that switches between open-drain and push-pull communication modes . In open-drain mode, it is compatible with I²C and operates at frequencies up to 4MHz . In push-pull mode, a 12.5MHz clock is used. Since the signal voltage is usually in the range of 1V to 3.3V, a voltage level translator that operates according to the signal specifications is required when there is a voltage difference. Figure 18 shows the internal block diagram of one bit of the P3A1604 . As shown in the figure, this chip incorporates a mechanism to accelerate not only the LOW→HIGH change but also the HIGH→LOW change, as well as a pull-up resistor that can be switched ON/OFF.   Figure 18: P3A1604 - Chip internal block diagram The P3A1604 is a 4-bit I3C voltage level translator. A 2-bit version, the P3A9606 , is also available.   4.2.5 Buffer-based conversion Another method for converting bidirectional signals is to use a dedicated buffer. The primary purpose of a buffer is to enhance driving capability and separate the capacitance of connected signal lines, but there are also products that support voltage conversion. As explained in this blog, simple buffers cannot mutually buffer bidirectional open-drain signals. Therefore, various buffer products with special features for bidirectional open-drain signals are available. I will explain more about buffers on a later occasion. 5. Summary Voltage level translators are essential components for safely and reliably exchanging signals between digital circuits with different power supply voltages. Understanding the definitions of logic levels such as TTL, LVTTL, and CMOS, as well as the relationships between VOH/VOL/VIH/VIL, allows you to select the appropriate connection and conversion method. For unidirectional conversion, open-drain outputs or standard logic ICs can be used, while for bidirectional conversion, MOS transistors or dedicated ICs (such as the PCA9306/NVT/NTS/NTB/P3A series) can be used. Voltage level translators with automatic signal direction detection capabilities are particularly useful for buses requiring bidirectional communication, such as I²C and I3C. Furthermore, recent advancements in semiconductor technology have led to lower voltages and higher speeds, requiring more precise voltage level control. While there are many methods and options for voltage level conversion, it is important to select the optimal method and components according to the application, taking into account signal specifications, speed, and system power management. 5.1 Comparison of methods/part numbers introduced in the blog Method/Part Number Purpose Number of bits Direction change Open wiring compatible Low voltage side [V] High voltage side [V] Bitrate [bps] Conversion with open-drain output General purpose 1 unidirectional - - - - Standard logic (e.g., 74AVCH4T245) General purpose (parallel bus, etc.) 4 + 4 External control Not supported 0.8 ~ 3.6 0.8 ~ 3.6 100M ~ 380M Bidirectional conversion using a single MOS transistor I²C, General Purpose 1 automatic correspondence Depending on the transistor specifications ~ 1M PCA9306 I²C, General Purpose 2 automatic correspondence 1.0 ~ 3.6 1.8 ~ 5.5 4M (2MHz, depending on conditions) NVT2001 I²C, General Purpose 1 automatic correspondence 1.0 ~ 3.6 1.8 ~ 5.5 4M (2MHz @ open drain), 66M (33MHz @ optimized conditions) NVT2002 I²C, General Purpose 2 automatic correspondence 1.0 ~ 3.6 1.8 ~ 5.5 4M (2MHz @ open drain), 66M (33MHz @ optimized conditions) NVT2003 I²C, General Purpose 3 automatic correspondence 1.0 ~ 3.6 1.8 ~ 5.5 4M (2MHz @ open drain), 66M (33MHz @ optimized conditions) NVT2006 I²C, General Purpose 6 automatic correspondence 1.0 ~ 3.6 1.8 ~ 5.5 4M (2MHz @ open drain), 66M (33MHz @ optimized conditions) NVT2008 I²C, General Purpose 8 automatic correspondence 1.0 ~ 3.6 1.8 ~ 5.5 4M (2MHz @ open drain), 66M (33MHz @ optimized conditions) NVT2010 I²C, General Purpose 10 automatic correspondence 1.0 ~ 3.6 1.8 ~ 5.5 4M (2MHz @ open drain), 66M (33MHz @ optimized conditions) NTS0302JK I²C, SPI, General Purpose 2 automatic correspondence 0.95 ~ 3.6 1.65 ~ 5.5 2M @ Open Drain, 20M @ Push Pull NTS0304E I²C, SPI, General Purpose 4 automatic correspondence 0.95 ~ 3.6 1.65 ~ 5.5 2M @ Open Drain, 20M @ Push Pull NTS0102 I²C, SPI, General Purpose 2 automatic correspondence 1.65 ~ 3.6 2.3 ~ 5.5 50M @ Push-Pull NTS0104 I²C, SPI, General Purpose 4 automatic correspondence 1.65 ~ 3.6 2.3 ~ 5.5 50M @ Push-Pull NTB0102 SPI, General Purpose 2 automatic Not supported 1.2 ~ 3.6 1.65 ~ 5.5 70M ~ 80M NTB0104 SPI, General Purpose 4 automatic Not supported 1.2 ~ 3.6 1.65 ~ 5.5 70M ~ 80M P3A9606 I3C, I²C, SPI, General Purpose 2 automatic correspondence 0.72 ~ 1.98 0.72 ~ 1.98 (12.5MHz) P3A1604 I3C, I²C, SPI, General Purpose 4 automatic correspondence 0.72 ~ 1.98 1.62 ~ 3.63 6.8M @ Open Drain, 40M @ Push Pull Table 1: Comparison of methods/part numbers introduced in the blog   6. Reference materials Product introduction page: Voltage Level Converter NXP System Management I2C, I3C, SPI Selector Guide I2C Bus Specifications and User Manual (Rev5.0) (Japanese version) I2C Bus Specifications and User Manual (Rev7.0) English version) NXP Community Blog: I3C Bus Overview – The Next Serial Bus Japanese Webinar Video: "The Basics of the Next-Generation Interface 'I3C' That You Need to Know Now" Qiita @teddokano: PCA9306's internals and operation Change history: 2025-08-28: First Edition 2025-08-28: Added information about NTS0304EUK-ARD and a link to the blog with the video. 2026-04-10: Correction of low voltage side [V] and high voltage side [V] in Table 1. 2026-06-20: Section 3.1 "Column: VIH (min) of TTL" Added "How are VIL(max) = 2.0V and VIL(max) = 0.8V determined?". Added internal circuit example of standard TTL logic IC: SN7400 (2-input NAND) and output waveform of SN7420. 2026-07-10: Added to Section 4.1 that the circuit in Figure 15 is also published as Nexperia application note AN10441. ========================= We are currently unable to respond to comments left in the "Comment" section of this post. We apologize for the inconvenience, but please refer to " Technical Questions to NXP - How to Contact Us( Japanese Blog) " when making an inquiry. (If you are already an NXP distributor or have a relationship with NXP, you may ask your representative directly.) This blog explains the differences in voltage levels between various types of logic circuits used in digital circuits (*TTL, *LVTTL, *CMOS), and the important meanings of VOH , VOL , VIH , and VIL for identifying them. Furthermore, we will explain which voltage level translator to choose from among the various conversion methods. We will take a closer look at the conversion of bidirectional open-drain signals , which requires special handling. Interface Introduction Japanese Blog
View full article
如何转换数字信号的电压?(日语博客) 0. 目录 0. 目录 1. 什么是电压电平转换器? 2. 数字信号 2.1 各种数字信号 2.2 CMOS 和 TTL:使用简单的电压高电平和低电平表示逻辑电平信号 2.3 输入/输出电压规格:VOH/VOL 和 VIH/VIL 2.3.1 输出电压规格:VOH 和 VOL 2.3.2 输入电压规格:VIH 和 VIL 2.3.3VOH/VOL 与 VIH/VIL 之间的关系 3. 基本电压电平转换方法:单向信号转换 3.1 即使芯片的电源电压不同,也不需要进行转换的示例。 列:TTL 值 VIH(min) = 2.0V 和 VIL(max) = 0.8V 是如何确定的? 3.2 需要转换的示例 3.2.1 利用开漏输出进行转换 3.2.2使用标准逻辑(通用逻辑)芯片进行转换 4. 需要自动方向切换的双向信号转换。 4.1 使用单个MOS晶体管的双向转换 4.2 使用专用设备的双向转换 4.2.1 I²C信号电压转换芯片 4.2.2 高速双向开漏信号电压转换芯片 4.2.3 双向推挽式信号电压转换器芯片 4.2.4I3C信号电压转换器芯片 4.2.5 基于缓冲区的转换 5. 总结 5.1 博客中介绍的方法/零件编号的比较 6. 参考资料 1. 什么是电压电平转换器? 连接数字电路时,可以直接连接信号线…… 事实并非如此;如果“逻辑电平电压”不匹配,它可能无法工作、变得不稳定,或者在最坏的情况下,损坏芯片。 这时,电压电平转换器(也称电压电平移位器)就派上用场了。 电压电平转换器是一种允许不同电源电压的数字电路之间交换信号的电路。 例如,在以下情况下需要用到它: 3.3V 微控制器 ↔ 5V 传感器连接 将 1.8V FPGA 连接到 3.3V 外围设备 图 1:信号电压差异   本博客解释了数字电路中使用的各种逻辑电路类型(*TTL、*LVTTL、*CMOS)之间的电压电平差异,以及 VOH / VOL / VIH / VIL 在确定这些差异时的重要含义。此外,它还解释了在各种转换方法中如何选择合适的电压电平转换器。 此外,本博客将探讨电压电平转换器的具体示例,这些转换器可以自动检测和转换信号的方向。 NXP 还提供用于 SD 卡/SIM 卡的电压电平转换器和特定应用转换器,例如 GTL↔TTL 电平转换,但本博客将重点介绍面向通用或串行总线应用的产品。 *TTL(晶体管-晶体管逻辑) *LVTTL(低压晶体管-晶体管逻辑) *CMOS(互补金属氧化物半导体) *GTL(Gunning Transceiver Logic) 2. 数字信号   2.1 各种数字信号 所谓的“数字信号”是逻辑电平 1 和 0 的电信号表示。历史上,处理逻辑电平 1 和 0 有多种电路设计方法。这些方法包括用简单的电压高低来表示逻辑电平的方法,以及使用电压差来表示高低电平的方法。 TTL简单地用 5V/0V 表示高电平/低电平。进一步将 TTL 电压降低到 3.3V/0V,例如LVTTL ,这类系统的电压电平是根据双极型晶体管电路确定的。 类似地,ECL(电子分类)也使用双极型晶体管,但采用负电源来实现低幅度差分逻辑电平,从而获得更高的速度。GTL(全局晶体管叠层)则使用参考电压来传输高/低信号,以及低幅度单端信号等等。 此外,即使采用简单的高/低表示法,为降低功耗而开发的 4000 系列CMOS通用逻辑电路也允许使用 3V 至 18V 作为高电平。 https://en.wikipedia.org/wiki/Logic_family 本博客将解释如何处理 TTL (LVTTL) 和 CMOS 中的电压电平,它们使用简单的高电平和低电平来表示逻辑,以及上面提到的各种逻辑电平。 其他信号转换使用专用芯片,因此本文不予赘述。 此外,近年来半导体技术变得更小、更快、更节能,电源电压也随之降低。因此,用于桥接信号电压差的电压电平转换器变得尤为重要。 图 2:信号波形 - 电压电平(高/低)表示逻辑电平。   2.2 CMOS 和 TTL:使用简单的电压高电平和低电平表示逻辑电平信号 在数字电路中,简单的基于电压的逻辑电平信号通常使用高电平(HIGH)和低电平(LOW),高电平通常使用电源电压,低电平通常使用0V。只要高低电平的电压值相同,即使电源电压不同,信号也能传输。 例如,TTL(LVTTL)将2.0V或更高的输入信号解读为高电平,0.8V或更低的输入信号解读为低电平。由于这种约定,即使电源电压不同,TTL信号的高/低电平也不会改变。 另一方面,CMOS电路以电源电压的一半作为高/低电平的定义依据。因此,当电源电压变化时,CMOS电路的高/低电平电平也会发生变化。 图 3:输入信号电压规格   2.3 输入/输出电压规格:V OH /V OL 和 V IH /V IL 在数字电路中,高电平和低电平的输出电压以及用于判断输入信号是高电平还是低电平的电压都是有明确规定的。这些规定在每个芯片的规格书中都有明确说明,因此您需要查阅数据手册。 V OH :高电平输出电压 VOL : 低电平输出电压 V IH :高电平输入电压 VIL : 低电平 输入电压 2.3.1 输出电压规格:V OH 和 V OL 考虑输出时,必须考虑输出高/低信号所需的电流。电流会根据负载的变化而增大或减小。 在最大流出电流下,高输出时可保证的电压称为 VOH (最小值) ;在最大流入电流下,低输出时可保证的电压称为 VOL (最大值) 。 V OH (min) 是电路输出级中上方晶体管导通时的输出电压。该晶体管具有一个称为“导通电阻”的电阻。 当大电流流过晶体管时,会产生一个等于“晶体管电阻乘以流过电流”的电压。这会导致输出电压比电源电压低相应的数值,从而导致 VOH 值降低。因此, VOH (min)是指在达到预期最大输出电流时能够保证的最小电压。 图 4:数字信号输出电路(推挽式)   图 5:高输出电压随负载而变化。   VOL 则相反。当电路输出级中的低电平晶体管导通时,如果输入电流较大,由于晶体管导通电阻产生的电压,输出电压将高于 0V,如上所述。考虑到这一点, VOL (max) 是在预期输入电流最大时能够保证的最大电压。 图 6:低输出电压也会根据负载而变化。   2.3.2 输入电压规格:V IH 和 V IL 输入端有两个电压电平,用于判断高电平和低电平: V IH (最小值)和V IL (最大值) 。如果电压高于 V IH (最小值),则判定为高电平;如果电压低于 V IL (最大值),则判定为低电平。 在CMOS输入中,电源电压的一半用作高电平和低电平的参考电压,但这并不直接用作V IH (min) 和V IL (max) 。这是因为不同芯片之间的差异会导致阈值波动。此外,为了减轻输出端缓慢上升沿信号噪声引起的毛刺,通常会在输入端引入迟滞。基于这些原因,V IH (min) 和V IL (max) 被定义为具有一定的电压差。 2.3.3 VOH / VOL 与 VIH / VIL 之间的关系 要实现正常的信号交换,输出和输入之间的关系必须满足以下等式。 高水平:V OH (分钟)> V IH (分钟) 低水平: VOL (最大值)< VIIL (最大值) 如果保持这种关系,输出电路就能正确地将高/低信号传输到下一个输入电路。此外,它们之间的电压差“V OH (min) - V IH (min)”和“V IL(max) - V OL (max)”就成为“ 噪声容限”,并作为保持高抗噪性的指导原则。 图 7:V OH (min) / V OL (max) 和 V IH (min) / V IL (max) 3. 基本电压电平转换方法:单向信号转换   3.1 即使芯片的电源电压不同,也不需要进行转换的示例。 当“V OH (min) > V IH (min)”和“V OL (max) < V IL (max)”满足关系式时,通常不需要进行电压电平转换。例如,尽管TTL和LVTTL芯片使用的电源电压不同,但它们的输入和输出电压规格相同。 在 TTL (5V) 和 LVTTL (3.3V) 模式下, VOH (最小值) 为 2.4V, VOL (最大值) 为 0.4V。由于在两种情况下 VIH (最小值)/ VIL (最大值) 也均为 2.0V/0.8V,因此它们可以毫无问题地相互连接。 但是,如果输出电压高于输入芯片的电源电压,则需要格外小心。如果输出芯片使用 5V 电源,而输入芯片使用 3.3V 电源,则输入芯片必须支持“ 5V 耐受输入”。 5V 耐压输入是指即使将 5V 高电平信号连接到工作电压为 3.3V 的芯片的输入端,也能正常工作的输入端。虽然典型的芯片输入端都配备了静电放电 (ESD) 保护电路来防止静电损坏,但如果该 ESD 保护电路的配置如下图所示,5V 输入可能会导致电流从输入端反向流回 3.3V 电源,从而可能损坏芯片。5V 耐压输入的设计正是为了避免此类问题。耐压输入并非缺少 ESD 保护;它们内置了 ESD 保护电路,该电路能够处理高于电源电压的信号而不会造成任何问题。 如图 7 所示的 ESD 保护二极管,即使输入芯片断电,也可能导致问题。在独立控制每个芯片电源的系统中,即使输入芯片已关闭,输出信号也可能反馈到电源,导致输入芯片继续工作。 图 7:ESD 保护二极管 - 非容错输入 列:对于 TTL 电路,如何确定 V IH (min) = 2.0V 和 V IL (max) = 0.8V? CMOS的输入阈值基于电源电压的中点(VCC/2),而TTL的V IH (min) /V IL (max) 为2.0V/0.8V,相对于电源电压(5V)而言,这个比例并不十分理想。这与TTL的输入级由双极型晶体管构成有关。 标准 TTL 逻辑 IC 的内部电路示例:SN7400(2 输入 NAND)。 该信息包含在《1988 年最新通用逻辑器件规格表》(CQ 出版社)中。 典型的TTL门电路的输入级由一个多发射极输入晶体管和一个串联的相位分离晶体管组成。门电路开始响应的“开关阈值”由这两级中PN结的正向电压决定。由于单个硅PN结的正向电压约为0.6至0.7V,因此两级的总正向电压约为1.3至1.5V,这就是TTL门电路的有效开关阈值。 然而,约 1.4V 的值仅仅是一个“典型值”, 由于个体差异和温度变化,它会因批次和工况的不同而有所波动。 因此,数据手册中指定的 V IH (min) 和 V IL (max) 值被定义为保证值,在约 1.4V 的典型值上下留有足够的裕量,这意味着“如果电压降至此值,则可以可靠地判断为低电平 (V IL (max) = 0.8V)”,“如果电压升至此值,则可以可靠地判断为高电平 (V IH(min) = 2.0V)”。 此外,该值并非孤立地确定,而是根据 VOH 和 VOL 之间的关系设计而成,如第 2.3.3 节所述。在标准 TTL 电路中,由于输出级配置,高电平输出并非电源电压,而是略低的电压(比上述电路示例中的 130Ω 电阻、晶体管和二极管产生的电压低 2.4V)。当与 VOL(max)=0.4V 结合时, 高噪声容限:V OH (最小值)− V IH (最小值)= 2.4 − 2.0 = 0.4V 低侧噪声容限:V IL (max) − V OL (max) = 0.8 − 0.4 = 0.4V 如图所示,其设计旨在确保上下对称地提供 0.4V 的噪声容限。换句话说,TTL 的 2.0V/0.8V 数值相对于电源电压而言可能看起来“奇怪”,但实际上是合理的数值,其计算基于两个要求:双极型晶体管结电压的物理特性和噪声容限设计。 此图显示的是一个 SN7420(4 输入 NAND),其中三个输入引脚设置为高电平,一个引脚接收 100kHz 三角波(通道 1)。 当高电平 (Vcc=5V) 时,空载 (ch2) 输出小于 4V。 本专栏介绍的电路是一个没有指定型号的标准 TTL 电路示例(例如 74 LS 00 或 74 HC 00,没有 LS/HC 前缀;有时在英语中被称为“vanilla TTL”),但 V IH /V IL 规格相同的原因(输入级的双极结特性)与其他 TTL 系列(例如 74LS)相同。   3.2 需要转换的示例   虽然 TTL 和 LVTTL 连接由于电压电平匹配而可行,但当连接电源电压不同的 CMOS 芯片,或将 CMOS 芯片连接到 TTL 芯片时,逻辑电平不匹配的情况时有发生。这是因为上述关系“V OH (min) > V IH (min)”和“V OL (max) < V IL (max)”不成立,或者电平差过小,导致噪声容限不足。 电压电平转换器可以解决这个问题。 图 9:逻辑电平不匹配示例 (1):高电平输入电压不足   图 10:逻辑电平不匹配示例(2):输入的低电压不足。     3.2.1 利用开漏输出进行转换 无需使用电压转换芯片,也有简便的方法可以调节电压。 如果信号方向从输出芯片到输入芯片是固定的且不会切换,那么这种方法需要将高电平输出设置为开漏输出,以匹配输入电压。开漏输出是指数字电路输出级的上部晶体管缺失,高电平电压是通过连接到输入芯片电源电压的上拉电阻获得的。 图 11:数字信号输出电路(开漏)   明渠排水是一种简单且廉价的方法,但有几点需要注意。 首先,输出端必须能够实现开漏输出。许多微控制器的GPIO引脚可以通过配置提供这种类型的输出。 首先,输出端必须能够实现开漏输出。许多微控制器的GPIO引脚可以通过配置提供这种输出。如果输出固定为推挽输出且无法配置为开漏输出,则需要外部晶体管或类似器件将其转换为开漏输出。 此外,上拉电阻的选择也很重要。 为了获得高电压,需要使用上拉电阻,但如果电阻值太小,输出为低时流过的电流就会很大(类似于重负载),这将增加功耗,导致 电压 升高。 相反,如果该值过大,则会受到线路和引脚电容的影响,导致从低电平到高电平的上升时间变慢,从而降低通信速度。 3.2.2使用标准逻辑(通用逻辑)芯片进行转换 对于简单的电压电平转换,您也可以使用标准逻辑电路。例如, Nexperia 的 74AVCH4T245是一款通用 CMOS 逻辑芯片,可以执行 4 位双向电平转换。 该芯片可转换0.8V至3.6V的信号,并可通过DIR引脚切换信号方向。信号传输速度取决于转换电压,但可支持约100Mbps至380Mbps的速度。 图 12:标准逻辑示例 - 74AVCH4T245 该芯片能够实现高速双向电压信号转换,但转换方向必须由外部信号控制。虽然在并行总线上可以通过读/写等信号实现这种控制,但在串行总线等通信系统中,由于通信方向会根据协议而切换,因此难以应用这种控制方式。 图 13:标准逻辑示例。信号方向必须由外部指定。 4. 需要自动方向切换的双向信号转换。 迄今为止介绍的“开漏输出”和“使用标准逻辑芯片的电压转换方法”主要只能在一个方向上进行转换,或者需要通过外部信号来切换方向。 像I²C和I3C这样的通信方式,由于信号方向会动态变化,需要“双向电压电平转换”来自动检测并切换信号方向。外部控制这类信号的方向非常困难,而且使用上述缓冲芯片实现起来也很有挑战性。 此外,由于 I²C 是开漏信号,因此无法将标准的开漏逻辑缓冲器反向连接。图 14 展示了一个示例,其中开漏缓冲器反向连接。当缓冲器的两端均为高电平时,不会出现问题;但一旦其中一端变为低电平,缓冲器就会持续将另一端的输入拉低,并且无法恢复到高电平。 图 14:典型的开漏缓冲器不能自动在双向通信之间切换。   4.1 使用单个MOS晶体管的双向转换   迄今为止,I²C信号到电压的转换一直采用简单的电路。我们将以MOS晶体管为例,介绍一种最简单的方法。 图 15:使用 MOS 晶体管进行转换的示例   图 15 取自 I²C 规范 2.1 版(2000 年),展示了一个使用两个 MOS 晶体管(TR1、TR2)分别转换 3.3V 和 5V 信号的示例。尽管由于后文所述的问题,这种仅使用晶体管的简单转换示例已从当前的 I²C 规范中移除,但此处仍将其保留以帮助理解其原理。 I²C信号线,分别称为SDA和SCL,均为开漏双向信号。上拉电阻分别连接到3.3V和5V端。 在这个电路中,当3.3V和5V信号均为高电平时,该晶体管的栅极(g)和源极(s)处于同一电位,因此源极(s)和漏极(d)截止,它们之间的连接断开。当3.3V信号在此状态下变为低电平时,3.3V侧的晶体管(位于s和d之间)导通, 5V侧的信号也变为低电平。 当3.3V侧变为高电平,5V侧变为低电平时,连接3.3V侧和5V侧的寄生二极管(体二极管)首先导通。二极管导通后,电源电压下降。因此,晶体管导通, 3.3V侧的信号也变为低电平。 虽然这种使用晶体管作为开关的简单机制可以实现电压电平转换,但它也存在一些问题。晶体管的差异会影响信号转换的阈值电压。此外,随着处理更低信号电压的需求日益增长,例如在1V左右的信号电压下,这种电路无法工作,因为它无法获得足够的栅源电压(Vgs)。 附录: 与图 15 相同的电路仍以应用笔记 AN10441“I²C 总线设计中的电平转换技术” 的形式公开提供,该笔记由 Nexperia 公司发布。Nexperia 是一家由恩智浦半导体 (NXP) 分拆出半导体分立/逻辑产品业务后成立的公司。该应用笔记最初于 2007 年(版本 01)发布,与 I²C 规范分开,并于 2020 年以 Nexperia 品牌进行了修订(版本 2)。 4.2 使用专用设备的双向转换   通过使用 专用电压电平转换器 IC , 可以轻松实现 I²C 和 I3C 等双向通信总线的电压电平转换。 4.2.1 I²C信号电压转换芯片 PCA9306和NVT20xx系列( NVT2001/02 、 NVT2003/06 、 NVT2008/10 )是专为双向信号转换而设计的电压电平转换器。这些芯片可以同时处理多条信号线(多位信号线)。虽然它们被指定为 I²C 信号电压转换芯片,但如果信号规格匹配,它们也可以用于其他用途(例如 SPI 和其他推挽信号) 。 PCA9306 和 NVT20xx 系列具有相同的内部结构,只有当要转换的电压差为 1V 或更大时,才需要将上拉电阻连接到较高的电压侧。 图 16 显示了其内部结构以及与外部芯片的连接(摘自应用笔记AN11127的图 2:“双向电压电平转换器 NVT20xx 和 PCA9306” )。该芯片包含信号线(比特)数 + 1 个 MOS 晶体管。每个晶体管的源极和漏极可以互换。 信号传输路径中的晶体管称为传输晶体管,其余的晶体管称为参考晶体管。 图 16:NVT20xx (PCA9306) - 芯片工作原理示意图。   观察电路图,参考晶体管的栅极和漏极短接,并通过一个200kΩ的电阻连接到高压电源。参考晶体管的源极连接到低压电源。在这种连接方式下,参考晶体管相当于一个二极管,其栅极电压比低压电源高一个二极管电压。 剩余的传输晶体管的漏极连接到高压信号线和一个1kΩ的上拉电阻,其源极连接到低压信号线,其栅极连接到参考晶体管的栅极。当传输晶体管的高电平和低电平信号均为高电平时,高压侧的电压由1kΩ电阻上拉至高电平。 一个传输晶体管构成一个称为“源极跟随器”的电路。低压侧(源极)的电压比施加在栅极上的电压低,低的电压值等于晶体管导通所需的Vgs值。换句话说,源极的电压与低压电源的电压相同。此时晶体管处于半导通状态(工作在线性区),既非完全导通也非完全截止。 在这种状态下,当高电平或低电平信号变为低电平时,栅极和信号端之间的电压差会使晶体管导通(工作在完全导通的饱和区),另一个端也变为低电平。 该系列芯片可处理的信号速率受上拉电阻和信号线电容的影响。数据手册显示,PCA9306 最高可处理 2MHz 的信号速率。NVT20xx 系列芯片在上拉电阻为 192Ω、电容为 50pF 时,最高可处理 33MHz 的信号速率。对于 1MHz 左右的信号,即使不太在意上拉电阻和电容(假设其在 I²C 的常用范围内),也能正常工作。但是,如果要将该芯片用于推挽电路以处理更高速率的信号,则必须充分了解其特性并仔细选择合适的元件。 此类电压电平转换器的运行细节在文章“ PCA9306 的内部结构和运行”中进行了描述。 4.2.2 高速双向开漏信号电压转换芯片 我们推出NTS030x系列( NTS0302JK 、 NTS0304E )高速双向开漏信号转换芯片。 该芯片可执行 2 位或 4 位双向信号转换,可处理高达 2Mbps (1MHz) 的开漏信号和 20Mbps (10MHz) 的推挽信号。   图 17:NTS030x - 芯片内部框图   图 17 显示了 NTS030x 中一个信号比特的内部结构。 在图中,晶体管T3是一个直通晶体管,并对其施加了栅极偏置电压,因此当信号 A 或 B 变为低电平时,它会导通。 当 A 和 B 都为高电平时,T3 关闭,由于 A 和 B 通过相对较大的上拉电阻 (10kΩ) 连接到各自的电源,因此它们将具有各自的电压。 这款芯片包含T3以及T1和T2 。其中T1和T2用于一种名为“边沿速率加速器”的功能。我们将重点介绍其中一个T1,并解释其工作原理。 T1位于 A 侧,其源极连接到 A 信号,漏极连接到 A 侧电源。栅极连接到标有“单稳态和转换速率控制”的模块,该模块控制 T1。 “单次触发和转换速率控制”模块连接到另一端的 B 信号,用于检测 B 信号从低电平到高电平的变化。检测到此变化时,晶体管 T1 暂时导通,绕过 10kΩ 上拉电阻,允许电流通过,从而加速 A 信号从低电平到高电平的变化。通过这种方式加快信号的上升时间,可以处理更快的信号。 顺便一提,当 T1 打开时,其转换速率受到控制,以抑制电流突然增加引起的振铃。 另一个T2使用相同的机制,但方向相反,也应用于 B 面信号。 NTS系列还有另一个方便用户使用的功能。 对于前面提到的MOS晶体管和PCA9306/NVT20xx,存在一个问题:如果一个电源关闭,另一个电源的信号会被置为低电平。为了解决这个问题,NTS030x的设计使得当两个电源都未开启时,信号引脚会被置为高阻抗状态,从而避免相互影响。利用此功能,可以对系统的电源进行部分控制,使其处于开启/关闭状态。 NTS010x 系列( NTS0102 、 NTS0104 )与 NTS030x 系列等效,但缺乏处理高速信号的转换速率控制功能。 NTS0304E 配有评估板NTS0304EUK-ARD,可进行快速简便的运行验证。有关 NTS0304EUK-ARD 评估板的概述和操作方法,请参阅视频“如何操作 NTS0304EUK-ARD” 。 4.2.3 双向推挽式信号电压转换器芯片 此外,对于仅用于推挽信号的器件,还有NTB010x系列( NTB0102 、 NTB0104 ),它提供了一种更快的选择。 当信号稳定处于高电平或低电平状态时,信号会通过一个 4kΩ 电阻。与 NTS030x 系列类似,它在高电平和低电平两端都具有单稳态功能,并且具有一种机制,当任一端的信号发生变化时,该机制会改变另一端的信号。 该机制能够以 70-80 Mbps 的速度实现信号到电压的转换,同时还具有自动信号方向检测功能。   图 17:NTB010x - 内部芯片框图 4.2.4I3C信号电压转换器芯片 I3C规范允许在开漏和推挽通信模式之间切换。在开漏模式下,它与 I²C 兼容,工作频率最高可达4MHz 。在推挽模式下,则使用12.5MHz 的时钟频率。由于信号电压通常在 1V 到 3.3V 的范围内,因此当存在电压差时,需要一个符合信号规范的电压电平转换器。 图 18 显示了P3A1604一位的内部框图。如图所示,该芯片集成了一种机制,不仅可以加速低电平到高电平的转换,还可以加速高电平到低电平的转换,并且还集成了一个可以开关的上拉电阻。   图 18:P3A1604 - 芯片内部框图 P3A1604是一款 4 位 I3C 电压电平转换器。另有 2 位版本P3A9606可供选择。   4.2.5 基于缓冲区的转换 转换双向信号的另一种方法是使用专用缓冲区。 缓冲器的主要目的是增强驱动能力并隔离连接信号线的电容,但也有一些产品支持电压转换。 正如这篇博客中所述,简单的缓冲器无法相互缓冲双向开漏信号。因此,市面上出现了各种具有双向开漏信号专用功能的缓冲器产品。 我会在以后的场合详细解释缓冲区的问题。 5. 总结 电压电平转换器是安全可靠地在不同电源电压的数字电路之间交换信号的关键组件。了解 TTL、LVTTL 和 CMOS 等逻辑电平的定义,以及 VOH/VOL/VIH/VIL 之间的关系,有助于选择合适的连接和转换方法。 对于单向转换,可以使用开漏输出或标准逻辑集成电路;而对于双向转换,可以使用MOS晶体管或专用集成电路(例如PCA9306/NVT/NTS/NTB/P3A系列)。 具有自动信号方向检测功能的电压电平转换器对于需要双向通信的总线(例如 I²C 和 I3C)特别有用。 此外,半导体技术的最新进展带来了更低的电压和更高的速度,这就对电压电平控制提出了更高的要求。虽然电压电平转换的方法和方案有很多,但根据应用需求,并考虑信号规格、速度和系统电源管理等因素,选择最佳的方法和元件至关重要。 5.1 博客中介绍的方法/零件编号的比较 方法/部件编号 目的 位数 方向改变 开放式布线兼容 低压侧 [V] 高压侧 [V] 比特率 [bps] 具有开漏输出的转换器 通用 1 单向 - - - - 标准逻辑(例如,74AVCH4T245) 通用型(并行总线等) 4 + 4 外部控制 不支持 0.8 ~ 3.6 0.8 ~ 3.6 1亿~3.8亿 使用单个MOS晶体管进行双向转换 I²C,通用 1 自动的 一致 根据晶体管规格而定 约100万 PCA9306 I²C,通用 2 自动的 一致 1.0 ~ 3.6 1.8 ~ 5.5 4M(2MHz,视情况而定) NVT2001 I²C,通用 1 自动的 一致 1.0 ~ 3.6 1.8 ~ 5.5 4M(2MHz @ 开漏),66M(33MHz @ 优化条件) NVT2002 I²C,通用 2 自动的 一致 1.0 ~ 3.6 1.8 ~ 5.5 4M(2MHz @ 开漏),66M(33MHz @ 优化条件) NVT2003 I²C,通用 3 自动的 一致 1.0 ~ 3.6 1.8 ~ 5.5 4M(2MHz @ 开漏),66M(33MHz @ 优化条件) NVT2006 I²C,通用 6 自动的 一致 1.0 ~ 3.6 1.8 ~ 5.5 4M(2MHz @ 开漏),66M(33MHz @ 优化条件) NVT2008 I²C,通用 8 自动的 一致 1.0 ~ 3.6 1.8 ~ 5.5 4M(2MHz @ 开漏),66M(33MHz @ 优化条件) NVT2010 I²C,通用 10 自动的 一致 1.0 ~ 3.6 1.8 ~ 5.5 4M(2MHz @ 开漏),66M(33MHz @ 优化条件) NTS0302JK I²C、SPI、通用 2 自动的 一致 0.95 ~ 3.6 1.65 ~ 5.5 2米@明排水口,20米@推拉式排水口 NTS0304E I²C、SPI、通用 4 自动的 一致 0.95 ~ 3.6 1.65 ~ 5.5 2米@明排水口,20米@推拉式排水口 NTS0102 I²C、SPI、通用 2 自动的 一致 1.65 ~ 3.6 2.3 ~ 5.5 50米 @ 推拉 NTS0104 I²C、SPI、通用 4 自动的 一致 1.65 ~ 3.6 2.3 ~ 5.5 50米 @ 推拉 NTB0102 SPI,通用 2 自动的 不支持 1.2 ~ 3.6 1.65 ~ 5.5 7000万~8000万 NTB0104 SPI,通用 4 自动的 不支持 1.2 ~ 3.6 1.65 ~ 5.5 7000万~8000万 P3A9606 I3C、I²C、SPI、通用 2 自动的 一致 0.72 ~ 1.98 0.72 ~ 1.98 (12.5MHz) P3A1604 I3C、I²C、SPI、通用 4 自动的 一致 0.72 ~ 1.98 1.62 ~ 3.63 6.8米(明排水),40米(推拉式排水) 表 1:博客中介绍的方法/零件编号对比   6. 参考资料 产品介绍页:电压电平转换器 NXP系统管理I2C、I3C、SPI选型指南 I2C总线规范和用户手册(版本5.0)(日语版) I2C总线规范和用户手册(版本7.0)英文版) NXP社区博客: I3C总线概述——下一代串行总线 日本网络研讨会视频: “您现在需要了解的下一代接口‘I3C’基础知识” Qiita @teddokano: PCA9306 的内部运作和运行 变更历史记录: 2025年8月28日:第一版 2025-08-28:添加了有关 NTS0304EUK-ARD 的信息以及包含视频的博客链接。 2026-04-10:修正表 1 中的低压侧 [V] 和高压侧 [V]。 2026-06-20:第 3.1 节“列:TTL 的 VIH(最小值)”新增“如何确定 VIL(max) = 2.0V 和 VIL(max) = 0.8V?”。新增标准 TTL 逻辑 IC 的内部电路示例:SN7400(2 输入 NAND 门)和 SN7420 的输出波形。 2026-07-10:在第 4.1 节中添加了图 15 中的电路也作为 Nexperia 应用笔记 AN10441 发布。 ========================= 即使您在本文的“评论”栏留言,我们目前也无法回复。 给您带来不便,我们深感抱歉。请在询问时参阅“NXP技术问题-联系方式(日本博客)”。 (如果您已经是NXP的代理商或与其有合作关系,可以直接向负责人咨询。) 本博客解释了数字电路中使用的各种逻辑电路(*TTL、*LVTTL、*CMOS)之间的电压电平差异,以及 VOH 、 VOL 、 VIH 和 VIL 对于识别它们的重要含义。 此外,我们将解释在各种转换方法中应该选择哪种电压电平转换器。 我们将仔细研究双向开漏信号的转换,这需要特殊的处理方法。 界面 介绍 日本博客
View full article
Alternative part for NVT4857UKAZ This is less directly software related, but we recently discovered that the NVT4857UKAZ has already reached EOL, and there are no pin-to-pin compatible replacement parts available. Since SD card support is a required feature for our i.MX95-based device, we're trying to understand what alternative solutions are available given this situation. Could you share your recommendations on possible replacement options or design approaches? Re: Alternative part for NVT4857UKAZ Hello! You can refer NVT4858 as a replacement. However, please note that NVT4858 is not a drop-in replacement. Therefore, both hardware and software modifications may be required to accommodate the new device in your application. We recommend carefully reviewing the specifications and design requirements to evaluate the impact of the migration. Hope this helps! Re: Alternative part for NVT4857UKAZ Hello! You can refer NVT4858 as a replacement. However, please note that NVT4858 is not a drop-in replacement. Therefore, both hardware and software modifications may be required to accommodate the new device in your application. We recommend carefully reviewing the specifications and design requirements to evaluate the impact of the migration. Hope this helps!
View full article
不支持 S32K344 的 PlatformSDK_S32K3_2022_03 版本 您好, 之前我开发了基于 S32K344 WB 板的 S32K344 代码。该平台为 S32DS.3.4 和 RTD AUTOSAR 4.4.2,项目运行良好。 现在我想开发 S32G3 代码,这需要 S32DS.3.5。所以我卸载了 S32DS.3.4 和 RTD 4.4.2,安装了 S32DS.3.5。安装完成后,我开始安装扩展程序和更新。我找不到 S32K3 的 RTD 4.4.2 版本,所以我只能安装 S32K3 的 RTD 3.0.0 版本。版本。K3 的 RTD 安装完成后,我导入了旧的 S32K344 项目并尝试打开 *.mex 文件,但项目提示“当前工具不支持 S32K344 的 PlatformSDK_S32K3_2022_03 版本”。如何解决这个问题? Re: Don't support S32K344's PlatformSDK_S32K3_2022_03 version 嗨,朱利安, 感谢你的回复。我在 S32DS.3.5 和 K3 RTD3.0.0 中创建了一个新的应用程序项目,但在新项目中找不到 *.mex 文件。 步骤1:选择S32K344和M7(Gcc 10.2 for arm 32 bit) 步骤2.选择核心和参数 步骤3。我获取了新项目 s32k3_can_uart_rtd3,但我找不到之前在 S32DS.3.4 实例中存在的以下文件。 .ClockConfigurationMappings.txt .ClockYaml.txt .s32k3_wb_can_rtd3.mex .S32K344_flash.cmm 文件 .RTD文件夹。 那么,我的新RTD3.0.0项目遇到了什么问题呢? Re: Don't support S32K344's PlatformSDK_S32K3_2022_03 version 嗨@Jimmybai , 这仅仅是 RTD 2.0.0 和 RTD 3.0.0 之间的不兼容错误。遗憾的是,没有简单的方法可以直接从 2.0.0 版本导入到 3.0.0 版本。我建议手动移植您的应用程序: 1.在您新的安装了 RTD 3.0.0 的 S32DS 实例中,通过“文件 > 新建 > S32DS 应用程序项目”创建一个新项目 2. 选择处理器、NXP GCC 10.2 工具链,并在下一个窗口中附加新的 RTD 3.0.0。 3. 项目创建完成后,将现有项目中的所有源文件复制并粘贴到新项目中。 4. 最后,打开 .mex 文件手动将配置文件复制到该文件中。 您可以尝试使用“导入 > S32 配置工具 > 导入配置 (*.mex)”选项导入 .mex 文件。但是,我发现 RTD 2.0.0 及以下版本在 S32CT 中大多会造成错误,手动移植应用程序是一个更好的解决方案。 此致, 朱利安 Re: Don't support S32K344's PlatformSDK_S32K3_2022_03 version 你好@Jimmybai , 您是否已将RTD添加到项目中? 此致, 朱利安
View full article
[S32K566 SAF] bist 测试后,MCU 将进入 RESET 嗨,团队 客户使用 SAF 后发现的 MCU 在 bist 之后将始终处于 RESET 状态。除了关闭电源外,没有办法启动 MCU。因此,客户希望了解变通方法和路径原因。但对此没有任何说明。 顺祝商祺! 俊杰 SAFETY_SW Re: [S32K566 SAF] MCU will be stucked in reset after bist test 你好@MariusC 感谢你的支持 BSSM 合同:否 客户公司*:PATAC 项目名称*:分区控制器 客户联络点*(姓名& 电子邮件):Liek Li ([email protected]) 软件 & 硬件信息:客户正在基于 s32k566 A0 样本开发功能安全功能 软件包信息*:SW32K5_RTD_R23-11_0.8.0 + SW32K5_SAF_0.8.0_HF01_D2602 硬件*(板/芯片组/平台):S32K566 CVB SW 版本*:0.8.0 顺祝商祺! 俊杰 Re: [S32K566 SAF] MCU will be stucked in reset after bist test 您好@Junjie, 请提供以下信息,以便我们更好地帮助您的客户: 如果您支持的是直接客户,请提供: BSSM 合同:是/否 客户公司*: 项目名称*: 客户联络点*(姓名& 电子邮件): 软件& 硬件信息: 软件包信息*: 硬件*(板/芯片组/平台): SW 版本*: *必须 Re: [S32K566 SAF] MCU will be stucked in reset after bist test 你好@俊杰 在这个早期的启动阶段,问题可能有多种原因(例如,BIST 退出/恢复未完成)。 可能的原因是破坏性重置事件保持锁定状态,因此重复重置会达到破坏性复位升级阈值 (DRET),使设备处于重置状态,直到开机复位。 为了查明根本原因,以下寄存器转储/日志会很有帮助,这些记录会在 RESET 周期后立即捕获(十六进制值/屏幕截图)。 MC_RGM_DES(破坏性事件状态) MC_RGM_FES(功能/外部事件状态) MC_RGM_DRET、MC_RGM_FRET(升级阈值) Re: [S32K566 SAF] MCU will be stucked in reset after bist test 你好@DenisSas MCU 重复重置,调试器无法连接 MCU,除非关机。如果在 SAF 驱动程序中运行 SAF 示例,也会出现这个问题。 顺祝商祺! 俊杰 Re: [S32K566 SAF] MCU will be stucked in reset after bist test 嗨,@俊杰、 谢谢你的澄清。 我正在继续调查这种行为。目前我无法立即访问 S32K5 板来重现 SAF 示例场景,但我正在查看 SAF 初始化流程和早期的 RESET 顺序,以了解为什么 MCU 在调试器连接之前进入 RESET 循环。 Re: [S32K566 SAF] MCU will be stucked in reset after bist test 你好@DenisSas 能给我一些最新消息吗?客户要求我们关闭这张票,因为客户正在评估启动时间并优化应用程序启动流程。谢谢! 顺祝商祺! 俊杰 Re: [S32K566 SAF] MCU will be stucked in reset after bist test 嗨,@俊杰、 关于 s32k566,我们正在与验证团队联系,因为我们这边也存在这个问题。计划周一与他们会面,之后我会再提供信息。 致以最诚挚的问候, Denis Re: [S32K566 SAF] MCU will be stucked in reset after bist test 你好@DenisSas 感谢您提供最新信息,能否请您分享更多相关细节?是硬件问题还是软件配置问题或 sbaf 问题?如果不是硬件问题和 sbaf 问题,客户希望通过直接写入 bist 寄存器来配置 bist,使其正常工作。还有一个问题,我们能得到更新路线图吗? 顺祝商祺! 俊杰 Re: [S32K566 SAF] MCU will be stucked in reset after bist test 你好@Junjie, BIST 执行时间 8.3ms 请注意这是初步的 BIST 执行。由于切口 A0 存在无法为 CPE 运行 LBIST 的勘误,因此切口 B0 将修正这一问题。 在 SAF 方面,我们即将完成在不使用 LBIST5 和 LBIST11(CPE 和 HSE)的情况下运行的 SAF 演示示例中的 BIST 执行。 关于有无 HSE 的 BootRom 执行时间,我正在等待架构师的回复。 亲切的问候, Radoslav Re: [S32K566 SAF] MCU will be stucked in reset after bist test 嗨,@俊杰、 问题在于硬件(A0 的勘误、LBIST CPE 不工作)和软件。我不建议直接写入 BIST 寄存器来使 BIST 工作。 路线图将等到2026年5月29日SAF ZE 0.8.1的新版本发布。从今天起的下周,功能演示将单独推出。解决方法就是在没有 CPE 的情况下也能运行。 致以最诚挚的问候, Denis Re: [S32K566 SAF] MCU will be stucked in reset after bist test 你好@RadoslavB 感谢您的更新,这对客户评估启动时间非常有帮助。 顺祝商祺! 俊杰 Re: [S32K566 SAF] MCU will be stucked in reset after bist test 嗨,@俊杰、 会议上发现了这个问题,现在 BIST 的所有者正在进行必要的更新,以使其与 SAF 演示示例配合使用。 感谢您的耐心等待。 致敬, Denis Re: [S32K566 SAF] MCU will be stucked in reset after bist test 嗨,@俊杰、 需要提醒的是,该问题仍然存在,目前 SBAF 团队正在对此进行调查。 此致敬礼,丹尼斯
View full article
TEF82xx 底层驱动程序构建问题 你好, 我正在尝试版本 TEF82xx API 底层驱动程序 RFP9.3.0 20240920_PROD 以运行其中包含的示例,但遇到了问题: 找不到源文件:src/plf_sys.c 这个文件确实丢失了。与其他一些文件(plf_cap.c,plf_crc.c,plf_hio.c,等等)bc_api\bc_api_src\plf\CMakeLists.txt 所要求的。我可以在哪里找到这些文件? Re: TEF82xx Low Level Drivers build issue 你好, 是的你是对的。我在 TEF82xx API 底层驱动程序 RFP9.3.0 20240920_PROD.zip 软件包中没有看到该文件。 肯定是从其他代码包,软件包里拿出来的。名称plf_sys.c指向平台——驱动程序很可能期望它来自操作系统。 摘自 TEF82xx API 底层驱动程序 RFP9.3.0 20240920_PROD\TEF82xx_API_RN_V9.3.0.pdf 我在文档中没有找到更多信息。 顺祝商祺! Peter Re: TEF82xx Low Level Drivers build issue 你好, 是的你是对的。我在 TEF82xx API 底层驱动程序 RFP9.3.0 20240920_PROD.zip 软件包中没有看到该文件。 肯定是从其他代码包,软件包里拿出来的。名称plf_sys.c指向平台——驱动程序很可能期望它来自操作系统。 摘自 TEF82xx API 底层驱动程序 RFP9.3.0 20240920_PROD\TEF82xx_API_RN_V9.3.0.pdf 我在文档中没有找到更多信息。 顺祝商祺! Peter
View full article
激活码过渡 项目描述S32 Design Studio for ARM v2018 订单号S32-DS-ARM_v2018_169264627 您能帮我延长许可证的有效吗?激活码EBF4-DE52-80C0-FD65非常感谢。 Re: 激活码过期 你好, 您的S32DS许可证已延期。
View full article
TEF82xx Low Level Drivers build issue Hi,  I'm trying to build the TEF82xx API Low Level Drivers RFP9.3.0 20240920_PROD to run the included examples and have an issue: Cannot find source file: src/plf_sys.c And this file is really missing. Like some others (plf_cap.c, plf_crc.c, plf_hio.c, etc) required by the bc_api\bc_api_src\plf\CMakeLists.txt. Where can I find these files? Re: TEF82xx Low Level Drivers build issue Hello, Yes, you are right. I do not see that file in the TEF82xx API Low Level Drivers RFP9.3.0 20240920_PROD.zip package. It must be from other packages. Name plf_sys.c points to the platform - most probably driver expects it is coming from OS. From TEF82xx API Low Level Drivers RFP9.3.0 20240920_PROD\TEF82xx_API_RN_V9.3.0.pdf I have found no further information in the documentation. Best regards, Peter Re: TEF82xx Low Level Drivers build issue Hello, Yes, you are right. I do not see that file in the TEF82xx API Low Level Drivers RFP9.3.0 20240920_PROD.zip package. It must be from other packages. Name plf_sys.c points to the platform - most probably driver expects it is coming from OS. From TEF82xx API Low Level Drivers RFP9.3.0 20240920_PROD\TEF82xx_API_RN_V9.3.0.pdf I have found no further information in the documentation. Best regards, Peter
View full article
NXPRDLIB_REM_GEN_INTFS の使用状況 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちは。 NXP Reader Library のNXPRDLIB_REM_GEN_INTFS定義の正確な目的を知りたいです。 私の見る限り、定義されていればプロジェクトと一緒にソフトウェアAPIインターフェースが構築され、そうでなければバイナリの同等のものに置き換えられます。なぜなら、その場合は関数プロトタイプしか利用できないからです... これは正しいですか?もしそうなら、二進リベラルはどこにあるのでしょうか?バイナリを選ぶことのメリット・デメリットは何ですか? よろしくお願いします、 ペッペ NFCリーダー・ライブラリ Re: NXPRDLIB_REM_GEN_INTFS usage @stephanie_m これはDoxygen-Dokuのバグです。 /* デバッグビルドモード */ /*#define NXPBUILD__PH_DEBUG*/ /**< デバッグビルド定義 */ #define NXPRDLIB_REM_GEN_INTFS したがって、正解はまだ確定していません。 Re: NXPRDLIB_REM_GEN_INTFS usage <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちは、 リーダーライブラリのAPIドキュメントによると、あなたが見ている定義はビルドデバッグ目的です よろしくお願いいたします。 エステファニア Re: NXPRDLIB_REM_GEN_INTFS usage <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> エステファニアさん、こんにちは。ご関心をお寄せいただきありがとうございます。 例えばPN7462AU-FW_v05.21.00_Full file rootから、その定義は一部のNFCリーダライブラリの例で有効になっています: $ grep -r NXPRDLIB_REM_GEN_INTFS NfcrdlibEx* NfcrdlibEx4_MIFAREClassic/intfs/ph_NxpBuild_App.h:#define NXPRDLIB_REM_GEN_INTFS NfcrdlibEx5_ISO15693/intfs/ph_NxpBuild_App.h:#define NXPRDLIB_REM_GEN_INTFS NfcrdlibEx7_EMVCo_Polling/intfs/ph_NxpBuild_App.h:#define NXPRDLIB_REM_GEN_INTFS NfcrdlibEx9_NTagI2C/intfs/ph_NxpBuild_App.h:#define NXPRDLIB_REM_GEN_INTFS また、PN7462AU PSPの例でも同様のことが言えます。 $ grep -r NXPRDLIB_REM_GEN_INTFS PN7462AU* PN7462AU_ex_phExMain/inc/APP_NxpBuild.h:#define NXPRDLIB_REM_GEN_INTFS PN7462AU_ex_phExVCom/inc/APP_NxpBuild.h:#define NXPRDLIB_REM_GEN_INTFS また、NFCリーダライブラリの多くの資料で確認されています: $ grep -r NXPRDLIB_REM_GEN_INTFS NxpNfcRdLib/ NxpNfcRdLib/comps/phacDiscLoop/src/phacDiscLoop.c:#ifndef NXPRDLIB_REM_GEN_INTFS NxpNfcRdLib/comps/phacDiscLoop/src/phacDiscLoop.c:#endif /* NXPRDLIB_REM_GEN_INTFS */ NxpNfcRdLib/comps/phalFelica/src/phalFelica.c:#ifndefNXPRDLIB_REM_GEN_INTFS NxpNfcRdLib/comps/phalFelica/src/phalFelica.c:#endif /* NXPRDLIB_REM_GEN_INTFS */ NxpNfcRdLib/comps/phalI18000p3m3/src/phalI18000p3m3.c:#ifndefNXPRDLIB_REM_GEN_INTFS NxpNfcRdLib/comps/phalI18000p3m3/src/phalI18000p3m3.c:#endif /* NXPRDLIB_REM_GEN_INTFS */ (…) よろしくお願いいたします。 ペッペ Re: NXPRDLIB_REM_GEN_INTFS usage <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちは、 使用しているライブラリのバージョンは何ですか?その情報と、その定義が表示されているファイルを教えていただけませんか? APIのドキュメントにもライブラリでも、あなたが言及している定義を見つけることができなかったので、とても助かると思います。 よろしくお願いいたします。 エステファニア
View full article
Don't support S32K344's PlatformSDK_S32K3_2022_03 version Hi,     Previous I develop S32K344 code based on S32K344 WB board. The platform is S32DS.3.4 and RTD AUTOSAR 4.4.2, the project work well.      Now I want to develop S32G3 code, which requires S32DS.3.5. So I uninstalled the S32DS.3.4 and RTD 4.4.2 ,  install S32DS.3.5. After installation complete, I begin to install Extension and Updates. I can't find S32K3's RTD 4.4.2 version, so I have to install S32K3's RTD 3.0.0 version. After K3's RTD installing done, I import the old S32K344 project and try to open *.mex file, but the project prompt that "current tool doesn't support S32K344‘s PlatformSDK_S32K3_2022_03 version." How to resolve this issue? Re: Don't support S32K344's PlatformSDK_S32K3_2022_03 version Hi Julián,       Thank you for your reply. I create a new application project in S32DS.3.5 and K3 RTD3.0.0, but I can't find *.mex file in new project. Step1: Select S32K344 and M7(Gcc 10.2 for arm 32-bit) Step2. Select core and parameter Step3. Get new project s32k3_can_uart_rtd3, but I can't find the following file previous exist in S32DS.3.4 instance. .ClockConfigurationMappings.txt .ClockYaml.txt .s32k3_wb_can_rtd3.mex .S32K344_flash.cmm file .RTD folder. So, what's the problem for my new RTD3.0.0 project? Re: Don't support S32K344's PlatformSDK_S32K3_2022_03 version Hi @Jimmybai, This is simply an incompatibility error between RTD 2.0.0 & RTD 3.0.0. Unfortunately, there is no simple way of importing it directly from 2.0.0 to 3.0.0. Instead, I recommend to manually port over your application: 1. In your new S32DS instance with RTD 3.0.0, create a new project through "File > New > S32DS Application Project" 2. Select processor, NXP GCC 10.2 toolchain, and attach the new RTD 3.0.0 in the next window. 3. Once the project is created, copy and paste over all of the source files from your pre-existing project. 4. Lastly, open .mex file and copy over the configuration manually.  You can try to use the "Import > S32 Configuration Tools > Import Configuration (*.mex)" option to import the .mex file, however, I've found that RTD 2.0.0 and below mostly creates errors in S32CT, and manually porting the application is a better solution. Best regards, Julián Re: Don't support S32K344's PlatformSDK_S32K3_2022_03 version Hello @Jimmybai, Have you attached the RTD to the project?  Best regards, Julián
View full article
HSEからの回答待ち HSEの回答が保留中のまま、S32K312 MCUとのOTAアップデート中に届かなかった過去の事例があるかどうかを伺いたいです。 また、どのような状況下でHSEの対応が保留となる可能性があるのかをご確認ください。 Re: Pending HSE response HSEサービスが永久に保留状態になる原因となる、既知のS32K312 OTAの問題は把握しておりません。 一般的に、すべてのHSEサービスリクエストには応答が返されるべきである。応答がない場合は、HSEファームウェアが致命的なエラーを検出し、シャットダウンモードに入ったことを示している可能性があります。この場合、診断情報についてはMU GSR登録簿を確認することをお勧めします。 原因としては、無効なサービスパラメータ、無効なメモリアドレス、XRDCアクセス違反、ECCエラー、クロックや初期化の問題、リソースの競合、その他の致命的なHSE内部エラーなどがあります。 調査にご協力いただくため、問題発生時のHSEファームウェアのバージョン、実行中の特定のHSEサービス、サービス記述子、およびMUステータスレジスタ(FSR/GSR)の情報をご提供ください。
View full article
等待 HSE 回复 我想咨询一下,之前是否有过这样的情况:在使用 S32K312 MCU 进行 OTA 更新时,HSE 响应一直处于待处理状态,没有到达。 此外,请确认在何种情况下 HSE 回复可能会处于待定状态。 Re: Pending HSE response 我们目前尚未发现任何已知的 S32K312 OTA 问题会导致 HSE 服务永久处于待处理状态。 一般来说,每个 HSE 服务请求都应该返回一个响应。如果没有收到响应,则可能表明 HSE 固件遇到了致命错误并进入了关机模式。在这种情况下,我们建议检查 MU GSR 寄存器以获取诊断信息。 可能的原因包括无效的服务参数、无效的内存地址、XRDC 访问冲突、ECC 错误、时钟或初始化问题、资源冲突或其他致命的 HSE 内部错误。 为了帮助调查,请提供 HSE 固件版本、正在执行的具体 HSE 服务、服务描述符以及出现问题时的 MU 状态寄存器(FSR/GSR)。
View full article
S32K344のPlatformSDK_S32K3_2022_03バージョンはサポートしないでください こんにちは、 以前、私はS32K344 WBボードをベースにS32K344コードを開発しました。プラットフォームはS32DS.3.4、RTD AUTOSAR 4.4.2で、プロジェクトは良好に機能しています。 今度はS32G3コードを開発したいのですが、そのためにはS32DS.3.5が必要です。そこでS32DS.3.4とRTD 4.4.2をアンインストールし、S32DS.3.5をインストールしました。インストールが完了したら、拡張機能とアップデートのインストールを開始します。S32K3のRTD 4.4.2バージョンが見つからないので、S32K3のRTD 3.0.0をインストールするしかありませんバージョン。K3のRTDインストールが終わった後、古いS32K344プロジェクトをインポートして*.mexファイルを開こうとしましたが、「現在のツールはS32K344のPlatformSDK_S32K3_2022_03バージョンをサポートしていません」というプロンプトが表示されます。この問題を解決するにはどうすればよいでしょうか? Re: Don't support S32K344's PlatformSDK_S32K3_2022_03 version こんにちは、ジュリアンさん。 お返事ありがとうございます。S32DS.3.5とK3 RTD3.0.0で新しいアプリケーションプロジェクトを作成しましたが、新しいプロジェクトで*.mexファイルが見つかりません。 ステップ1:S32K344とM7(Arm 32ビット用GCC 10.2)を選択する ステップ2。コアとパラメータを選択してください ステップ3。新しいプロジェクトs32k3_can_uart_rtd3を取得しますが、以下のファイルがS32DS.3.4インスタンスに存在しませんでした。 .ClockConfigurationMappings.txt .ClockYaml.txt .s32k3_wb_can_rtd3.mex .S32K344_flash.cmm ファイル .RTDフォルダ。 では、私の新しいRTD3.0.0プロジェクトで問題は何でしょうか? Re: Don't support S32K344's PlatformSDK_S32K3_2022_03 version こんにちは、 @Jimmybai さん。 これは単にRTD 2.0.0とRTD 3.0.0間の互換性の問題です。残念ながら、2.0.0から3.0.0へ直接インポートする簡単な方法はありません。代わりに、手動でアプリケーションを移植することをお勧めします: 1.RTD 3.0.0 を搭載した新しい S32DS インスタンスでは、「File > New > S32DS Application Project」を通じて新しいプロジェクトを作成する 2. プロセッサ、NXP GCC 10.2ツールチェーンを選択し、次のウィンドウで新しいRTD 3.0.0を付けます。 3. プロジェクトが作成されたら、既存のプロジェクトからすべてのソースファイルをコピーして上書きします。 4. 最後に、.mexファイルを開きます。ファイルを作成し、設定を手動でコピーします。 「S32 Configuration Tools > インポート > Import Configuration (*.mex)」オプションを使って.mexをインポートしてみてくださいしかし、RTD 2.0.0以降は主にS32CTでエラーが発生し、手動で移植する方が良い解決策だと感じています。 よろしくお願いします、 ジュリアン Re: Don't support S32K344's PlatformSDK_S32K3_2022_03 version こんにちは、 @Jimmybai さん、 RTDをプロジェクトに添付しましたか? よろしくお願いします、 ジュリアン
View full article
Pending HSE response I would like to inquire if there have been previous instances where the HSE response remained pending and did not arrive during an OTA update with the S32K312 MCU. Additionally, please confirm under what circumstances the HSE response might become pending. Re: Pending HSE response We are not aware of a known S32K312 OTA issue that causes HSE services to remain permanently pending. In general, every HSE service request should return a response. If no response is received, it may indicate that the HSE firmware encountered a fatal error and entered shutdown mode. In this case, we recommend checking the MU GSR register for diagnostic information. Possible causes include invalid service parameters, invalid memory addresses, XRDC access violations, ECC errors, clock or initialization issues, resource conflicts, or other fatal HSE internal errors. To help investigate, please provide the HSE FW version, the specific HSE service being executed, the service descriptor, and the MU status registers (FSR/GSR) when the issue occurs.
View full article
激活码过期 tem DescriptionS32 Design Studio for ARM v2018 Order NumberS32-DS-ARM_v2018_169264627 您能帮我延长许可证的有效期吗? 激活码EBF4-DE52-80C0-FD65 非常感谢。 Re: 激活码过期 Hi,  your S32DS license has been extended. 
View full article
NXPRDLIB_REM_GEN_INTFS 用法 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好。 我想知道 恩智浦读取器库 中NXPRDLIB_REM_GEN_INTFS定义的确切用途是什么。 据我观察,如果定义了软件 API 接口,则会在项目中构建该接口;否则,它会被某种二进制等效代码所取代,因为那样的话就只有函数原型可用了…… 这样对吗?如果是这样,二进制库在哪里?选择二进制而非软件 API 的优缺点是什么? 先感谢您, 佩佩 NFC读卡器库 Re: NXPRDLIB_REM_GEN_INTFS usage @stephanie_m 这是 Doxygen-Doku 的一个 bug: /* 调试版本模式 */ /*#define NXPBUILD__PH_DEBUG*/ /**< DEBUG 版本定义 */ #define NXPRDLIB_REM_GEN_INTFS 因此,正确答案尚未揭晓…… Re: NXPRDLIB_REM_GEN_INTFS usage <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好, 根据读取器库的 API 文档,您看到的这个定义是用于版本调试目的的。 此致, 埃斯特法尼亚 Re: NXPRDLIB_REM_GEN_INTFS usage <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 您好,Estephania,感谢您的关注。 例如,从 PN7462AU-FW_v05.21.00_Full 文件根目录开始,该定义已在某些 NFC 阅读器库示例中启用: $ grep -r NXPRDLIB_REM_GEN_INTFS NfcrdlibEx* NfcrdlibEx4_MIFAREClassic/intfs/ph_NxpBuild_App.h:#define NXPRDLIB_REM_GEN_INTFS NfcrdlibEx5_ISO15693/intfs/ph_NxpBuild_App.h:#define NXPRDLIB_REM_GEN_INTFS NfcrdlibEx7_EMVCo_Polling/intfs/ph_NxpBuild_App.h:#define NXPRDLIB_REM_GEN_INTFS NfcrdlibEx9_NTagI2C/intfs/ph_NxpBuild_App.h:#define NXPRDLIB_REM_GEN_INTFS 在某些PN7462AU PSP示例中也是如此: $ grep -r NXPRDLIB_REM_GEN_INTFS PN7462AU* PN7462AU_ex_phExMain/inc/APP_NxpBuild.h:#define NXPRDLIB_REM_GEN_INTFS PN7462AU_ex_phExVCom/inc/APP_NxpBuild.h:#define NXPRDLIB_REM_GEN_INTFS 而且在 NFC 阅读器库的许多源代码中都有所验证: $ grep -r NXPRDLIB_REM_GEN_INTFS NxpNfcRdLib/ NxpNfcRdLib/comps/phacDiscLoop/src/phacDiscLoop.c:#ifndef NXPRDLIB_REM_GEN_INTFS NxpNfcRdLib/comps/phacDiscLoop/src/phacDiscLoop.c:#endif /* NXPRDLIB_REM_GEN_INTFS */ NxpNfcRdLib/comps/phalFelica/src/phalFelica.c:#ifndefNXPRDLIB_REM_GEN_INTFS NxpNfcRdLib/comps/phalFelica/src/phalFelica.c:#endif /* NXPRDLIB_REM_GEN_INTFS */ NxpNfcRdLib/comps/phalI18000p3m3/src/phalI18000p3m3.c:#ifndefNXPRDLIB_REM_GEN_INTFS NxpNfcRdLib/comps/phalI18000p3m3/src/phalI18000p3m3.c:#endif /* NXPRDLIB_REM_GEN_INTFS */ (……) 顺祝商祺! 佩佩 Re: NXPRDLIB_REM_GEN_INTFS usage <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好, 你使用的是哪个版本的库?请问您能否提供相关信息以及您看到此定义的文件? 我在 API 文档和库中都找不到您提到的定义,所以如果您能提供给我,将对我帮助很大。 问候, 埃斯特法尼亚
View full article
TEF82xx 低レベルドライバーのビルド問題 こんにちは、 TEF82xx API Low Level ドライバ RFP9.3.0 20240920_PRODをビルドして、含まれている例を実行しようとしているのですが、問題が発生しています: ソースファイルが見つからない:src/plf_sys.c そして、このファイルは本当に見つからないのです。他のいくつかの例と同様に (plf_cap.c、plf_crc.c、plf_hio.c、bc_api\bc_api_src\plf\CMakeLists.txt で必要とされるものなど。これらのファイルはどこで見つけられますか? Re: TEF82xx Low Level Drivers build issue こんにちは、 はい、おっしゃる通りです。TEF82xx API Low Level ドライバ RFP9.3.0 20240920_PROD.zipパッケージにはそのファイルが見当たりません。 他のパッケージからのものに違いない。名前plf_sys.cプラットフォームを指している可能性が高いです。おそらくドライバはOSからのものだと想定しているのでしょう。 TEF82xx API 低レベルドライバ RFP9.3.0 20240920_PROD\TEF82xx_API_RN_V9.3.0.pdf ドキュメントにはそれ以上の情報は見つかっていません。 よろしくお願いいたします。 ピーター Re: TEF82xx Low Level Drivers build issue こんにちは、 はい、おっしゃる通りです。TEF82xx API Low Level ドライバ RFP9.3.0 20240920_PROD.zipパッケージにはそのファイルが見当たりません。 他のパッケージからのものに違いない。名前plf_sys.cプラットフォームを指している可能性が高いです。おそらくドライバはOSからのものだと想定しているのでしょう。 TEF82xx API 低レベルドライバ RFP9.3.0 20240920_PROD\TEF82xx_API_RN_V9.3.0.pdf ドキュメントにはそれ以上の情報は見つかっていません。 よろしくお願いいたします。 ピーター
View full article
IMX6Q U-Boot こんにちは、私はIMX6qプロセッサを搭載したカスタムカメラを持っています。 古いブートローダーと古いカーネル上で動作するファームウェアを持っています。 ブートローダーとカーネルをアップデートする必要があります。 しかし、カーネルの読み込み段階を突破できません。 UARTログは常に空です。 助けてください。 Re: IMX6Q U-BooT こんにちは、 @CAT5000さん。 お元気でお過ごしのことと思います。 現在のBSPバージョンと新しいBSPバージョンを指定してください。 また、コンソールで定義されているUARTに関連するソフトウェアの変更もあります。 よろしくお願いいたします。 サラス。 Re: IMX6Q U-BooT こんにちは! 実は、プロセッサを最後のBSPバージョンに移植するためのガイドがあります。 UG10165 (i.MXポーティングガイド)をご覧ください。 U-bootで行う必要のある変更点について説明します。 また、Sabreボードをお持ちなら、Embedded Linux for i.MXアプリケーション・プロセッサ から最終版の事前コンパイル済みイメージをダウンロードして、ボードにフラッシュするだけで済みます。 よろしくお願いします、 サラス。 Re: IMX6Q U-BooT 動作するブートローダーバージョン U-Boot 2018.03 (2021年4月22日 04:17:10 -0400) CPU:Freescale i.MX6Q rev1.3 996 MHz(動作周波数は792 MHz) CPU:オートモーティブ温度グレード(-40°Cから125°C)で30°Cに対応 リセット原因:POR(POR) モデル:Freescale i.MX6 クアッドSABERスマートデバイスボード ボード:MX6-SabreSD ウォッチドッグ有効 DRAM:2 GiB PMIC:PFUZE100!DEV_ID=0x10 REV_ID=0x21 MMC: FSL_SDHC: 0、FSL_SDHC: 1、FSL_SDHC: 2 MMCから環境を読み込んでいます... カードが電圧に反応しませんでした 私のボードはSabreSDを搭載したリファレンスボードです。 回路図とデータは全て揃っています 私はこういう作業は得意ではないのですが、新機能を試すためにファームウェアをアップデートしたいと思っています。
View full article
在 FRDM-K64F 上使用 MCUxpresso 25.6 时出现未定义的 SD 卡符号 您好, 我无法让SD卡软件正常运行。 我只需要在开机时加载一些项目,不需要对 SD 卡进行其他主动管理,虽然以后可能需要记录日志。 我尝试使用数据类型 sd_card_t,但出现“未知类型名称”错误。 我之前已经包含了 fsl_sd.h和 fsl_sdhc.h。但是当我这样做时,两个地方都出现了多个函数重复定义的错误信息。所以我认为我们不需要 fsl_sd.h。它甚至不在我的 SDK 中,所以对于最初的多重定义错误,我从 GitHub 下载了这两个文件。我现在有了 fsl_sdhc.h我从 SDK 中获取了资源,但仍然收到“未知类型名称”消息。毋庸置疑,我发现 SD 卡示例非常难用! 非常感谢您的帮助! Re: Undefined SD Card symbols using MCUxpresso 25.6 on FRDM-K64F 嗨@ve3id 感谢您的帖子。 请管理项目中的 SDK 元器件,并添加 drivers->sdhc 和 中间件->memories->SDMMC Stack->SD sdcard_polling 示例中包含了以下元器件: 要进入 SDK 元器件管理界面,您需要右键单击项目,然后转到“SDK 管理”->“管理 SDK 元器件”。 请告诉我这样是否解决了问题。 Re: Undefined SD Card symbols using MCUxpresso 25.6 on FRDM-K64F 谢谢你的快速回复,卡洛斯,但我已经这样做了,所以也许还有其他办法?这是我的SD卡管理窗口: Re: Undefined SD Card symbols using MCUxpresso 25.6 on FRDM-K64F 嗨@ve3id 谢谢你的解释。 请问您使用的是哪个SDK版本? 我用 2.11.0 版本试过了,但我这边无法重现这个问题。 Re: Undefined SD Card symbols using MCUxpresso 25.6 on FRDM-K64F 我正在使用SDK_ 2.11.0_ FRDM-K64F 我卸载了它,然后使用“下载和安装 SDK”选项卡构建并下载了相同版本的新版本,但仍然遇到同样的问题。 谢谢! 奈杰尔
View full article
NVT4857UKAZ 的替代零件 这与软件的直接关系不大,但我们最近发现NVT4857UKAZ已经停产,并且没有引脚兼容的替代零件可用。由于 SD 卡支持是我们基于 i.MX95 的设备所必需的功能,因此我们正在努力了解在这种情况下有哪些替代方案。您能否就可能的替代方案或设计方案提出一些建议? Re: Alternative part for NVT4857UKAZ 您好! 您可以参考NVT4858作为替代品。 但是请注意,NVT4858 不是直接替代产品。因此,为了在您的应用中适应新设备,可能需要对硬件和软件进行修改。 我们建议仔细审查规范和设计要求,以评估迁移的影响。 希望这能帮到你! Re: Alternative part for NVT4857UKAZ 您好! 您可以参考NVT4858作为替代品。 但是请注意,NVT4858 不是直接替代产品。因此,为了在您的应用中适应新设备,可能需要对硬件和软件进行修改。 我们建议仔细审查规范和设计要求,以评估迁移的影响。 希望这能帮到你!
View full article