я уже такой пост делал на сахаре, да что-то никто ничего не посоветовал, даже вроде как ни у кого такого не было.
в доке написано что I2C в SAM7 сделан чтоб читать всякий примитив типа EPROMов, но у меня он работает на связь с Mega128 в другом модуле, где-то 50 см кабеля между ними. не подумайте плохо, не я это придумал :))
SAM мастер, Mega - slave. Mega иногда не успевает за один битовый интервал убрать/положить байт, и делает "затяжку SCL", то есть держит эту линию в нуле. это как бы нормальное поведение для slave, но у SAMа от этого крышу рвёт и у него сбивается внутренний конечный автомат, в результате чего он начинает терять имульсы SCL и выдавать на линию неполные байты, иногда импульс SCL теряется полностью, а иногда некрасиво обрезается.
Atmel был сильно озадачен этим, я даже осциллограммы отправил им, хотя они нас любят и их инженер поддержки просто не вылазил от на с до этого случая.
В итоге пришлось сделать программную реализацию, таж и живём с тех пор.
Кто такое видел откликнитесь...