Long MicroLan
14 отговора
532 прегледа
Long MicroLan
Съвсем накрато, че бързам - надявам се да разберете за какво става дума.
Имаме 1-Wire шина от порядъка на 25-30 метра натоварена с 8 температурни датчика DS18L20 и един DS1994L паралелно на който е забит един кондензатор 1n ( ще обесня ако някой го вълнува защо ). Линията е подпряна с 4.7к.
Проблема е че ако скъся линиятя до към 3-4 метра работи идеално но пусната в реалните 20 метра се дъни. Всъщност се дъни и на 6-7 метра но по-рядко. Видимо проблема е при преминаването от 0 в 1...по обясними причини.
Приемам идеи за стабилизиране без тази за намаляване на подпиращия резистор...
Имаме 1-Wire шина от порядъка на 25-30 метра натоварена с 8 температурни датчика DS18L20 и един DS1994L паралелно на който е забит един кондензатор 1n ( ще обесня ако някой го вълнува защо ). Линията е подпряна с 4.7к.
Проблема е че ако скъся линиятя до към 3-4 метра работи идеално но пусната в реалните 20 метра се дъни. Всъщност се дъни и на 6-7 метра но по-рядко. Видимо проблема е при преминаването от 0 в 1...по обясними причини.
Приемам идеи за стабилизиране без тази за намаляване на подпиращия резистор...
Re: Long MicroLan
Гнусна работа
Аз съвсем наскоро имах подобни проблеми само дето бяха с друг Т датчик - SHT. Там не беше 1W а нещо наподобяващо I2C но проблемите бяха същите. При това линията си беше с UTP кабели. Оказа се, че не честотата на комуникация, ами баш преходите от 0/1 или 1/0 разкатават майката на всичко. Такива хубави апериодичи процеси с амплитуди от по няколко волта вървят по дългите линии - като за учебник. Гнус пълна. Оказа се, че буферите (а бяхме нахакали 244) са прекалено бързи т.е. правят прекалено стръмни фронтове и те ги правят тия гадости. Единственния вариант - подбор на терминиращия резистор + някакви кондензатори по самите даннови линии (при мен по клока се наложи да сложа)
Та направо не знам какво да ти кажа - пробвай по този начин.... бробвай някакво буфериане(по 1W няма да е просто, ама може) дано стане. Ситуацията наподобява "с осцилоскоп работи - без него не" или "вълшебният пръст допрян на еН-то краче".
Успех!
......
А в 33 - распяли, но не сильно.
.......
Аз съвсем наскоро имах подобни проблеми само дето бяха с друг Т датчик - SHT. Там не беше 1W а нещо наподобяващо I2C но проблемите бяха същите. При това линията си беше с UTP кабели. Оказа се, че не честотата на комуникация, ами баш преходите от 0/1 или 1/0 разкатават майката на всичко. Такива хубави апериодичи процеси с амплитуди от по няколко волта вървят по дългите линии - като за учебник. Гнус пълна. Оказа се, че буферите (а бяхме нахакали 244) са прекалено бързи т.е. правят прекалено стръмни фронтове и те ги правят тия гадости. Единственния вариант - подбор на терминиращия резистор + някакви кондензатори по самите даннови линии (при мен по клока се наложи да сложа)
Та направо не знам какво да ти кажа - пробвай по този начин.... бробвай някакво буфериане(по 1W няма да е просто, ама може) дано стане. Ситуацията наподобява "с осцилоскоп работи - без него не" или "вълшебният пръст допрян на еН-то краче".
Успех!
......
А в 33 - распяли, но не сильно.
.......
Re: Long MicroLan
SHT ли чух?
Направо ми бръкна в здравето преди месец... Сега е кротко залепен за един пик който комуникира по общата шина с управлението.
Но по темета де...Целия проблем е, че подпората не може да се намалява до безкрайност...4mA максимално през Т датчика го ограничава под прага на работоспособност на линията. Даласци имат там един ъпликейшън ноут където описват подробно няколко начина но това кето най-ми хареса е че само с подпора шината работи махсимум на 3-5 метра в зависимост от броя 1W устриства закачени по нея. Другите изискват по-особенно управление на шината откъм мастъра...което към настоящия момент не ме усторойва особонно.
Всъщност след известно попреглеждане на това какво става - дайте идея за елементарно устройство което да усеща фронт 0-1 и докато не достигне необходимото ниво за логическа 1-ца да подава 5V пряко на линията. Колегата набързо събра вчера едно с два транзистора, но нещо ефекта от него не е много успешен. Днес каза че щял да търси бързопревключващи и да пробваме отново....Приемам всякакви идеи!
Но по темета де...Целия проблем е, че подпората не може да се намалява до безкрайност...4mA максимално през Т датчика го ограничава под прага на работоспособност на линията. Даласци имат там един ъпликейшън ноут където описват подробно няколко начина но това кето най-ми хареса е че само с подпора шината работи махсимум на 3-5 метра в зависимост от броя 1W устриства закачени по нея. Другите изискват по-особенно управление на шината откъм мастъра...което към настоящия момент не ме усторойва особонно.
Всъщност след известно попреглеждане на това какво става - дайте идея за елементарно устройство което да усеща фронт 0-1 и докато не достигне необходимото ниво за логическа 1-ца да подава 5V пряко на линията. Колегата набързо събра вчера едно с два транзистора, но нещо ефекта от него не е много успешен. Днес каза че щял да търси бързопревключващи и да пробваме отново....Приемам всякакви идеи!
Re: Long MicroLan
Проблема не е само в терминатора на линията - колкото и голям(малък) да го направиш - фронтовете си остават. Просто дълга линия и това е. И си се клати апериодично колкото си иска, ако няма насреща добре съгласувани драйвери. Лошото е, че едно такова "разклащане" скапва дивайсите отсреща.
А въпроса не го разбрах - обясни по-подробно плс.
......
А в 33 - распяли, но не сильно.
.......
А въпроса не го разбрах - обясни по-подробно плс.
......
А в 33 - распяли, но не сильно.
.......
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
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
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
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
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
Re: Long MicroLan
Нещо не сме се разбрали. Проблема настава когато управлението освободи шината за да може датчика да предаде информацията. Целта на упражнението е когато шината се освободи да се зареди до лог 1 възможно най-бързо - да кажем в рамките на 4 микросекунди.
Ако се вземе в предвид 100pF на метър + входния капацитет на датчиците за да се поместя в това време, трябва да се разкара прословутия кондензатор залепен за 1994-ката. Ма пусто като не мога да измисля друго за там...
Ще видим какво ще стане днес - колегата е на мястото с два нови повдигача и кашон с кабел...
Ако се вземе в предвид 100pF на метър + входния капацитет на датчиците за да се поместя в това време, трябва да се разкара прословутия кондензатор залепен за 1994-ката. Ма пусто като не мога да измисля друго за там...
Ще видим какво ще стане днес - колегата е на мястото с два нови повдигача и кашон с кабел...
Long MicroLan + 1nF
Понеже кондензаторчето закачено на DS1994L е основния подбудител на проблема...но накратко!
Когато шината се освободи започва зареждане на кондензатора през подопорния резистор. По време на това зареждане шината се удържа в 0 за известно време което при къс кабел и малко на брой датчици е достатъчно под критичното от 4 микросекунди. Когато обаче шината се понатовари с по-дълъг кабел и повечко датчици сумарния капацитет на линията не позволява на подпората да го зареди в рамките на 4-те микросекунди. Решението е намаляване на стойноста на подпората, но...под 1.5к не може по-надолу. И стигаме до махане на този 1nF.
А той е там защото....същата опитна постановка но без термодатчика само таймерчето с памета. Таймерчето отговаря на ресета но само толкова! Когато тръгне четене не му стига захранването....и в резултат се четат само 1-ци. Проблема се решава като хвана таблетката с ръка
или след опитно залепи-отлепи се достигне до 1nF който да играе роля на ръчичка. Та ако някой е работил с подобни таблетки и е имал подобен проблем ще съм му мнооооого благодарен ако подхвърли идея как да разкарам кондензаторчето.
Когато шината се освободи започва зареждане на кондензатора през подопорния резистор. По време на това зареждане шината се удържа в 0 за известно време което при къс кабел и малко на брой датчици е достатъчно под критичното от 4 микросекунди. Когато обаче шината се понатовари с по-дълъг кабел и повечко датчици сумарния капацитет на линията не позволява на подпората да го зареди в рамките на 4-те микросекунди. Решението е намаляване на стойноста на подпората, но...под 1.5к не може по-надолу. И стигаме до махане на този 1nF.
А той е там защото....същата опитна постановка но без термодатчика само таймерчето с памета. Таймерчето отговаря на ресета но само толкова! Когато тръгне четене не му стига захранването....и в резултат се четат само 1-ци. Проблема се решава като хвана таблетката с ръка
Re: 1-vo probvai tova
ot 1 месец тоя интерфейс.Капацитета на кабела е важен,не омовете.С какъв мастер си?аз пробвах със простите с 2 полеви транзистора-бачка с телефонен кабел прост до-50-60 метра.С драйвера 9097 за серийния порт на 150 м държи на терасата 2 датчика.Но основното е важен е сумарния капацитет на линията като цяло,със всички разклонения.затова тия маймуни произвеждат и ключове за 1-вире за разклонения..правя го за собств удоволствие..но съм доволен..
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
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
Re: Long MicroLan
ако съм разрал правилно имаш проблем с сигнала след датчика , да споделя една моя случка може да имаш полза ... значи с един френд правихме термометър които извежда температурата в един сайт ... датчика е DS1621 , направихме го значи всичко работи докато се наложи да удължим кабела до компа към 10м и тогава се гипсира пцто не разпознаваше явно вече сигнала ... пробвахме го с 6 жилен кабел подобен като ком кабелите които са е 9 жила .. просто отказа ... и тогаване знам от къде ми беше попаднал един кабел лентов кабел в двата края имаше RG45 конектори явно беше ползван за мрежа е тоз кабел като го сложих работата просто заспа ... и се чудя що не пробваш да ги вържеш тез датчици с да речем обикновен осукан FTP кабел
все пак се учим цял живот от грешките си
просто и лесно
все пак се учим цял живот от грешките си
просто и лесно
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! и без това положението не е розово. часовника го сложи близо до контролера, там ще ти пречи най-малко. и толкова ли е зор да слагаш точно този часовник? пък и е толкова скъп...
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! и без това положението не е розово. часовника го сложи близо до контролера, там ще ти пречи най-малко. и толкова ли е зор да слагаш точно този часовник? пък и е толкова скъп...
Re: Long MicroLan
По точки
1. Направено още в проектен стадий. Всеки термометър се захранва не по паразитния начин. Единственното което не може да се захрани е часовника, което води до появата на този кондензатор-ръчичка.
2. Вторично управление на шината към момента не се допуска - най малкото защото трябва да се правят схемни промени...Следващият път ще има но този път е просто недопустимо. Принцпно идеята беше да се залепи нещо като паяк отгоре което да прави това бързо зареждане на капацитета на линията. Колегата гледам в последно време прави някакви експерименти с 20мА ток при преминаване на прага от 0.6V - два дена чете по сайта на Далас и намери някакъе чип дето прави това, но още не го е подкарал...
3. Софтуерните борби са в друга посока...увеличаване на използваната памет за съхранение и както е тръгнали запис във флаш ( малко в страни от темата... някой ако знае как се управляват SD картите, пък и ако има нещо готово за PIC или AVR ? ) Последното което се направи е леко увеличаване на времето за сканиране на жицата, но не е изпорбвано още - чака се резултата от "изправителя" на фронтове.
4. Турени. Още в началото. Ако не друго - обират всякакви шумове...или поне ги вкарват в допустими граници!
4.1 Правят се опити. Виж 3! Към него се добавя и малко повече време щежду два рийд таймслота от нормалните 10us за може наистина да се зареди паразита в таблетката. Защо точно този ли? Лесно управление, собственно захранване и кварцова стабилизация за да подържа непрекъсната работа, наличие на памет. Ако предложиш друг...не държа на паметта
Към настоящия момент шината работи но не достатъчно стабилно. А трябва да може да работи до 120 часа без да чува компютър...който в някой случаи взема решенията!
1. Направено още в проектен стадий. Всеки термометър се захранва не по паразитния начин. Единственното което не може да се захрани е часовника, което води до появата на този кондензатор-ръчичка.
2. Вторично управление на шината към момента не се допуска - най малкото защото трябва да се правят схемни промени...Следващият път ще има но този път е просто недопустимо. Принцпно идеята беше да се залепи нещо като паяк отгоре което да прави това бързо зареждане на капацитета на линията. Колегата гледам в последно време прави някакви експерименти с 20мА ток при преминаване на прага от 0.6V - два дена чете по сайта на Далас и намери някакъе чип дето прави това, но още не го е подкарал...
3. Софтуерните борби са в друга посока...увеличаване на използваната памет за съхранение и както е тръгнали запис във флаш ( малко в страни от темата... някой ако знае как се управляват SD картите, пък и ако има нещо готово за PIC или AVR ? ) Последното което се направи е леко увеличаване на времето за сканиране на жицата, но не е изпорбвано още - чака се резултата от "изправителя" на фронтове.
4. Турени. Още в началото. Ако не друго - обират всякакви шумове...или поне ги вкарват в допустими граници!
4.1 Правят се опити. Виж 3! Към него се добавя и малко повече време щежду два рийд таймслота от нормалните 10us за може наистина да се зареди паразита в таблетката. Защо точно този ли? Лесно управление, собственно захранване и кварцова стабилизация за да подържа непрекъсната работа, наличие на памет. Ако предложиш друг...не държа на паметта
Към настоящия момент шината работи но не достатъчно стабилно. А трябва да може да работи до 120 часа без да чува компютър...който в някой случаи взема решенията!