Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

Проблем (може би) със серийния порт?
http://mcu-bg.com/mcu_site/viewtopic.php?f=16&t=8366
Страница 1 от 1

Автор:  showMANiak [ Вто Дек 07, 2010 2:50 pm ]
Заглавие:  Проблем (може би) със серийния порт?

Здравейте.От отдавна ми отлежава в главата една идея и чак вчера имах време да потествам малко концепцията,ама ударих на камък.Идеята ми е да си направя нещо като малък осцилоскоп -някъде до към 20-30кХц.Вчера за проба надрасках набързо на една мега8-ца код който през 10 микросекунди генерира случайно число между 0 и 255 и го праща на серийния порт на компа.Всичко си бачка ток,обаче се оказва,че повече от 170 проби за 1 секунда не мога да приема,я трябва да са хиляди :? .Въпроса ми е от какво идва това ограничение-хардуерно или софтуерно е според вас и как мога да го избегна?.Чипа е Мега8 на 4Мхц,праща с 19200 бода/с,софта на компа го писах на VB и използвам MScomm контрола за да разчитам порта.Някакви съвети? :)

Автор:  ike [ Вто Дек 07, 2010 3:43 pm ]
Заглавие: 

Пробвай първо с loopback от програмата ти колко символа можеш да предадеш и да приемеш. След това пробвай с мегата да изпращаш само $55 и $АА и виж каква скорост достигаш.

Автор:  syscop [ Вто Дек 07, 2010 5:19 pm ]
Заглавие: 

Сметни при дадената скорост (19200), колко време трябва за предаването на 1 байт :!:

Автор:  showMANiak [ Вто Дек 07, 2010 6:20 pm ]
Заглавие: 

Ако не ми е грешно инфото (ако е грешно,моля за поправка :) ) би трябвало нещата да изглеждат така:
При положение,че съм задал 19200 бод/с,8 дата битове и 1 стоп ,например ако искам да предам числото 1,двоичния му вид е 110001 т.е 6 бита+ стоп и старт бита станаха 8 и реално скоростта е 2400 бит/с т.е 1 бит се предава за грубо 400 микросекунди.С повече информация за предаване,скоростта пада-така ли са нещата или съм в грешка нещо?

Автор:  Wise [ Вто Дек 07, 2010 6:40 pm ]
Заглавие: 

Май грешиш - 1 старт+8 данни +1 четност + 2 стопови = 12 бита/байт
а има и паузи между тях - не бълваш от хардуерен стек

//ако нямаш четност и само 1 стопов = 10 бита/байт

ако софтуерно смяташ нещо и после пращаш - никой не знае каква скорост ще получиш
между 2 байта няма начин да нямаш някакво забавяне

//и нещо май има гнило с двоичен и аски код на числото

Автор:  showMANiak [ Вто Дек 07, 2010 8:09 pm ]
Заглавие: 

Явно аз съм бил в грешка :oops: .Тогава при 10 бита ,се получават 1920 бит/с нал тъй?.Малко поправка в инфото-единя таймер (таймер1,16 битовия) съм настроил да се препълва на 20 микросекунди т.е генерира по 50 000 числа т.е байта в секунда (или поне теоритично трябва да е толкова).В случай,че имам 1 стоп бит и без parity битове,както спомена Wise по-надолу се получават 10 бита/байт .В такъв случай ще ми трябва 50 000*10 = 500 кб/с и от там идва проблема,така ли да разбирам,или се омотах съвсем ? :)

Автор:  Cekins [ Вто Дек 07, 2010 9:15 pm ]
Заглавие: 

Ставаш ... за готвач.

Автор:  showMANiak [ Вто Дек 07, 2010 9:34 pm ]
Заглавие: 

Translation please-нищо ли не съм разбрал? :oops:

Автор:  Cekins [ Вто Дек 07, 2010 10:22 pm ]
Заглавие: 

Виж огледай се за някой подобен проект (има един даже с 8 пинов атмел). А най-добре ползвай някой PC осцилоскоп със звуковата карта. Zellscope например е добър избор. По ком-порта можеш да постигнеш (принципно) до към 10kb (115kbaud) безпроблемно. Друг е върпоса дали ще може чипа да мери и праща с такива скорости.

Едно време като рових за някакви отворени проекти за скоп, най-смисленото коеот намерих беше с FPGA и 2 бр. 1MS/s паралелни АЦП + някаква бърза паралелна SRAM. С пикче беше реализиран само трансфера на рамта към РС-то (по USB) и зареждането на фърмуеъра на FPGA-то. Сещай се от там на сетне.

Автор:  showMANiak [ Вто Дек 07, 2010 11:04 pm ]
Заглавие: 

Демек да забравя за тая идея :).Одеве направих едно малко тестче-в първия случай таймера настроих на 1 секунда.Докато той не се препълни,мегата си семплираше АДЦ-то и при всеки семпъл увеличаваше броя на една променлива.Като се препълни таймера,пращаше стойността на променливата през UART-а.Резултата беше 27450 семпъла за секунда.Повторих същата процедура при изпращане директно към RS232-то т.е за 1 секунда мегата праща директно през UART-a към PC-то и резултата беше почти същия ,като преди-около 180 семпъла.Явно наистина си трябва скорост :)

Автор:  Cekins [ Сря Дек 08, 2010 8:57 am ]
Заглавие: 

Ами с тая скорост може до към 2,7 kHz да видиш. Може примерно първо да семплираш, после да сриваш данните в РС-то. Ама рамчицата до никъде няма да стигне, а за да успяваш да изпратиш толкова данни ти трябва някакъв по-бърз интерфейс - USB примерно. Другия вариант е да имаш мноооого рам, да семплираш по-голям прозорец и полсе да го пращаш, ама пак ще имаш 1 кадър за 5-6 сек. и то пак някаква много ниска честота.

Автор:  showMANiak [ Сря Дек 08, 2010 11:28 am ]
Заглавие: 

Одеве видях в нета едно решение -LPT scope се зове :D .Пича използва директно едно АЦП 0820 (1Msps),което праща данните на принтерския порт и нататъка всичко е софтуерно.При 1Msps,теоритично до към 100кХц би трябвало да получавам добра форма на сигнала :)

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/