В симуляции Verilog мне придется взаимодействовать с 64K I2C EEPROM от Microchip. Каждый раз, когда я получаю подтверждение от ведомого, я завожу свой SDA на высокий импеданс в течение заданного тактового периода. Теперь, чтобы получить данные от ведомого, должен ли я следовать тому же для SDA? Проще говоря, порты SDA должны быть переведены в состояние высокого импеданса?
Verilog: операция чтения I2C
comment
Вы можете найти лучший ответ на этот вопрос на electronics.stackexchange.com, я ожидаю, что они могут быть более опытными с I2C.
- person Tim   schedule 13.10.2012
Ответы (2)
В физической схеме I2C есть подтягивающие резисторы, которые переводят SCL и SDA в высокий уровень, когда их выходы находятся в состоянии высокого импеданса. Эквивалентом подтягивающего резистора в Verilog является TRI1. Это сделает линии определенными, а не плавающими, когда сигналы находятся в состоянии высокого импеданса.
person
mkstlwtz
schedule
22.10.2012
Вообще говоря, если линия SDA
имеет дизайн open-drain, вам не нужно ставить ее на высокий уровень. состояние импеданса (и, вероятно, вы не можете), но вы должны установить его в логическую «1». Но если это трехуровневый контакт ввода-вывода, тогда да, вы должны перевести его в высокий уровень. -Состояние импеданса, так как в противном случае вы можете повредить свои схемы.
person
Serge
schedule
13.10.2012