Skip to main contentSkip to footer

Modbus TCP/IP Server Chip – IS4350

Modbus TCP/IP server chip with I2C interface. Add Modbus TCP/IP to any microcontroller with standard I2C reads and writes, without developing any TCP/IP or Modbus stack.

Modbus TCP/IP Server:
– Holding Registers: 65,500
– Function codes: 03, 06 and 16
– Port 502, one client connection
– IP address: DHCP (default) or static

Ethernet:
– Speed: 10/100 Mbps
– PHY: external LAN8742A, connected through RMII
– MAC address: locally administered or from an AT24MAC402 EEPROM

I2C Interface:
– Slave addresses: 24, 25, 26 (7-bit, ADR pin)
– Speeds: 100 kHz, 400 kHz, 1 MHz
– Pull-ups: 3.3 V or 5 V
– No libraries required

Safety:
– Optional I2C CRC protection
– Optional I2C watchdog timer
– Fail-safe power-up
– Firmware updates with security patches

Chip:
– Package: LQFP64 (10 Ɨ 10 mm)
– Power supply: 3.3 V
– Operating temperature: āˆ’40 °C to +85 °C

In stock

Volume pricing

Qty. Price
1 - 9 $6.83
10 - 24 $6.76
25 - 99 $6.35
100 - 249 $5.40
250 - 499 $5.12
500 - 959 $4.64
960 - 2879 $4.03
2880 + $3.82
SKU: IS4350-L64

Modbus TCP/IP Server Chip for Your Microcontroller

The IS4350 is a Modbus TCP/IP server chip that implements the complete Modbus TCP/IP server stack. Your microcontroller reads and writes its 65,500 Holding Registers over I2C. At the same time, any Modbus client on the network reads and writes the same registers over Ethernet. The chip connects to the network through an external LAN8742A Ethernet PHY.

Implementing Ethernet and Modbus TCP/IP usually takes a lot of engineering and validation time. As a result, this Modbus TCP/IP server chip lets you skip that work and release your product sooner. In addition, it needs no specialized libraries: standard I2C reads and writes are enough.

Main Advantages

  • No TCP/IP or Modbus stack to develop, test or maintain.
  • Simple integration: standard I2C reads and writes, no libraries required.
  • Lower microcontroller load: no Ethernet interrupts, timers or stack memory.
  • Only two microcontroller pins: SDA and SCL.

Applications

  • Sensors and transmitters: make temperature, pressure, flow or level readings available to a PLC or SCADA system.
  • Actuator and motor controllers: receive set-points and commands from a PLC over Ethernet.
  • Remote I/O modules: map digital and analog inputs and outputs to Holding Registers.
  • Energy meters and power monitors: publish voltage, current, power and energy values.
  • Building automation and HVAC controllers: connect your controllers to the building management system.
  • Data acquisition and test equipment: share your measurements with any PC or HMI on the network.

How the Modbus TCP/IP Server Chip Works

The IS4350 has two communication interfaces: an I2C interface for your microcontroller and an RMII for the LAN8742A Ethernet PHY. Essentially, it works as an I2C memory with a built-in Ethernet and Modbus TCP/IP stack. Its memory map therefore appears on the network as Holding Registers.

The Holding Registers act as a shared memory between the Modbus client and your microcontroller. In a motor controller, for example, the PLC writes the desired motor speed to one Holding Register. Your microcontroller reads it over I2C and writes the measured power consumption to another register, which the PLC then reads.

  • I2C (host interface): 16-bit register addresses and 16-bit registers, sent most significant byte first. In addition, your microcontroller must support I2C clock stretching.
  • RMII: connects the IS4350 to an external LAN8742A 10/100 Ethernet PHY.
  • INT pin (optional): sends a pulse of about 100 ms whenever a Modbus client writes a register. Your firmware can then react without polling.
  • MAC_SCL and MAC_SDA (optional): read a unique EUI-48 MAC address from an AT24MAC402 EEPROM.

Starting the Modbus Server

At power-up, the Modbus server stays offline until your firmware starts it. First, write valid data to your Holding Registers. Then, write 1 to the GO_ONLINE register (address 65513) and wait until the STATUS register (address 65514) reports 5: the server is ready and listening on port 502.

By default, the IS4350 uses DHCP and a MAC address generated from its serial number. Consequently, no network configuration is needed. You can also set a static IP address, subnet mask and gateway over I2C or Modbus.

Safety Features

The Modbus TCP/IP server chip also includes several safety mechanisms for industrial products:

  • I2C CRC protection (I2C-CRC): when you tie the I2C_CRC pin to 3.3 V, a CRC-16/Modbus checksum protects every I2C read and write. The chip then discards any write with a wrong CRC.
  • I2C watchdog timer (I2C-WDT): start the server by writing 2 instead of 1 to GO_ONLINE. If your microcontroller stops refreshing it for 500 ms, the chip stops the Modbus server. As a result, clients never read stale data.
  • Fail-safe power-up: the server never comes online by itself. It cannot publish data while your microcontroller is starting up or has failed.
  • Network recovery: if a wrong setting makes your device unreachable, hold the DEF pin high for 3 seconds. The chip then restores the default network configuration.
  • Firmware updates: keep the IS4350 up to date with security patches and new releases through the provisioning UART (PROV_RX and PROV_TX pins).

Hardware Design

The IS4350 is simple to integrate, because only the Ethernet section needs special attention on the PCB. Keep each RMII trace shorter than 15 mm, with 50 Ī© single-ended impedance. Then, route the MDI pairs between the LAN8742A and the magnetics with 100 Ī© differential impedance. The datasheet includes a complete schematic example with the IS4350, the LAN8742A, the magnetics and the RJ45 connector.

Key Features

  • Modbus TCP/IP server: 65,500 Holding Registers, function codes 03, 06 and 16, port 502, one client connection.
  • Ethernet: 10/100 Mbps, through an external LAN8742A PHY (RMII).
  • Network: DHCP (default) or static IP.
  • MAC address: locally administered (fixed, manual or random) or universally administered from an AT24MAC402 EEPROM.
  • I2C interface: 100 kHz, 400 kHz and 1 MHz, slave addresses 24, 25 and 26, pull-ups to 3.3 V or 5 V.
  • Safety: optional I2C CRC protection, I2C watchdog timer and fail-safe power-up.
  • Performance: about 216 to 270 Modbus requests per second in INACKS tests.
  • Single power supply: 3.3 V.
  • Package: LQFP64 (10 Ɨ 10 mm).
  • Industrial temperature range: āˆ’40 °C to +85 °C.

Quick Start with the Modbus TCP/IP Server Chip

  1. Design your board from the schematic example in the datasheet. Tie SPD and ADR to VSS to select 100 kHz and the I2C address 24.
  2. Connect SCL and SDA to your microcontroller. Add pull-up resistors to 3.3 V or 5 V (4.7 kΩ at 100 kHz).
  3. Read the CHIP_ID register (address 65522). It always returns 150, which confirms that the I2C communication works.
  4. Write your initial data to the Holding Registers. Then, write 1 to GO_ONLINE (address 65513) and wait until STATUS (address 65514) reports 5.
  5. Finally, read the IP address from registers 65501 to 65504. Then, connect any Modbus TCP client to that IP address on port 502.

Do you prefer not to design the Ethernet hardware? The IS4350-M1 module includes the IS4350, the LAN8742A PHY, the magnetics and an RJ45 connector, pre-designed and tested. It uses the same registers and the same I2C protocol, so your firmware works with both.

For the memory map, the I2C protocol, the schematic example and an Arduino example, see the IS4350 datasheet (ISDOC139).

This company and the products provided herein are developed independently and are not affiliated with, endorsed by, or associated with any official protocol or standardization entity. All trademarks, names, and references to specific protocols remain the property of their respective owners.

(This product includes the IS4350 chip. The LAN8742A Ethernet PHY and the other external components are not included.)

Documentation

Models

Modbus Clients Software

These external resources are not controlled or maintained by INACKS:

  • qModMaster: The qModMaster is a Modbus client software for Windows that enables you to connect to the IS4350 and read and write its Holding Registers.

Q: What is the IS4350 used for?

A: To add Modbus TCP/IP connectivity to any product with a microcontroller. Use it to build Modbus TCP/IP sensors and transmitters, actuator and motor controllers, remote I/O modules, energy meters, or building automation and HVAC controllers that a PLC, SCADA system, HMI or PC can read and control over Ethernet.

Q: Do I need a TCP/IP stack, a Modbus library or an Ethernet peripheral on my microcontroller?

A: No. The IS4350 implements the complete Modbus TCP/IP server and drives the Ethernet PHY itself. Your microcontroller only needs an I2C master that supports clock stretching. Any I2C driver can control it, for example the Arduino Wire library or the STM32 HAL.

Q: Which external components does the IS4350 need?

A: A LAN8742A Ethernet PHY, connected through RMII, with Ethernet magnetics and an RJ45 connector. The IS4350 also needs a 25 MHz crystal, decoupling capacitors and two 2.2 µF capacitors on its VCAP pins. The datasheet includes a complete schematic example and the RMII and MDI routing guidelines.

Q: Is there a ready-to-use module?

A: Yes. The IS4350-M1 module includes the IS4350, the LAN8742A PHY, the magnetics, ESD protection and an RJ45 connector on a pre-designed and tested board. It uses the same registers and the same I2C protocol, so your firmware works with both.

Q: How does my microcontroller exchange data with the Modbus client?

A: Through 65,500 Holding Registers (HOLD_0 to HOLD_65499) that work as a shared memory. Your microcontroller reads and writes them over I2C, and the Modbus client reads and writes the same registers over Ethernet. For example, your firmware writes a temperature to HOLD_0, and the PLC reads it with function code 03.

Q: Which Modbus function codes are supported?

A: 03 (Read Holding Registers), 06 (Write Single Register) and 16 (Write Multiple Registers). The server listens on port 502 and accepts one client connection at a time. It responds to any Unit Identifier; the recommended value is 255 (0xFF).

Q: How do I read and write a register over I2C?

A: As with an I2C EEPROM. Register addresses and register values are both 16-bit, sent most significant byte first. To write a register, send the two address bytes followed by the two data bytes. To read it, send the two address bytes, then a repeated START, and read two bytes. Leave a few milliseconds between consecutive I2C operations. The IS4350 datasheet includes a complete Arduino example.

Q: How do I start the Modbus server?

A: At power-up, the server is offline. First, write valid data to your Holding Registers. Then, write 1 to the GO_ONLINE register (address 65513) and wait until the low byte of the STATUS register (address 65514) reads 5: the server is ready and listening. Write 2 instead of 1 to enable the I2C watchdog timer.

Q: How does the IS4350 get its IP and MAC addresses?

A: By default, it uses DHCP and a locally administered MAC address generated from its serial number, so no network configuration is needed. You can also set a static IP address, subnet mask and gateway over I2C or Modbus, and you can set the MAC address manually or generate it randomly. For a globally unique EUI-48 address, connect an AT24MAC402 EEPROM to the MAC_SCL and MAC_SDA pins and set the MAC_CFG register to 3.

Q: What if a wrong network configuration makes my device unreachable?

A: Hold the DEF pin high for 3 seconds. The IS4350 restores the default network configuration (DHCP and the MAC address generated from the serial number) and restarts. In the final product, connect the DEF pin to a recessed push button to 3.3 V, so that nobody can press it by accident.

Q: Which microcontrollers are compatible?

A: Any microcontroller or microprocessor with an I2C master that supports clock stretching, such as Arduino, STM32 or ESP32. The I2C pins accept pull-ups to 3.3 V or 5 V, so 5 V microcontrollers need no level shifter.

Q: Can I connect several IS4350 chips to the same I2C bus?

A: Yes, up to three. The ADR pin selects the I2C address: 24 (VSS), 25 (1.65 V, with two 10 kΩ resistors) or 26 (VDD). On the network, each chip has its own IP address.

Q: Is the I2C communication protected against errors?

A: Optionally. Tie the I2C_CRC pin to 3.3 V to protect every I2C read and write with a CRC-16/Modbus checksum. The chip discards any write with a wrong CRC, and your firmware can verify every read with the I2C_READ_CRC register. Keep the CRC disabled during development until basic communication works.

Q: What happens if my microcontroller stops working?

A: If you start the server by writing 2 to GO_ONLINE, the I2C watchdog timer is active: your firmware must write 2 again at least every 500 ms. Otherwise, the IS4350 stops the Modbus server automatically, so clients never read stale data. In addition, the server never comes online by itself at power-up.

Q: What power supply does it need?

A: A single 3.3 V supply (2.7 V to 3.6 V). The IS4350 draws up to 90 mA at TJ = 25 °C and up to 118 mA at TJ = 85 °C, so add the LAN8742A current when you size your regulator. Decouple each VDD pin with a 100 nF ceramic capacitor, as shown in the datasheet.

Q: Are CAD models available?

A: Yes. The Documentation tab includes the STEP 3D model, and the KiCad symbol and footprint, which are also compatible with Altium Designer.

Q: What is included?

A: The IS4350 chip in an LQFP64 package. The LAN8742A Ethernet PHY and the other external components are not included.

Firmware Examples

Hardware Examples

Evaluation boards, Modules & other related products

Evaluation boards, modules, and accessories designed for fast prototyping and easy integration. Featuring standard interfaces and built-in transceivers, they simplify testing and development across platforms like Arduino, Nucleo, or Raspberry Pi. Ideal for adding RS485, RS232, or Ethernet functionality with minimal effort and maximum compatibility.

Have a question?

Fill out this field
Please enter a valid email address.
Fill out this field
You need to agree with the terms to proceed