проблем с rs232+XP
47 отговора
1004 прегледа
Re: Няколко идеи
А, ако искаш, направи си експеримента. Конфигурирай UART-a на 115200 bps, и пускай един и същ байт непрекъснато. После си напиши една тъпа програмка за win и я пусни, докато устройството работи.
Re: проблем с rs232+XP
ВБ рулира, приятелю. Управлява.
Преди да се появи .НЕТ, ВБ 6.0 и Делфи бяха най-смислените среди на които можеше да се напише приложение за Уиндоус.
Сега като излезе .НЕТ-а пак ВБ 6.0 и Делфи са най-смислените среди, на които мое да се напише приложение за Уин, щото .НЕТ фреймуърка все още го няма на повечето компютри и ще минат поне 3-4 години преди да се разпространи навсякъде :)
Преди да се появи .НЕТ, ВБ 6.0 и Делфи бяха най-смислените среди на които можеше да се напише приложение за Уиндоус.
Сега като излезе .НЕТ-а пак ВБ 6.0 и Делфи са най-смислените среди, на които мое да се напише приложение за Уин, щото .НЕТ фреймуърка все още го няма на повечето компютри и ще минат поне 3-4 години преди да се разпространи навсякъде :)
Re: проблем с rs232+XP
Крайно неподходящо е да се прави цифров осцилоскоп на ВБ, не мислиш ли?
ama vie savsem se otplesnahte!
sa opraviate bagovete po dannite platki i softuera sas razni nadejdni protokoli!
po dobre tarsi kakav e tocno rpoblema, probvai s drug koputer pak na XP, posle na sastia komputer s 98...
ako nisto ne razberes, zemi kupi edin 386 za 5lv, sloji mu edin DR-DOS i si napisi programata tam! ste varsi po-dobra rabota!
po dobre tarsi kakav e tocno rpoblema, probvai s drug koputer pak na XP, posle na sastia komputer s 98...
ako nisto ne razberes, zemi kupi edin 386 za 5lv, sloji mu edin DR-DOS i si napisi programata tam! ste varsi po-dobra rabota!
Re: проблем с rs232+XP
Kato kaza* osciloskop "което в непрекъснат режим праща данни по rs232" i me zamisli seriozno.... 15kS/s li shte e osciloskopa /da rechem 8 bita ADC stigat/? Gledam si UARTa na PC-to poveche ne moje da poeme.
Re: ama vie savsem se otplesnahte!
Ми да ти кажа честно, идеята е после софта да се портне за pocketPC.
Там ква боза ше настане сигурно, не е истина.
Re: проблем с rs232+XP
PC-то май ще поеме и повече, но вече се разминават baud rate стандартите на МК и PC-то.
Иначе, може би е силно казано осцилоскоп, по-скоро визуализатор на нискочестотни сигнали. И понеже ако се наложи да замервам променлив ток, ще ми трябват 9 бита. А понеже с 9 бита не е удобно да се работи, май ще отидат 2 байта.
Тъй ще максималното, което ще мога да замервам ще е към 7 КХц.
Иначе, може би е силно казано осцилоскоп, по-скоро визуализатор на нискочестотни сигнали. И понеже ако се наложи да замервам променлив ток, ще ми трябват 9 бита. А понеже с 9 бита не е удобно да се работи, май ще отидат 2 байта.
Re: проблем с rs232+XP
neshto ne shvanah, kakva e vrazkata na 9te bita s promenlivia tok?
Re: проблем с rs232+XP
signed char, kyv ti e problema?
ili izmestwash 0-ta
ili izmestwash 0-ta
Редактирано от Плaмeн на
Re: проблем с rs232+XP
mi shto ne vzemesh edna gotova sound carta, ne i razkarash vhodnite razdelitelni kondenzatori, da mojesh da sledish i DC niva, che na vsichkto otgore imash i nad 44KS/s daje 2 kanala. A sega i edin konkreten suvet - ostavi pauza m/u otdelnite byt-ove. Ako prashtash po edin za sample i pauza na vseki 2 ako prashtash po 2 za sample. Neka pauzata e s produljitelnost = na 1.5 perioda na 1 byte pri dadenata skorost. Sravni rezultatite sus i bez pauzata. Moga da se hvana na bas che imash framing error ot razlika v skorostite na predavatelia i priemnika, no ti prosto ne chetes tozi status. Poneje protokola e asinhronen, boud rate-a e edinstvenata baza po koiato glupavia* UART moje da ti razchete* tekushtia bit.
Ako ti sledvat kakto kazvash neprekusnato byte sled byte pri 1% greshka v skorostite pri 115k/s BR i uslovie che porta e gotov da priema predi da si si pusnal periferiata: nai kusno na 100-tnia byte imash veche nevalidni danni.
Kakvo se poluchava pri teb - ustroistvoto ti raboti ti puskash UARTa?! Mi ot kade znae toi che 1-viat poluchen bit e 1-vi bit ot izpraten byte?
Haide, probvai s pauzata i ne priemai za chista moneta poluchenite danni ako imash FRAMING ERROR.
p.s. kakvi programisti ste vie deto ne poznavate hardware-to.
Ako ti sledvat kakto kazvash neprekusnato byte sled byte pri 1% greshka v skorostite pri 115k/s BR i uslovie che porta e gotov da priema predi da si si pusnal periferiata: nai kusno na 100-tnia byte imash veche nevalidni danni.
Kakvo se poluchava pri teb - ustroistvoto ti raboti ti puskash UARTa?! Mi ot kade znae toi che 1-viat poluchen bit e 1-vi bit ot izpraten byte?
Haide, probvai s pauzata i ne priemai za chista moneta poluchenite danni ako imash FRAMING ERROR.
p.s. kakvi programisti ste vie deto ne poznavate hardware-to.
Re: проблем с rs232+XP
Пада чувствителността. Аз както искам да сложа един делител на напрежението с коефициент 50, та съвсем.
Re: проблем с rs232+XP
Не съм съгласен с нищо, което каза.
Прочети още веднъж всичко, което съм казал до този момент.
Първо, къде, според теб, да набутам тая sound карта в pocketPC-то?
Второ, вече казах, че ако подаването на данни започне СЛЕД инициализацията на COM-порта от страна на PC-то, всичко е наред. Ако се подава ПО ВРЕМЕ на инициализацията, тогава се скапва (и пак не винаги).
Първо, къде, според теб, да набутам тая sound карта в pocketPC-то?
Re: проблем с rs232+XP
Tova za sounda beshe samo ideia.... a, inache kato se poborish oshte malko shte stignesh sam do tezi izvodi, nishto che ne si suglasen 
Знам
че не си наясно с какво си се захванал. Дано не те домързи да го довършиш - солидарен съм с проГЪРМИСТ че не си в час, но поне след финала ще си по-напред. Поне полза ще има !
ПП: Изобщо не ми се муси. Маниера ти "Тия с ВБ не могат" ми е познат - не за сефте ти изигра лоша шегичка :-)) За времето на тази тема проблема да си го забравил вече с презираното от теб ВБ.
UB40 !
ПП: Изобщо не ми се муси. Маниера ти "Тия с ВБ не могат" ми е познат - не за сефте ти изигра лоша шегичка :-)) За времето на тази тема проблема да си го забравил вече с презираното от теб ВБ.
UB40 !
Тъпия
казваш ?
Говоря за това че си негоден да се справиш с "тъпия" проблем :-)
UB40 !
Говоря за това че си негоден да се справиш с "тъпия" проблем :-)
UB40 !
Re: Тъпия
maceto e gotino
E tam e "tupia" problem, software-to ne ti e gotovo! Niamash nikva informacia dali tova koeto si prochel ot file "COMx" ili tam kakto e na C++ sa validni danni. Zashto mislish UARTa sha ti naredi bitovete v byte kakto ti iskash? Toi shte hvane 1-via bit prehod visoko-nisko-visoko nivo kato startov, shte broi 8 i shte chaka stop bit - 9ti /ako izobshto polzvash stop bit/, ia doide visoko nivo ia ne, viziram 9-tia bit. Shte vdigne prekusvane che ima danni v buffera shte natupche vaprosnite 8 bita vuv FIFO-to i shte pochne da tupche sledvashtite postupili bitove sled start bita*, * zashtoto ne se znae bit danni li e ili start bit. Ako iskash se suglasiavai no pri continius flow ot bitove, bez razdelitel veroiatnostta da zahape na istinski start bit e sluchainost. Ako ti kato programist razchitash na sluchaini "Markovski" procesi - shte ti se naloji da vkliuchish v programata si i malko fuzzy logic.
E tam e "tupia" problem, software-to ne ti e gotovo! Niamash nikva informacia dali tova koeto si prochel ot file "COMx" ili tam kakto e na C++ sa validni danni. Zashto mislish UARTa sha ti naredi bitovete v byte kakto ti iskash? Toi shte hvane 1-via bit prehod visoko-nisko-visoko nivo kato startov, shte broi 8 i shte chaka stop bit - 9ti /ako izobshto polzvash stop bit/, ia doide visoko nivo ia ne, viziram 9-tia bit. Shte vdigne prekusvane che ima danni v buffera shte natupche vaprosnite 8 bita vuv FIFO-to i shte pochne da tupche sledvashtite postupili bitove sled start bita*, * zashtoto ne se znae bit danni li e ili start bit. Ako iskash se suglasiavai no pri continius flow ot bitove, bez razdelitel veroiatnostta da zahape na istinski start bit e sluchainost. Ako ti kato programist razchitash na sluchaini "Markovski" procesi - shte ti se naloji da vkliuchish v programata si i malko fuzzy logic.
Re: Тъпия
И според мен причината за проблема е точно в непрекъснатото предаване на байтовете без паузи.
Но не съм съгласен, че това идва от разлика в baud rate. От средата на стоп бита нататък UART-а чака преход 1-0 за следващия старт бит и се синхронизира наново по него, т.е. винаги има време от половин бит на байт в резерв. Затова веднъж синхронизиран, приемникът ще приеме неограничено дълга поредица от байтове без да се разсинхронизира, дори скоростите на двете страни да се разминават до 5%.
Проблемът горе е в синхронизацията на първия байт. Ако например предавателят изпраща 0х04 при n,8,1 - това е непрекъсната поредица от 3 нули, единица, 5 нули, единица. Което от другата страна може да изглежда и като непрекъсната поредица от 5 нули, единица, 3 нули, единица - в зависимост в кой момент се стартира приемането. И вместо 0х04 ще се прочете 0х10, без никакъв framing error или индикация за друга грешка.
За Resurrector: най-мързеливата кръпка в твоя случай е да правиш в микроконтролера по една пауза с продължителност 1 цял байт след всеки 32 или 64 байта, което ти гарантира правилна синхронизация още след първата пауза. В РС-то след инициализацията просто игнорираш първите 32(64) байта и спасяваш положението за момента. Цената ти е по-ниска скорост с 3% (1,5%), което предполагам едва ли е проблем.
Но не съм съгласен, че това идва от разлика в baud rate. От средата на стоп бита нататък UART-а чака преход 1-0 за следващия старт бит и се синхронизира наново по него, т.е. винаги има време от половин бит на байт в резерв. Затова веднъж синхронизиран, приемникът ще приеме неограничено дълга поредица от байтове без да се разсинхронизира, дори скоростите на двете страни да се разминават до 5%.
Проблемът горе е в синхронизацията на първия байт. Ако например предавателят изпраща 0х04 при n,8,1 - това е непрекъсната поредица от 3 нули, единица, 5 нули, единица. Което от другата страна може да изглежда и като непрекъсната поредица от 5 нули, единица, 3 нули, единица - в зависимост в кой момент се стартира приемането. И вместо 0х04 ще се прочете 0х10, без никакъв framing error или индикация за друга грешка.
За Resurrector: най-мързеливата кръпка в твоя случай е да правиш в микроконтролера по една пауза с продължителност 1 цял байт след всеки 32 или 64 байта, което ти гарантира правилна синхронизация още след първата пауза. В РС-то след инициализацията просто игнорираш първите 32(64) байта и спасяваш положението за момента. Цената ти е по-ниска скорост с 3% (1,5%), което предполагам едва ли е проблем.