проблем с rs232+XP

47 отговора 1004 прегледа
в отговор на bira_more #21

Re: Няколко идеи

А, ако искаш, направи си експеримента. Конфигурирай UART-a на 115200 bps, и пускай един и същ байт непрекъснато. После си напиши една тъпа програмка за win и я пусни, докато устройството работи.

Отговор
в отговор на Resurrector #22

Re: проблем с rs232+XP

ВБ рулира, приятелю. Управлява.

Преди да се появи .НЕТ, ВБ 6.0 и Делфи бяха най-смислените среди на които можеше да се напише приложение за Уиндоус.

Сега като излезе .НЕТ-а пак ВБ 6.0 и Делфи са най-смислените среди, на които мое да се напише приложение за Уин, щото .НЕТ фреймуърка все още го няма на повечето компютри и ще минат поне 3-4 години преди да се разпространи навсякъде :)

Отговор
в отговор на Гypy #23

Re: проблем с rs232+XP

Крайно неподходящо е да се прави цифров осцилоскоп на ВБ, не мислиш ли?

Отговор
в отговор на bira_more #24

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!

Отговор
в отговор на Resurrector #25

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.

Отговор
в отговор на CALL-151 #26

Re: ama vie savsem se otplesnahte!

Ми да ти кажа честно, идеята е после софта да се портне за pocketPC. Там ква боза ше настане сигурно, не е истина.

Отговор
в отговор на VlLO #27

Re: проблем с rs232+XP

PC-то май ще поеме и повече, но вече се разминават baud rate стандартите на МК и PC-то.
Иначе, може би е силно казано осцилоскоп, по-скоро визуализатор на нискочестотни сигнали. И понеже ако се наложи да замервам променлив ток, ще ми трябват 9 бита. А понеже с 9 бита не е удобно да се работи, май ще отидат 2 байта. Тъй ще максималното, което ще мога да замервам ще е към 7 КХц.

Отговор
в отговор на Resurrector #28

Re: проблем с rs232+XP

neshto ne shvanah, kakva e vrazkata na 9te bita s promenlivia tok?

Отговор
в отговор на Плaмeн #29

Re: проблем с rs232+XP

1 бит за знак.

Отговор
в отговор на Resurrector #30

Re: проблем с rs232+XP

signed char, kyv ti e problema?

ili izmestwash 0-ta

Редактирано от Плaмeн на

Отговор
в отговор на Resurrector #31

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.

Отговор
в отговор на Плaмeн #32

Re: проблем с rs232+XP

Пада чувствителността. Аз както искам да сложа един делител на напрежението с коефициент 50, та съвсем.

Отговор
в отговор на VlLO #33

Re: проблем с rs232+XP

Не съм съгласен с нищо, което каза. Прочети още веднъж всичко, което съм казал до този момент.
Първо, къде, според теб, да набутам тая sound карта в pocketPC-то? Второ, вече казах, че ако подаването на данни започне СЛЕД инициализацията на COM-порта от страна на PC-то, всичко е наред. Ако се подава ПО ВРЕМЕ на инициализацията, тогава се скапва (и пак не винаги).

Отговор
в отговор на Resurrector #34

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

Отговор
в отговор на Resurrector #35

Знам

че не си наясно с какво си се захванал. Дано не те домързи да го довършиш - солидарен съм с проГЪРМИСТ че не си в час, но поне след финала ще си по-напред. Поне полза ще има !

ПП: Изобщо не ми се муси. Маниера ти "Тия с ВБ не могат" ми е познат - не за сефте ти изигра лоша шегичка :-)) За времето на тази тема проблема да си го забравил вече с презираното от теб ВБ.

UB40 !
Отговор
в отговор на jamie #36

Re: Знам

За кво говориш? Софта за PC е готов. Остава да се справя с тъпия проблем.

Отговор
в отговор на VlLO #37

Re: проблем с rs232+XP

Ще видим, ще видим...

Отговор
в отговор на Resurrector #38

Тъпия

казваш ?
Говоря за това че си негоден да се справиш с "тъпия" проблем :-)

UB40 !
Отговор
в отговор на jamie #39

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.

Отговор
в отговор на VlLO #40

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%), което предполагам едва ли е проблем.

Отговор