| Микроконтролери и електроника 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 г., после просто вече нямах нужда от нея. Така, че - става |
|
| Автор: | 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/ |
|