Показать сообщение отдельно
Старый 02.02.2017, 21:22   #5
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Ответ: MCP4725: максимальный сэмплрейт

Разобрался, почему не работал высокоскоростной I2C. Нужно было активировать режим High Speed. Судя по всему на частотах I2C до 1МГц чип MCP4725 работает и в обычном режиме без проблем, но если увеличивать частоту выше, то нужно переводить его в режим High Speed. В общем-то всё логично, потому что обычная частота для I2C - это 0.4МГц и чип вообще не обязан был работать на более высокой частоте без перевода в High Speed. Для полноты упомяну, что High Speed в контексте I2C - это 3.4МГц.

Теперь у меня проблема в том, что на вызов прерывания по завершению записи каждого байта уходит слишком много тактов и я всё равно не вписываюсь в нужные рамки. Без прерываний реализовать что-то вменяемое будет тяжело, поэтому буду экспериментировать дальше. Возможно вместо прерывания TWI буду использовать прерывание по совпадению таймера. Но это будет работать только если чип MCP4725 стабильно отвечает на операцию записи по фиксированным таймингам.
(Offline)
 
Ответить с цитированием