Какова скорость нарастания для I2C?


10

Я настраиваю I 2 C на PIC18, используя встроенные функции компилятора C18, как описано в разделе 2.4 документации :

void OpenI2C2( unsigned char sync_mode,
    unsigned char slew );

Я не уверен, что я должен делать с slew. Я могу выбрать один из двух вариантов, определенных в i2c.h:

  • SLEW_OFF: Скорость нарастания отключена для режима 100 кГц
  • SLEW_ON: Скорость нарастания включена для режима 400 кГц

В таблице данных в регистре 15-1, стр. 257, эти два варианта объясняются более подробно:

  • 1 = управление скоростью нарастания отключено для режима стандартной скорости (100 кГц и 1 МГц)
  • 0 = управление скоростью нарастания включено для высокоскоростного режима (400 кГц)

Хотя я этого не понимаю - у меня есть пара вопросов:

  1. Что такое скорость нарастания?

  2. Для меня два варианта не имеют смысла - что если я захочу отключить частоту нарастания для 400 кГц и включить ее для 100 кГц? Почему это?

  3. Когда я должен выбрать SLEW_OFFи когда SLEW_ON?

pic  c  i2c  software  c18 

Ответы:


8

Скорость нарастания - это скорость, с которой сигнал изменяется от низкого к высокому или наоборот. Ограничивая этот резкий переход, вы можете уменьшить сигнал от отражений сигнала и ограничить перекрестные помехи между сигнальными линиями.

Однако он работает так, что при частоте 100 кГц скорость сигнала настолько низкая, что частота нарастания не имеет большого значения; на частоте 400 кГц вы можете исправить проблемную цепь, ограничив ее; но затем, когда вы достигаете 1 МГц, вам действительно нужны все скорости перехода, которые вы можете получить, и поэтому вам просто нужно выполнить хорошее согласование сигналов и более тщательно прокладывать маршруты.

Этот бит не делает ничего, кроме как включить или отключить функцию. Остальное просто совет. Скорости указаны в скобках, так как это всего лишь предложение.


Спасибо! Кажется, это хороший вариант - почему бы мне не использовать контроль скорости нарастания?

2
@CamilStaps - насколько я понимаю, похоже, вы неправильно прочитали ответ. Резкие переходы (SLEW_ON) вызывают дополнительный шум электромагнитных помех и звон. Медленные переходы (SLEW_OFF) уменьшают EMI, но уменьшают максимальную полезную частоту канала. Это компромисс.
Тим

@gbarry: Ах, так что при отключенном управлении скоростью нарастания сигнал настолько близок к прямоугольным волнам, насколько это может сделать ОК. При регулировании скорости нарастания на волне высокие / низкие переходы имеют больший уклон (= менее вертикальный), чем они могли бы быть?
angelatlarge

1
Это верно, хотя я не уверен, насколько драматично это на PIC (я должен проверить это). Историческая справка: спецификация RS232 имела ограничение скорости нарастания, поэтому кто-то предложил чип-драйвер с хорошими выходными сигналами с уклоном-у. А потом мы все начали использовать более быстрые и быстрые скорости передачи данных, поэтому мы не могли использовать этот чип ...
gbarry

1
Три года спустя, и у меня возник тот же вопрос, но я на самом деле его измерил. Для дальнейшего использования на PIC16F1454 с подтягиванием 4,7 тыс. И одним ведомым устройством на шине время спада составляет 2,9 нс без ограничения скорости нарастания (возможно, ограничено датчиком 150 МГц) и 151 нс с ограничением скорости нарастания. Это не влияет на время нарастания.
труба
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.