Енгинееринг Гуидес
И²Ц наспрам СПИ за сензоре притиска — изаберите праву магистралу или мрзите свој распоред касније
Изабрали сте сензор притиска. Знате домет, тачност, пакет. Затим видите две варијанте на страници за наручивање: И²Ц и СПИ. Исти сензор. Иста цена. Различита четири слова. Ево како да одлучите - са стварним бројевима, а не теоријом уџбеника.
Двоминутно освежење
Прескочите ово ако сте претходно повезали оба аутобуса. Ако нисте, ево довољно да пратите остатак чланка:
- жице: 2 — СДА (подаци) + СЦЛ (сат)
- Тип сигнала: Отворени одвод, високо повучен отпорницима
- Адреса: 7-битна адреса по уређају
- Смер: Халф-дуплек
- брзина: 100 кХз / 400 кХз / 1 МХз / 3,4 МХз
- Контрола: Мастер-инициатед; робови одговарају само када им се обраћа
- жице: 4 — МОСИ, МИСО, СЦЛК + 1× ЦС по уређају
- Тип сигнала: Пусх-пулл ЦМОС
- Адреса: Ништа — ЦС линија бира уређај
- Смер: Фулл-дуплек
- брзина: 1 МХз до 50 МХз
- Контрола: Мастер контролише сат; нема истезања сата
У овом тренутку можете помислити: "SPI is faster, so SPI wins, end of article." Не баш - брзина скоро никада није битна за сензор притиска. Ево зашто.
Аргумент о брзини који није битан
Типичан МЕМС сензор притиска очитава сваки пут 1 до 100 милисекунди — доминира време конверзије АДЦ-а, а не брзина магистрале. Чак и при 1 мс по узорку (1 кХз узорковање), гурате можда 48 бита по читању. То је 48 кбпс.
И²Ц на 400 кХз преноси ~320 кбпс након прекорачења. СПИ на 1 МХз преноси 1 Мбпс. Било једно је 7× до 20× брже него брзина преноса података сензора. Осим ако узоркујете на ултразвучним фреквенцијама — што нисте, јер се притисак не мења тако брзо — брзина магистрале је неважна. Сензор је уско грло, а не жице.
Закључак о брзини: није важно. АДЦ сензора је ограничавајући фактор. Одлучите по другим основама.
Број пинова: аргумент који је заправо важан на малим таблама
| Сценарио | Коришћени И²Ц пинови | Коришћени су СПИ пинови |
|---|---|---|
| 1 сензор | 2 (СДА+СЦЛ) | 4 (МОСИ + МИСО + СЦЛК + ЦС) |
| 2 сензора | 2 (заједнички аутобус) | 5 (заједнички аутобус + 2× ЦС) |
| 4 сензора | 2 (заједнички аутобус) | 7 (заједнички аутобус + 4× ЦС) |
Ако је ваш МЦУ СТМ32 са 80 ГПИО-ова — кога брига. Али на ЕСП32-Ц3 са 15 употребљивих ГПИО-ова који покрећу екран, БЛЕ, два дугмета и СД картицу — та 2 додатна пина за СПИ убод. И²Ц вам штеди пинове без обзира на то колико сензора дели магистралу.
Напомена: И²Ц вас кошта два пулл-уп отпорника. СПИ не кошта ништа. Два отпорника од 4,7 кΩ 0402 коштају укупно око 0,002 долара и заузимају 2 мм² простора на плочи — не ништа, али близу тога.
Закључак о пиновима: И²Ц побеђује када су ГПИО чврсти. Са МЦУ богатим пиновима, предност нестаје — одлучите о другим факторима.
Дизајн са више сензора: Где И²Ц заправо сија
Три сензора притиска на истој штампаној плочи — једна барометријска референтна, један ниво резервоара, један излаз пумпе. Са И²Ц: доделите сваком сензору различиту адресу, повежите СДА и СЦЛ паралелно, готово. Два трага. Три сензора. Нема додатних МЦУ пинова. Са СПИ: три одвојене ЦС линије на врху заједничког МОСИ/МИСО/СЦЛК — укупно шест жица.
пази: И²Ц уређајима су потребне јединствене адресе. Већина сензора притиска нуди тачно две адресе (игла причвршћена високо или ниско). То значи да имате два сензора на магистрали пре него што вам затреба И²Ц мултиплексер као што је ТЦА9548А — што додаје ~0,50 долара и неколико мм². СПИ нема такву границу; само додајте ЦС линију по сензору.
Закључак о мулти-сензору: И²Ц побеђује за једноставност ожичења до два идентична сензора. Осим тога, користите СПИ или И²Ц мук — ниједно није јасно боље, то је позив распореда.
Отпорност на буку: Оно где СПИ вуче напред
Сензори притиска високе резолуције мере промене од само 0,03 хПа — отприлике тежину комарца који слеће на ваш сто, преведено у електрични сигнал. У тој резолуцији, бука је битна.
И²Ц карактеристике буке
Линије отвореног одвода са пулл-уп отпорницима производе РЦ рампе ивице, а не чисте ЦМОС прелазе. Вредности повлачења су компромис: превише јак губи снагу; преслаб чини време пораста спорим и отвара прозор за спајање буке. У бучном окружењу — поред драјвера мотора, прекидачког регулатора или било чега са ПВМ — И²Ц може да поквари. Протокол нема уграђену детекцију грешака изван АЦК бита (неки сензори додају ЦРЦ бајт корисном учитавању, што помаже).
СПИ карактеристике буке
Пусх-пулл ЦМОС драјвери активно покрећу и висока и ниска стања. Ивице су оштре. ЦС линија улази тачно када подређени треба да слуша — игноришући све у аутобусу остатак времена. Инхерентно бољи СНР.
У пракси, чист распоред ПЦБ-а са кратким траговима, уземљењем и поклопцима за обилазницу ће учинити И²Ц задовољним на већини дизајна. Али ако је ваш сензор на каблу метар удаљен од МЦУ-а или дели кућиште са било чим што мења ампере струје — отпорност на буку СПИ-а је права предност.
Закључак о буци: СПИ је сигурнији избор у електрично непријатељским окружењима. На истој ПЦБ неколико центиметара од МЦУ-а, И²Ц је у реду.
Сложеност фирмвера: Окидач о коме нико не говори
И²Ц фирмвер
A state machine. Start condition → send address + R/W bit → wait for ACK → read/write register pointer → read/write data → stop condition. Every step has a timeout, a retry path, and a "what if the sensor holds SDA low because it's still converting" case. Most MCU vendors provide a HAL. Most of those HALs have edge-case bugs you'll discover at 11 PM.
СПИ фирмвер
Assert CS → shift bytes → de-assert CS. That's it. The sensor doesn't get to say "I'm not ready" by clock-stretching or NAKing. The master controls the clock; the slave responds or stays silent.
Бол у отклањању грешака: Када СПИ не ради, испитате четири линије помоћу логичког анализатора и видите шта се тачно дешава. Када И²Ц не ради, буљите у екран пун НАК-ова и питате се да ли су то вредности за повлачење, адреса, тајминг или капацитет магистрале. Логички анализатор од 8 долара решава обоје — али И²Ц ће потрошити више вашег времена.
Закључак о фирмверу: СПИ је мање досадан голи метал. Са ХАЛ-ом или библиотеком, то је отприлике прање. И²Ц-у је потребно више времена за отклањање грешака када се поквари.
Потрошња енергије: Обе су грешке заокруживања
400 кХз И²Ц магистрала са 4,7 кΩ пулл-уп-а гори около 0.7 мА док је активан. СПИ у суштини не сагорева ништа на нивоу магистрале — чисто ЦМОС струја пребацивања при овим брзинама (микроампера).
Context: the pressure sensor element and ADC draw ~5 µA at 1 Hz sampling and 0.3 µA in standby. Whether the bus burns 0.5 mA or 0.05 mA for the 2 ms it takes to read a sample — the energy difference is picowatt-hours. Your BLE radio burns more power sending one "hello" packet than the bus choice will save across the sensor's entire operating lifetime.
Закључак о снази: не бирајте И²Ц или СПИ на основу снаге. Разлика је премала да би била битна. Уместо тога, одлучите се за пинове, шум или здрав софтвер.
Ток одлучивања — четири питања, без матрице
1Колико идентичних сензора на једној магистрали?
Без предности у сваком случају. Пређите на питање 2.
Две адресе, две жице. Осим ако су сензори далеко један од другог - онда СПИ.
Осим ако не уживате у читању таблица података И²Ц мултиплексера.
2Колико је удаљен сензор од МЦУ-а?
И²Ц је у реду на нивоу плоче са чистим распоредом.
Или И²Ц са диференцијалним пуфером (ПЦА9615). И²Ц никада није дизајниран за каблове.
Користите 4–20 мА или РС-485. Налазите се на територији индустријског предајника.
3Шта је ЕМИ окружење?
Чист распоред са бајпас капама чини И²Ц срећним.
Пусх-пулл драјвери и ЦС гатинг ће спречити фантомска очитавања.
4Да ли ти пишеш возача?
Апстракција чини разлику занемарљивом. Користите оно што остатак плоче користи.
Мање стања, нема истезања сата, нема сукоба адреса.
Већина библиотека сензора за љубитеље подразумевано је на И²Ц. Прво проверите библиотеку.
The "Why Not Both" Card
Дуал ИнтерфацеНеки сензори се испоручују са и И²Ц и СПИ на истој матрици, који се може изабрати преко пин траке или регистарског бита. Ово је заиста корисно у два сценарија:
Флексибилност израде прототипа
Започните са И²Ц-ом на Ардуино или разводној плочи јер је лакше повезати. Када окрећете сопствени ПЦБ, пређите на СПИ ако ваш распоред има користи од тога. Исти сензор, иста логика фирмвера, само другачији ХАЛ позив.
Флексибилност производног СКУ-а
Један дизајн ПЦБ-а, различити СКУ-ови. Један СКУ користи И²Ц јер дели магистралу са сензором температуре/влажности. Другом је потребан СПИ за дуже трагове до удаљене сензорске плоче. Ништа не редизајнирате - промените линију БОМ-а и траку отпорника.
Ако ваш кандидат за сензор не подржава оба аутобуса, то није проблем. Али имати опцију је једна од оних ствари које не цените док поново не завртите таблу у 2 ујутро.
Сиде-би-Сиде резиме
| Фактор | И²Ц | СПИ | Победник |
|---|---|---|---|
| Број жица | 2 | 4 + 1 по сензору | И²Ц |
| Брзина | До 3,4 МХз | До 50 МХз | Веза — сензор АДЦ је уско грло |
| Мулти-сензор (исти тип) | Мак 2 без мук | Неограничено (један ЦС по сензору) | СПИ преко 2 сензора |
| Отпорност на буку | Отворени одвод, РЦ ивице | Пусх-пулл ЦМОС, оштре ивице | СПИ |
| Сложеност фирмвера | Државна машина, АЦК/НАК, временска ограничења | Потврдите ЦС, померите бајтове, готово | СПИ (голи метал); Кравата (са ХАЛ-ом) |
| Потешкоће у отклањању грешака | Теже — НАК лов | Лакше — јасни сигнали | СПИ |
| Потрошња енергије | ~0,7 мА (активна повлачења) | ~0 мА (без повлачења) | Кравата — делта је пиковат-сати |
| Каблови | Не препоручује се >200 мм | Толерише дуже трагове | СПИ |
| Екстерне компоненте | 2× пулл-уп отпорници | Ниједан | Кравата — 2× 0402 отпорника ≈ 0,002 $ |
ТЛ;ДР
Збуњени сте око тога да ли вам је уопште потребан сензор апсолутног, манометарског или диференцијалног притиска? Прочитајте водич на обичном енглеском →
Нисте сигурни који интерфејс одговара вашем дизајну? Реците нам ваш МЦУ, ограничења ваше плоче и ваше окружење — ми ћемо вас упутити на прави део, обично у року од сат времена.
Обратите се →



