Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

Въпрос за практически опит с I2C
http://mcu-bg.com/mcu_site/viewtopic.php?f=2&t=4572
Страница 1 от 1

Автор:  Syrius-B [ Сря Авг 01, 2007 12:55 pm ]
Заглавие:  Въпрос за практически опит с I2C

Налага ми се да свържа датчик, с I2C интерфейс, но с опция за отдалечена връзка - мин 2м, макс 4м.
Не ми се ще да слагам втори процесор, само заради дължината на жицата.
Някой има ли практически опит с удължаване на I2C жиците.
Очевидно е, че трябва да се намали максималната честота, въпроса е с колко, и което е по-съществено, в кой момент настъпват фатални отражения по клока.

Автор:  stanleyhacker [ Сря Авг 01, 2007 1:17 pm ]
Заглавие: 

дръж клока и данните по-разделени и честотата на 100кхз, няма да има никакви проблеми. Да и пулъпа може да го понамалиш на 3-4 кома

Автор:  miro_atc [ Сря Авг 01, 2007 2:55 pm ]
Заглавие: 

Проблемът е общ и важи за всяка шина в която се ползва отворен колектор, т.е. не само I2C.
Всичко зависи от паразитните капацитети. Примерно bga модул на телит на 5см писта иска <5к пулъп за да поддържа 100кбит, ама тва е щото тъпанарите са сложели кондензатори за ESD. Иначе може и на няколко метра да опънеш мегабити.
Отражения на клока чак не съм виждал, проблемът обикновено е положителния фронт при който паразитните кондензатори трябва да се нахранят през пулъпа. Примерно 10pF през 10К имаш 100нС константа което е супер, ама ако искаш малък ток и сложиш 47К и го натовариш с 100пФ - времеконстантата ти скача на 4.7uS, което като честота е почти 100кХц, ама реално заради семплирането и 9600 трудно ще тръгне...

Ако не държиш да гониш точно I2C стандарта и го емулираш софтуерно през МЦУ може да си го пачнеш леко. Примерно ако няма паузиране от страна на датчика, клока спокойно може да го пуснеш пуш-пул и нямаш грижи с капацитетите. А за данновия, когато ти предаваш може пак да е пуш-пул на висока скорост, когато приемаш може да ползваш асиметричен клок.
Или пък да изкарваш една бърза 1-ца преди четене (стига изхода ти да е ограничен по ток) - тогава ако слейва държи нула ще имаш един пик консумация но нивото няма мръдне. Ако слейва иска да предаде 1 и преди това е било 0, с пикчето помагаш на пулъпа да смени фронта по-бързо...

Автор:  Dimitar [ Сря Авг 01, 2007 3:13 pm ]
Заглавие: 

Правил съм такова нещо с датчик и процесор и максимума, който постигнах беше около 15 метра с 1к пъл-ъп резистори. Джаджата работи стабилно около 2 г., после просто вече нямах нужда от нея. Така, че - става 8) .

Автор:  Syrius-B [ Сря Авг 01, 2007 9:10 pm ]
Заглавие: 

Благодаря
I2C-то ми трябва за 3-4 метра, и от към процесора се емулира, така че ще мога да приложа при нужда и софтуерни номера.
Пък и датчика си има вградено CRC.

Автор:  Cekins [ Чет Авг 02, 2007 10:06 am ]
Заглавие: 

Sirius-B, за SHT11 ли говориш, щото ако е за него, ти препоръчвам обезателно да му ползваш CRC-то. Иначе съм закачал на 20 метра TCN75 (microchip) без никакви проблеми на 100 kHz, а SHT-то на 3-4 метра и почна да дава грешки и то на по ниски честоти. Горе долу на 30 обмена един се дъни.

Автор:  bateAz [ Чет Авг 02, 2007 12:03 pm ]
Заглавие: 

Нещата стават доста по-розови, ако можеш да добавиш един тригер на Шмид на клока, непосредствено до отдалечения чип. За съжаление този номер не минава с данните. Освен това, колкото по-нискоомни са pull-up - инте, толкова по-добре. Провери какъв изходен ток могат да дават чиповете и оттам си подбери резисторите. Препоръчвам ти да ги разделиш на 2 места : 2 резистора до процесора и два до далечния чип. Не забравяй кондензаторите паралелно на захранването.
Не се обръща много внимание на кабела, а той е важен. UTP не е добър вариант, защото има ниско вълново съпротивление ( 110 ома ) и голям капацитет, обикновено е около 15pF/m. Ако имаш избор, премери капацитета на кабела и вземи най-ниския.

Автор:  miro_atc [ Чет Авг 02, 2007 12:39 pm ]
Заглавие: 

ето нещо съвсем прясно (от вчера):

Application Note - AT91-AN01: Using the Two-wire interface (TWI) in
Master Mode on AT91SAM Microcontrollers - Rev. A - 2007-07-31 -
http://www.atmel.com/dyn/general/tech_d ... c_id=11269

Има точните формули за смятане на съпротивления и разни други полезни нещица...

Автор:  Cekins [ Чет Авг 02, 2007 1:09 pm ]
Заглавие: 

Бате, ползвах кабел дето го ползват СОТаджиите (6 жилен с ширмовка около 5 м.). Датчика SHT75 е също като SHT11 само, че запоен на платчица, с крачета и с кондензатор между захранванията. На съшия кабел има сложен и TCN75 за калибриращо измерване на температурата (при включено отопление на SHT-то). SHT-то ръси грешки постоянно - минимум по 1 на минута. TCN-a - никакви грешки на 100 kHz. Двете са на отделни шини поради софтуерни съображения. И освен това SHT е на софт а другия на хардуерния I2C модул. Софт. е с 3.3К пулъп а хард. с 5К. Само дето не ми дойде на акъла да сложа пулъп и при датчика, но поне си признавам, че съм все още начинаещ и се уча. Още едно доказателство че форума е много полезно място да се научи това онова, стига да знаеш как :)

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/