FreeMODBUS
A portable MODBUS ASCII/RTU and TCP implementation
A portable MODBUS ASCII/RTU and TCP implementation
The initial port was done with the Mega168 Mini Module from Embedit Mikrocontrollertechnik. It features a 8Bit AVR ATMega168 controller with 16KByte Flash, 1KByte SRAM and 512Byte EEPROM. The development toolchain used is WinAVR. Since version 1.0 Freemodbus also supports the ATMega8, ATMega32, ATMega168 and ATMega169 microcontrollers. In addition it includes support for the RS485 driver DS75176. The files for this port can be found in /demo/AVR
Depending upon the selected functions and transmission modes (ASCII/RTU) the following resources are used:
Module | Code | RAM (static) |
---|---|---|
Modbus RTU (Required [1]) | 1456Byte | 266Byte |
Modbus ASCII (Optional) | 1222Byte | 16Byte |
Modbus Functions [2] | 1602Byte | 34Byte |
Modbus Core (Required) | 608Byte | 75Byte |
Porting Layer (Required) | 704Byte | 7Byte |
[1]: Includes a special implementation of the CRC16 calculation algorithm to use values from the flash memory.
[2]: All supported Modbus functions compiled in.