Long MicroLan

14 отговора 532 прегледа
#1

Long MicroLan

Съвсем накрато, че бързам - надявам се да разберете за какво става дума.
Имаме 1-Wire шина от порядъка на 25-30 метра натоварена с 8 температурни датчика DS18L20 и един DS1994L паралелно на който е забит един кондензатор 1n ( ще обесня ако някой го вълнува защо ). Линията е подпряна с 4.7к.
Проблема е че ако скъся линиятя до към 3-4 метра работи идеално но пусната в реалните 20 метра се дъни. Всъщност се дъни и на 6-7 метра но по-рядко. Видимо проблема е при преминаването от 0 в 1...по обясними причини.
Приемам идеи за стабилизиране без тази за намаляване на подпиращия резистор...

Отговор
в отговор на . #2

Re: Long MicroLan

Гнусна работа
Аз съвсем наскоро имах подобни проблеми само дето бяха с друг Т датчик - SHT. Там не беше 1W а нещо наподобяващо I2C но проблемите бяха същите. При това линията си беше с UTP кабели. Оказа се, че не честотата на комуникация, ами баш преходите от 0/1 или 1/0 разкатават майката на всичко. Такива хубави апериодичи процеси с амплитуди от по няколко волта вървят по дългите линии - като за учебник. Гнус пълна. Оказа се, че буферите (а бяхме нахакали 244) са прекалено бързи т.е. правят прекалено стръмни фронтове и те ги правят тия гадости. Единственния вариант - подбор на терминиращия резистор + някакви кондензатори по самите даннови линии (при мен по клока се наложи да сложа)
Та направо не знам какво да ти кажа - пробвай по този начин.... бробвай някакво буфериане(по 1W няма да е просто, ама може) дано стане. Ситуацията наподобява "с осцилоскоп работи - без него не" или "вълшебният пръст допрян на еН-то краче".
Успех!

......
А в 33 - распяли, но не сильно.
.......
Отговор
в отговор на Poruchik_Rzevski #3

Re: Long MicroLan

SHT ли чух? Направо ми бръкна в здравето преди месец... Сега е кротко залепен за един пик който комуникира по общата шина с управлението.
Но по темета де...Целия проблем е, че подпората не може да се намалява до безкрайност...4mA максимално през Т датчика го ограничава под прага на работоспособност на линията. Даласци имат там един ъпликейшън ноут където описват подробно няколко начина но това кето най-ми хареса е че само с подпора шината работи махсимум на 3-5 метра в зависимост от броя 1W устриства закачени по нея. Другите изискват по-особенно управление на шината откъм мастъра...което към настоящия момент не ме усторойва особонно.
Всъщност след известно попреглеждане на това какво става - дайте идея за елементарно устройство което да усеща фронт 0-1 и докато не достигне необходимото ниво за логическа 1-ца да подава 5V пряко на линията. Колегата набързо събра вчера едно с два транзистора, но нещо ефекта от него не е много успешен. Днес каза че щял да търси бързопревключващи и да пробваме отново....Приемам всякакви идеи!

Отговор
в отговор на . #4

Re: Long MicroLan

Проблема не е само в терминатора на линията - колкото и голям(малък) да го направиш - фронтовете си остават. Просто дълга линия и това е. И си се клати апериодично колкото си иска, ако няма насреща добре съгласувани драйвери. Лошото е, че едно такова "разклащане" скапва дивайсите отсреща.
А въпроса не го разбрах - обясни по-подробно плс.

......
А в 33 - распяли, но не сильно.
.......
Отговор
в отговор на . #5

Re: Long MicroLan

s tozi kondenzator 1 nf se o4udwam 4e vyob6te raboti. ako naistina ti e neobhodim , trqbwa da sloji6 aktivno podpirane, no tova e samo ideq, ne znam dali i taka 6te raboti. bydi siguren 4e kondenzatora ti e problema

Отговор
в отговор на . #6

Re: Long MicroLan

ei hvana me krastata i ...
ne sum prail takova neshto ama sum puskal nqkolko stonin metra i to na mnogo po visoka chestota i nqmam problemi
svalih datasheet-a na tvoq chip i stignah do slednoto zakliuchenie

trqbvat ti po 2 rezistora, 1 diod i 1 kondenzator na vseki datchik
nqmam s kakvo da ti narisuvam shemata zatova shte ti q obqsnq

ot liniqta prez diod zahranvash senzora i slagash kondenzatora kum masa
10 nano e dobra cifra
slagash ot liniqta edin rezistor 4.7 k (moje i 2.2) kum vhoda na senzora.
tam slagash i oshte 1 rezistor - 2.2 kilooma do bazata na edin PNP tranzistor
emitera mu e vurzan kum shinata (tova koeto e i zahranvane) a kolektora mu kum masa (prez 20 oma shte e oshte po dobre)
veche imash edin moshten driver

pri procesora slagash 100 oma kum +5 volta na tazi sushtata shina, kato q vkarvash v nqkoi vhod na cpu-to
izhoda na cpu-to moje da go invertirash ako iskash softuerno i da polzvash nqkoi npn tranzistor ili pak da si polzvas pnp - kakto si reshish
v kraq na tazi liniq - na posledniqt senzor slagash 600 oma rezistor
probvai go i s 300
i vij kak shte se durji po dobre
ako imash osciloskop - moje da si nastroish neshtata mnogo dobre

spored men tozi variqnt shte raboti pone na 100 metra jica

uspeh i kaji kakvo e stanalo

Отговор
в отговор на . #7

1-vo probvai tova

q purvo probvai tova
vmesto kondenzatora na kraq sloji 4.7k rezistor
a na zahranvaneto sloji 1 kom
te mu davat 5 mA minimum
taka che si mislq i che dori sus 510 oma zahranvane shte raboti
ako trugne s 510 oma sloji 2.2 k za terminirane i .. davai
ako ne .. vij gorniqt mi post

Отговор
в отговор на Pif $ #8

Re: Long MicroLan

Нещо не сме се разбрали. Проблема настава когато управлението освободи шината за да може датчика да предаде информацията. Целта на упражнението е когато шината се освободи да се зареди до лог 1 възможно най-бързо - да кажем в рамките на 4 микросекунди.
Ако се вземе в предвид 100pF на метър + входния капацитет на датчиците за да се поместя в това време, трябва да се разкара прословутия кондензатор залепен за 1994-ката. Ма пусто като не мога да измисля друго за там...
Ще видим какво ще стане днес - колегата е на мястото с два нови повдигача и кашон с кабел...

Отговор
в отговор на . #9

Long MicroLan + 1nF

Понеже кондензаторчето закачено на DS1994L е основния подбудител на проблема...но накратко!
Когато шината се освободи започва зареждане на кондензатора през подопорния резистор. По време на това зареждане шината се удържа в 0 за известно време което при къс кабел и малко на брой датчици е достатъчно под критичното от 4 микросекунди. Когато обаче шината се понатовари с по-дълъг кабел и повечко датчици сумарния капацитет на линията не позволява на подпората да го зареди в рамките на 4-те микросекунди. Решението е намаляване на стойноста на подпората, но...под 1.5к не може по-надолу. И стигаме до махане на този 1nF.
А той е там защото....същата опитна постановка но без термодатчика само таймерчето с памета. Таймерчето отговаря на ресета но само толкова! Когато тръгне четене не му стига захранването....и в резултат се четат само 1-ци. Проблема се решава като хвана таблетката с ръка или след опитно залепи-отлепи се достигне до 1nF който да играе роля на ръчичка. Та ако някой е работил с подобни таблетки и е имал подобен проблем ще съм му мнооооого благодарен ако подхвърли идея как да разкарам кондензаторчето.

Отговор
в отговор на Pif $ #10

Re: 1-vo probvai tova

ot 1 месец тоя интерфейс.Капацитета на кабела е важен,не омовете.С какъв мастер си?аз пробвах със простите с 2 полеви транзистора-бачка с телефонен кабел прост до-50-60 метра.С драйвера 9097 за серийния порт на 150 м държи на терасата 2 датчика.Но основното е важен е сумарния капацитет на линията като цяло,със всички разклонения.затова тия маймуни произвеждат и ключове за 1-вире за разклонения..правя го за собств удоволствие..но съм доволен..

Отговор
в отговор на probvam... #11

Re: 1-vo probvai tova

С какъв мастър ли? PIC микроконтролер!

Отговор
в отговор на . #12

Re: Long MicroLan

nakraq shte me nakarate da doida i az da vi go napravq ...
stiga si chel datashee-tove ..
reshenieto e prosto
imash simetrichna liniq
kato imash mnogo raztrisaniq po neq - ami mapravi da nqmash
pravi se kato se terminira liniqta, taka vsichki raztrisaniq otivat v aktiven rezistor (obrazno kazano)
taka che shemata koqto sum ti opisal tuka svalq dostatuchno impedansa na liniqta za da ti se opravqt neshtata.
tova raboti na 10 khz dokolkoto chetoh - 100 mikrosekundi
ne vijdam zashto 4 da sa ti fatalni ?

a s kondenzatorite sushto shte ti otpadnat problemite
imash RC grupa .. vremeto ti e R*C
kato ne mojesh da namalish C togava namalqi R ...
uspeh

Отговор
в отговор на . #13

Re: Long MicroLan

ако съм разрал правилно имаш проблем с сигнала след датчика , да споделя една моя случка може да имаш полза ... значи с един френд правихме термометър които извежда температурата в един сайт ... датчика е DS1621 , направихме го значи всичко работи докато се наложи да удължим кабела до компа към 10м и тогава се гипсира пцто не разпознаваше явно вече сигнала ... пробвахме го с 6 жилен кабел подобен като ком кабелите които са е 9 жила .. просто отказа ... и тогаване знам от къде ми беше попаднал един кабел лентов кабел в двата края имаше RG45 конектори явно беше ползван за мрежа е тоз кабел като го сложих работата просто заспа ... и се чудя що не пробваш да ги вържеш тез датчици с да речем обикновен осукан FTP кабел

все пак се учим цял живот от грешките си

просто и лесно
Отговор
в отговор на . #14

Re: Long MicroLan

според мен проблема е в следното:

1W бъса се ползва за двупосочна комуникация И за захранване на чарколяка по жицата. по тази причина фронтовете не могат да бъда стръмни, нито жицата може да е много дълга, както сам си разбрал. още повече, че имаш много устройства и всички трябва да ги храниш. нищо, че са само термометри. мисля че им трябваше 1.5-2mA по време на конверсия, не помня точно.

според мен може да направиш следното:
1. трета жица с Vdd по нея. 1820 имат 3 крака, все пак. терминиращия резистор - накрая на жицата, като може и да е по-малко от 4,7К (и 1.5К ще работи). обърни внимание, че стабилното захранване по време на конвертиране е задължително за правилно измерване!

2. някакъв транзистор (най-добре FET), които да зарежда бързо бъса към Vdd, когато не го държиш в '0', или по време на trec. но ще ти трябват 2 крака за управление. вътрешния капацитет по спецификация на dallas, с който се хранят устройствата е около 800pF (9х800=7.2nF, без паразитните пакацитети) и по някакъв начин трябва да го зареждаш този капацитет, при това бързо!
2.1. при този капацитет, ще имаш проблеми и с падащия фронт на сигналите. най-добре сложи транзистор и към земя. (още един крак)

3. да вкарваш термометрите в 'sleep mode' докато не ти дотрябват. така ще намалиш консумацията им до 200nA, което сигурно ще е приемливо вече. НО те се събуждат при импулс 'ресет', така че ще трябва се софтуерисате малко в посока ограничаване на ресета.

4. тури все пак някакви шотки диоди на data-тела. колкото и незначително да то се струва, подобряват фронтовете.
4.1. махни го този 1nF! и без това положението не е розово. часовника го сложи близо до контролера, там ще ти пречи най-малко. и толкова ли е зор да слагаш точно този часовник? пък и е толкова скъп...

Отговор
в отговор на Дeдo Бope #15

Re: Long MicroLan

По точки
1. Направено още в проектен стадий. Всеки термометър се захранва не по паразитния начин. Единственното което не може да се захрани е часовника, което води до появата на този кондензатор-ръчичка.
2. Вторично управление на шината към момента не се допуска - най малкото защото трябва да се правят схемни промени...Следващият път ще има но този път е просто недопустимо. Принцпно идеята беше да се залепи нещо като паяк отгоре което да прави това бързо зареждане на капацитета на линията. Колегата гледам в последно време прави някакви експерименти с 20мА ток при преминаване на прага от 0.6V - два дена чете по сайта на Далас и намери някакъе чип дето прави това, но още не го е подкарал...
3. Софтуерните борби са в друга посока...увеличаване на използваната памет за съхранение и както е тръгнали запис във флаш ( малко в страни от темата... някой ако знае как се управляват SD картите, пък и ако има нещо готово за PIC или AVR ? ) Последното което се направи е леко увеличаване на времето за сканиране на жицата, но не е изпорбвано още - чака се резултата от "изправителя" на фронтове.
4. Турени. Още в началото. Ако не друго - обират всякакви шумове...или поне ги вкарват в допустими граници!
4.1 Правят се опити. Виж 3! Към него се добавя и малко повече време щежду два рийд таймслота от нормалните 10us за може наистина да се зареди паразита в таблетката. Защо точно този ли? Лесно управление, собственно захранване и кварцова стабилизация за да подържа непрекъсната работа, наличие на памет. Ако предложиш друг...не държа на паметта
Към настоящия момент шината работи но не достатъчно стабилно. А трябва да може да работи до 120 часа без да чува компютър...който в някой случаи взема решенията!

Отговор