У статті розглянуто особливості організації та принципи роботи послідовних інтерфейсів в АЦП і ЦАП.
Що необхідно знати, щоб правильно вибрати АЦП із послідовним інтерфейсом?
Наскільки мені відомо, перетворювачі з послідовним інтерфейсом виконуються в мініатюрних корпусах і дозволяють зменшити розміри друкованої плати пристрою, що проєктується на їх основі.
Імон Неш
Розглянемо, чим відрізняється АЦП із послідовним інтерфейсом від перетворювача з паралельним інтерфейсом. На рис. 1 показано сполучення 8-канального 12-розрядного АЦП AD7890 із послідовним портом цифрового сигнального процесора ADSP-2105. Крім того, на цьому ж рисунку наведено часову діаграму обміну даними між перетворювачем і DSP. Результат перетворення у вигляді 12-розрядного коду передається по однопровідному каналу в сигнальний процесор. У передаваному коді є три додаткові біти, що ідентифікують код номера вибраного каналу АЦП. Для синхронізації такої передачі використовуються тактові імпульси SCLK, які формуються, як правило, сигнальним процесором. У деяких випадках тактові імпульси можуть формуватися безпосередньо АЦП. Іноді DSP може формувати додаткові сигнали, наприклад, TFS/RFS початку перетворення або тривалості циклу перетворення, як показано на рис. 1.
У наведеному на рис. 1 прикладі послідовний порт DSP використовується для програмування внутрішнього 5-розрядного регістра АЦП. Кожен із розрядів цього регістра відповідає за певну функцію, наприклад, за вибір номера каналу, переведення в економічний режим, запуск циклу перетворення тощо. Це свідчить про те, що послідовний інтерфейс між АЦП і DSP повинен бути двонаправленим.
АЦП із паралельним інтерфейсом підключений безпосередньо або через буфер до шини даних сигнального процесора. Організація такого інтерфейсу між АЦП AD7892 і сигнальним процесором ADSP-2101 показана на рис. 2.
У момент завершення циклу перетворення АЦП виставляє сигнал переривання на лінію переривання DSP і за цим сигналом код перетворення записується в пам’ять сигнального процесора. Ключовою відмінністю АЦП із послідовним інтерфейсом від АЦП із паралельним інтерфейсом є кількість ліній зв’язку між перетворювачем і DSP. Кількість виводів ІМС АЦП із послідовним інтерфейсом мінімальна, що дозволяє виконати мікросхему АЦП і ЦАП у корпусі з вісьмома виводами в мініатюрному виконанні. Тому використання АЦП із послідовним інтерфейсом завдяки мініатюрному корпусу та мінімальній кількості міжз’єднань на друкованій платі дозволяє загалом зменшити розміри пристрою, що проєктується на основі такого АЦП.


Як краще спроєктувати пристрій, у складі якого використовуються віддалені від процесора ЦАП?
Перш за все, необхідно вибрати тип ЦАП із послідовним або паралельним інтерфейсом. Якщо вибраний ЦАП із паралельним інтерфейсом, то всі перетворювачі повинні бути підключені до шини, як це показано на рис. 3. Для запису коду в кожен ЦАП використовується код адреси і сигнал Write, а також кілька керуючих сигналів. Недоліком такої структури є паралельна шина з великою кількістю провідників, що об’єднує розподілені у просторі ЦАП. У той час як розподілені ЦАП із послідовним інтерфейсом об’єднуються в систему за допомогою двох або кількох провідників, ЦАП із послідовним інтерфейсом підключений до послідовного порту процесора, який вибирає потрібний ЦАП за допомогою сигналу Chip Select.
Якщо в системі використовується кілька ЦАП, слід вибирати такі перетворювачі, які забезпечують каскадне підключення, як це показано на рис. 4. Кожен ЦАП у такій структурі має вихід SDO (Serial Data Out), який підключений до входу SDI (Serial Data In) наступного ЦАП. Сигнали LDAC і SCLK підключені паралельно до всіх віддалених ЦАП. Процесор звертається до кожного з ЦАП по одній лінії зв’язку, оскільки дані, що надійшли на вхід першого ЦАП, через N циклів з’являться на його виході та надійдуть на вхід другого ЦАП і т.д. У такій системі немає необхідності використовувати декодувальний пристрій, однак до її недоліків слід віднести велику довжину кодового потоку даних і суттєві затримки в надходженні даних до об’єднаних у послідовний ланцюжок перетворювачів. Для зміни стану будь-якого ЦАП у такій системі використовується кодове слово максимальної довжини.


Якщо перетворювачі з послідовним інтерфейсом настільки економічні, чому вони не завжди використовуються в портативних пристроях?
Основним недоліком послідовного інтерфейсу є невисока швидкодія. Для запису даних у ЦАП із паралельним інтерфейсом необхідний один імпульс, тоді як для запису тих самих даних у ЦАП із послідовним інтерфейсом необхідно щонайменше N імпульсів, де N — розрядність ЦАП. Процесору потрібно багато часу для обміну даними з ЦАП через послідовний інтерфейс. Продуктивність такого каналу, як правило, не перевищує 500 тисяч вибірок за секунду.
Якщо в 8-розрядному процесорі відсутній послідовний порт, чи можна підключити до нього 12-розрядний АЦП із послідовним інтерфейсом типу AD7893?
Для цього достатньо використовувати зовнішній зсувний регістр, який завантажується послідовно й асинхронно, приймаючи дані з АЦП, а потім паралельно записує їх у процесор. Однак, якщо таке рішення виявиться надлишковим, підключити багаторозрядний АЦП із послідовним інтерфейсом через паралельний порт DSP можна як однорозрядний АЦП із паралельним інтерфейсом. У цьому випадку вихід АЦП SDATA підключається до однієї з ліній (наприклад, лінії DO) паралельного порту процесора, як показано на рис. 5. За допомогою певної декодувальної логіки дані вводяться в пам’ять процесора. Для цього використовуються 12 команд читання (за кількістю розрядів порозрядного АЦП), і всі розряди в процесорі утворюють одне 12-розрядне слово. Це малоефективне сполучення АЦП і процесора, однак, якщо процесор швидкий, а АЦП повільний, таке сполучення може бути використане.

В останньому прикладі (рис. 5) запуск циклу перетворення АЦП здійснюється за сигналом процесора Write. Наскільки це правильне рішення?
Таке рішення можна використовувати при одиничних перетвореннях, однак якщо запуск потрібно повторювати періодично, то сигнал Write використовувати не слід через досить велике фазове тремтіння такого сигналу. Так, наприклад, при фазовому тремтінні сигналу запуску АЦП 1 нс відношення сигнал/шум 12-розрядного АЦП на частоті вхідного сигналу 100 кГц становитиме лише 60 дБ (тобто еквівалентно 10 ефективним розрядам).
Коли слід застосовувати АЦП з асинхронним послідовним інтерфейсом?
Асинхронний обмін даними між пристроями не потребує синхроімпульсів. Кожен із таких приладів має власний формат даних, включаючи швидкість передачі. Для позначення початку та кінця передачі даних використовуються біти start і stop. У кодовій посилці для виявлення збоїв і помилок можуть міститися біти перевірки парності. На рис. 6 показано сполучення аналого-цифрового інтерфейсу AD1B60 з асинхронним COM-портом ПК. Це трипровідний двонаправлений інтерфейс (лінія «землі» не показана). Асинхронний зв’язок зручний у випадку, якщо обмін даними відбувається спорадично. При цьому біти start і stop включені до кожної кодової посилки, і будь-який прилад у будь-який час може ініціювати обмін даними. Перевагою такого сполучення є мінімізація службових сигналів обміну даними.

Чому в деяких технічних описах АЦП із послідовним інтерфейсом рекомендується використовувати синхронізувальні послідовності імпульсів із перериванням?
Як правило, в АЦП із послідовним інтерфейсом зовнішні синхроімпульси використовуються тільки в момент передачі даних від перетворювача до процесора. У режимі аналого-цифрового перетворення ці імпульси не використовуються. Однак у низці таких АЦП зовнішні синхроімпульси беруть участь і в самому процесі перетворення, тоді слід використовувати безперервну послідовність тактових синхроімпульсів.
Як забезпечується сумісність АЦП з інтерфейсами SPI та MICROWIRE?
Інтерфейси SPI (Serial Peripheral Interface) і MICROWIRE — це стандартні послідовні інтерфейси розробки компаній Motorola та National Semiconductor відповідно.
Більшість АЦП із синхронним послідовним інтерфейсом легко сполучаються з інтерфейсами SPI та MICROWIRE. Однак у низці випадків необхідно використовувати додаткові логічні ІМС, рекомендації щодо організації таких сполучень містяться в технічних описах (data sheet).
Як можна пояснити таке: при зміні вхідного сигналу АЦП мікроконтролер зчитує одне й те саме число FFF?
Є безліч причин такої несправності. Починати потрібно з перевірки часової діаграми обміну даними між АЦП і контролером. Для цього слід скористатися логічним аналізатором або багатоканальним осцилографом. Діаграма обміну даними наведена на рис. 7. Насамперед потрібно переконатися в наявності команди CONVST (Start Conversion command — команди початку перетворення).
Часто помилково змінюють полярність цієї команди. Крім того, тривалість цієї команди повинна бути не менше 50 нс. Цим самим вимогам повинні відповідати команди процесора Write і Read. Якщо процесор виробляє коротші команди, необхідно програмним шляхом збільшити їхню тривалість. Потрібно переконатися, що цикл перетворення завершений, перш ніж переходити до зчитування даних. Як правило, перетворювач виробляє команду EOC (End of Conversion — кінець перетворення). Ця команда надходить на лінію переривання процесора, і необхідно переконатися, що вона має потрібну полярність і тривалість. Якщо процесор не реагує на команду переривання, необхідно перевірити програму обробки переривань. Також необхідно перевірити наявність синхроімпульсів SCLK.

Чому формат даних на виході АЦП не завжди відповідає необхідному значенню?
Цьому є багато пояснень. По-перше, вихідні дані можуть бути представлені прямим або додатковим кодом. Якщо процесор не працює з додатковими кодами, необхідно попередньо перетворити їх у прямий двійковий код. По-друге, дані зчитуються з АЦП по передньому фронту тактового імпульсу. Необхідно переконатися, що в такому самому режимі працює і АЦП. Помилка в половину шкали свідчить про те, що старший біт не був зчитаний. Такі самі помилки трапляються при записі коду в ЦАП через послідовний інтерфейс. У цьому випадку через помилку запису максимальному коду відповідає напруга, що дорівнює половині максимального значення. По-третє, цифрові сигнали, що передаються АЦП, повинні бути незашумленими. Різного роду перерегулювання можуть призвести до помилки зчитування. Такий синхросигнал із перерегулюванням на вході АЦП з одним джерелом живлення показаний на рис. 8.
Такий синхросигнал із перерегулюванням на вході АЦП з одним джерелом живлення показаний на рис. 8. Цей сигнал, як правило, керує pnp-транзистором, причому підкладка p-типу цього транзистора підключена (усередині кристала) до потенціалу землі. Наявність негативного викиду може призвести до руйнування цього транзистора через проникнення викиду через паразитний діод (рис. 8) на позитивну підкладку. Однак навіть якщо руйнування транзистора драйвера не відбудеться, перерегулювання може призвести до появи замість одного кількох тактових імпульсів. Таке тремтіння може призвести до помилкового зчитування даних.

Схема зменшення впливу перерегулювання, що являє собою фільтр нижніх частот на шляху проходження цифрових сигналів до керувальних входів АЦП, наведена на рис. 9. Величина опору резистора становить, як правило, 50 Ом, а ємність конденсатора — 10 пФ.

Яким чином параметри інтерфейсу впливають на відношення сигнал/шум?
У зв’язку з тим, що на входи АЦП надходять як аналогові, так і цифрові сигнали, необхідно ретельно організувати заземлення АЦП. Цифрова та аналогова «земляні» шини повинні бути розділені. Їх об’єднання допускається в одній точці на друкованій платі поблизу джерела живлення. Для випадку, коли до земляної шини потрібно підключити кілька ІМС на друкованій платі й водночас уникнути появи контуру земляної шини, можна запропонувати рішення, наведене на рис. 10. Насамперед до шини «аналогова земля» повинні бути підключені земляні виводи перетворювача (АЦП або ЦАП). Підключення до «аналогової землі» земляного виводу цифрових вузлів ІМС є меншим злом, ніж його підключення до «цифрової землі», яка зашумлена, що може призвести до проникнення цих шумів в ІМС перетворювача. На рис. 10, крім того, показаний буферний регістр, який ізолює виводи послідовного інтерфейсу АЦП від зовнішньої послідовної шини, рівень шумів у якій може бути досить високим. Якщо перетворювач знаходиться в безпосередній близькості до процесора, то буферний регістр можна не використовувати. У випадку, якщо в АЦП використовується одне джерело живлення для аналогових і цифрових вузлів, організація шини живлення може бути виконана відповідно до рис. 10, причому ізоляція аналогової шини живлення від цифрової виконана за допомогою дроселя. Крім того, кожна шина має власний розв’язувальний конденсатор.
Ємність конденсатора становить, як правило, 0,1 мкФ. Якщо дозволяють розміри друкованої плати, необхідно до шини живлення підключити ще електролітичний конденсатор ємністю не менше 10 мкФ (один конденсатор на ІМС перетворювача).


Яким чином можна використовувати оптоізолятор між АЦП із послідовним інтерфейсом і процесором?
Сполучення АЦП AD7714 і мікроконтролера 68HC11 через три оптопари показано на рис. 11. Недоліком такого включення є невисока швидкість наростання фронтів імпульсних сигналів на виході оптопар. Для підвищення крутизни фронтів на виході оптопар можуть бути використані тригери Шмітта.
Висновок
На завершення зазначимо, що в цій статті були детально розглянуті особливості сполучення перетворювачів даних із послідовним інтерфейсом і процесорів (контролерів або DSP). Вказані основні помилки, що трапляються при організації такого сполучення, наведені рекомендації щодо розв’язки ланцюгів живлення та «земляної» шини.