Який показник зменшення швидкості роботи для 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) викликає додатковий шум EMI та дзвін. Наявність повільних переходів (SLEW_OFF) зменшує EMI, але зменшує максимальну корисну частоту зв'язку. Це компроміс.
Тім

@ gbarry: Ах, так що при зниженому контролі швидкості вимкнення сигналу наближається до квадратних хвиль, наскільки UC може це зробити. Зі швидкісним регулюванням швидкості на хвилі високі / низькі переходи є більш похилими (= менш вертикальними), ніж вони були б інакше?
angelatlarge

1
Це правильно, хоча я не впевнений, наскільки драматично це на PIC (я повинен це перевірити). Історична примітка: специфікація RS232 мала обмежене обмеження швидкості, тому хтось вийшов з чіпом драйвера, який мав приємні вихідні сигнали нахилу. І тоді ми всі почали використовувати швидші та швидкіші швидкості передачі в
секунду,

1
Через три роки у мене виникло те саме питання, але я його фактично виміряв. Для подальшої довідки, на PIC16F1454 з 4,7 К підтягуваннями та одним веденим на шині час падіння становить 2,9 нс без обмеження швидкості холостого ходу (можливо, обмежений моїм зондом 150 МГц) та 151 нс з обмеженням швидкості нахилу. Це не впливає на час підйому.
труба
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.