В общем вопрос в заголовке, но есть пара нюансов.
Гугл сразу показывает гитхаб и казалось бы - готово:
https://github.com/g4lvanix/I2C-slave-lib
https://github.com/g4lvanix/I2C-master-lib
Но я так и не смог подцепить их среде CodeVisionAvr, ругается компилятор.
А больше я толком ничего не нашёл (не исключаю, что искал плохо).
Находил несколько мануалов как поднять без библиотек все, но оно слишком мудрено и писалось в 2009-2012 годах, а некропостить как-то неправильно.
Коротко про проект:
2 атмеги328 мастер и слейв соответственно, у слейва свободны только 2 пина, притом любые (то есть или уарт, или i2c) мастер должен передавать ему 2 байта информации - 2 числа: номер ячейки и значение, которое нужно туда положить.
Мастер должен держать связь по уарт (для получения команд свыше) и иногда отправлять эти 2 числа слейву.
А еще опционально могут появиться 3 ацп модуля (или специальные микросхемы, или attiny44(или что-то подобное)) от них мастер должен получать значения по запросу.
Собствеенно поэтому и хочу i2c, чтобы все висели на одной шине.