

The CANISO is a communication interface that integrates Controller Area Network (CAN) functionality with ISO standards for enhanced reliability and safety. It is designed to facilitate robust and efficient data exchange in demanding environments such as automotive, industrial automation, and medical systems. By combining the high-speed communication capabilities of CAN with the isolation and safety features of ISO standards, the CANISO ensures data integrity and protection against electrical noise and surges.








| Parameter | Value |
|---|---|
| Supply Voltage (Vcc) | 3.3V or 5V |
| Data Rate | Up to 1 Mbps (Classical CAN) |
| Isolation Voltage | 2500 VRMS |
| Operating Temperature | -40°C to +125°C |
| Bus Interface | CAN (ISO 11898-2 compliant) |
| Power Consumption | < 50 mW |
| Package Type | SOIC-8, SOIC-16, or DIP-8 |
| Pin Number | Pin Name | Description |
|---|---|---|
| 1 | Vcc | Power supply input (3.3V or 5V) |
| 2 | GND | Ground connection |
| 3 | TXD | Transmit data input from the microcontroller |
| 4 | RXD | Receive data output to the microcontroller |
| 5 | CANH | High-level CAN bus line |
| 6 | CANL | Low-level CAN bus line |
| 7 | ISO_GND | Isolated ground for CAN bus side |
| 8 | ISO_Vcc | Isolated power supply for CAN bus side |
Below is an example of how to use the CANISO with an Arduino UNO and an MCP2515 CAN controller module:
#include <SPI.h>
#include <mcp_can.h>
// Define the SPI CS pin for the MCP2515 module
#define CAN_CS_PIN 10
// Initialize the MCP_CAN object
MCP_CAN CAN(CAN_CS_PIN);
void setup() {
Serial.begin(9600);
// Initialize the CAN bus at 500 kbps
if (CAN.begin(MCP_ANY, CAN_500KBPS, MCP_8MHZ) == CAN_OK) {
Serial.println("CAN bus initialized successfully!");
} else {
Serial.println("CAN bus initialization failed!");
while (1); // Halt execution if initialization fails
}
// Set the CAN bus to normal mode
CAN.setMode(MCP_NORMAL);
Serial.println("CAN bus set to normal mode.");
}
void loop() {
// Example: Send a CAN message
byte data[8] = {0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08};
if (CAN.sendMsgBuf(0x100, 0, 8, data) == CAN_OK) {
Serial.println("Message sent successfully!");
} else {
Serial.println("Error sending message.");
}
delay(1000); // Wait 1 second before sending the next message
}
No Communication on the CAN Bus
Data Corruption
Overheating
Initialization Failure
Q: Can the CANISO be used with higher data rates (e.g., CAN FD)?
Q: What is the purpose of the isolated power supply?
Q: Can I use the CANISO in a 12V automotive system?
By following this documentation, users can effectively integrate the CANISO into their projects for reliable and isolated CAN communication.