Модераторы: feodorv, GremlinProg, xvr, Fixin

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Com порт с нестандартной скоростью, не получается задать нестандартную 
:(
    Опции темы
takedo
Дата 13.9.2005, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 501
Регистрация: 1.6.2005

Репутация: -1
Всего: 3



Romikgy
Вот все смотрю я и думаю, а что в 16550 стоит частотомер? И строго определяет, если частота не из набора:
CBR_110
CBR_19200
CBR_300
CBR_38400
CBR_600
CBR_56000
CBR_1200
CBR_57600
CBR_2400
CBR_115200
CBR_4800
CBR_128000
CBR_9600
CBR_256000
CBR_14400
, то не работаю!!!!!!!!!!!!!!!!!! А если из набора - то пожалуйста.
Ну ведь это бред полный!!! Я уже понял, что в виндовсе надо писать свой драйвер, но в досе то можно было на любой скорости работать - однозначно!!! Это делалось не раз и не одним человеком!!! и все с тем же 16550. И хватит уже по моему, кто-то знает как работает 51 вый, а кто-то создает аля MutherBoard для поцессоров на 650 ножек. Кому верить? Думаю тем, кто ...
Добавлено @ 13:31
Всем спасибо, узнал на сей раз достаточно много smile


--------------------
я не гольфист - я хоккеист
PM MAIL   Вверх
Romikgy
Дата 13.9.2005, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 7
Всего: 146



Цитата(takedo @ 13.9.2005, 13:30)
Romikgy
Вот все смотрю я и думаю, а что в 16550 стоит частотомер? И строго определяет, если частота не из набора:
CBR_110
CBR_19200
CBR_300
CBR_38400
CBR_600
CBR_56000
CBR_1200
CBR_57600
CBR_2400
CBR_115200
CBR_4800
CBR_128000
CBR_9600
CBR_256000
CBR_14400
, то не работаю!!!!!!!!!!!!!!!!!! А если из набора - то пожалуйста.
Ну ведь это бред полный!!! Я уже понял, что в виндовсе надо писать свой драйвер, но в досе то можно было на любой скорости работать - однозначно!!! Это делалось не раз и не одним человеком!!! и все с тем же 16550. И хватит уже по моему, кто-то знает как работает 51 вый, а кто-то создает аля MutherBoard для поцессоров на 650 ножек. Кому верить? Думаю тем, кто ...
Добавлено @ 13:31
Всем спасибо, узнал на сей раз достаточно много smile

Для микрухи 16550 передаются не частоты 115200,57600, .... ,
а коэф-енты 1,2, .. НЕТ там частотомера , но есть делитель. Выше тебе отвечал не только я , но и другие, читать/записывать из регистров порта (в ДОС) ты можешь с какой тебе угодно скоростью , а посылатся/приниматся из/в линию они будут на фиксированых частотах, и зависит это от коэф. деления в микрухе 16550.


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Dreamer_0x01
Дата 13.9.2005, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Терминатор
**


Профиль
Группа: Участник
Сообщений: 780
Регистрация: 14.4.2005
Где: Санкт-Петербург

Репутация: нет
Всего: 12



Romikgy

В компе я как раз про то и говорил, что не знаю.
А даташитом можешь кинуться на эту микруху?
Может, в ней тоже можно как-то режимы менять? ;)

Хотя, в обед пойду поковыряю какую-нибудь старую мать,из которых мы выпаиваем нужные себе элементы, посмотрю че там за микруха и Яндексом поищу... ;)

Это сообщение отредактировал(а) Dreamer_0x01 - 13.9.2005, 14:46


--------------------
Нет ничего невозможного. Есть цели, и есть время и силы на их достижение.
PM ICQ   Вверх
Romikgy
Дата 13.9.2005, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 7
Всего: 146



Цитата(Dreamer_0x01 @ 13.9.2005, 14:43)
Romikgy

В компе я как раз про то и говорил, что не знаю.
А даташитом можешь кинуться на эту микруху?
Может, в ней тоже можно как-то режимы менять? ;)

Хотя, в обед пойду поковыряю какую-нибудь старую мать,из которых мы выпаиваем нужные себе элементы, посмотрю че там за микруха и Яндексом поищу... ;)

Вот те даташит одной из семейства 16550.
rgy.pisem.net\files\PC16550DV_NSC.pdf


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
smalcom
Дата 15.9.2005, 08:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 494
Регистрация: 16.10.2004
Где: Dnepr

Репутация: нет
Всего: 7



Ветка здаровая и вверху мало чегочисал? а сразу перейду к объяснениям. Не ОСи и програмисты их писавшие бараны smile Вверху был упомянут некий девайс с которым нужно связаца на нестандартной частоте, сразу скажу что комп этого не умеет, ибо во всех микроконтролерах USART берет тактовую частоту с пределителя, а пределитель с тактового генератора, отсюда получаем что если тактовый генератор работает на нестандартной частоте, то выход отсюда только software emulation, потому что у РС сия тактовая частота фиксирована раз и навсегда. Попробуйте убедить электронщиков которые делают сей девайс использовать частоты из ряда 11.0592MHz or 14.7456MHz и иже с ними и тогда проблема решица. Если они думают что применением нестандартной частоты они какбы защитят линию от считывания данных, то они ошибаюца(сам работаю электронщиком-програмистом).

Это сообщение отредактировал(а) smalcom - 15.9.2005, 08:10


--------------------
What DA F...???
PM MAIL WWW Skype Jabber   Вверх
Dreamer_0x01
Дата 16.9.2005, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Терминатор
**


Профиль
Группа: Участник
Сообщений: 780
Регистрация: 14.4.2005
Где: Санкт-Петербург

Репутация: нет
Всего: 12



Цитата
Попробуйте убедить электронщиков которые делают сей девайс использовать частоты из ряда 11.0592MHz or 14.7456MHz


Ну вообще-то когда речь заходит об использовании UART, то именно такие кварцы и используют, иначе синхронизироваться на стандартные скорости весьма сложно.

Цитата

Если они думают что применением нестандартной частоты они какбы защитят линию от считывания данных, то они ошибаюца


Да, я уже говорил на эту тему. Но они вроде как хотят кроме того, что нестндартную частоту сделать, так кроме этого ее еще и переменной сделать. По-моему, это уже повлечет за собой массу сложностей...



Цитата

ибо во всех микроконтролерах USART берет тактовую частоту с пределителя, а пределитель с тактового генератора


В общем-то так, но "дискретность" "стандартных" частот получается гораздо ниже, чем общепринятая.
Например, имеем контроллер на 51м ядре с кварцом 11059 кГц.
Допустим, будем генерировать бодрейт таймером в режиме передачи 3, при бите SMOD равном 0. (См. Даташит)
Тогда бодрейт порта определяется выражением
F=(1/32)*(11059/12)/(256-TH1),
где TH1 - число, загружаемое в старший байт таймера 1.
Тогдя для ряда чисел ТН1=240..255 имеем следующий ряд частот:

F(240)=1.8 kHz;
F(241)=1.92 kHz;
F(242)=2.057 kHz;
F(243)=2.215 kHz;
F(244)=2.4 kHz;
F(245)=2.618 kHz;
F(246)=2.880 kHz;
F(247)=3.200 kHz;
F(248)=3.600 kHz;
F(249)=4.114 kHz;
F(250)=4.800 kHz;
F(251)=5.760 kHz;
F(252)=7.200 kHz;
F(253)=9.600 kHz;
F(254)=14.400 kHz;
F(255)=28.799 kHz;

Как видим, кроме "стандартных" значений скоростей мы получили и несколько "нестандартных":
2.618,4.114,2.057,2.215.
Естественно, при бите SMOD равном 1 эти значения умножаются на два. Ну и меняя кварцы, можно менять эти частотные ряды (скажем, в 100 раз больше...)

Таким образом, можно сделать следующий вывод: Получить на данном кристалле произвольную скорость нельзя, но можно получить "нестандартные" значения скоростей.




--------------------
Нет ничего невозможного. Есть цели, и есть время и силы на их достижение.
PM ICQ   Вверх
Страницы: (3) Все 1 2 [3] 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0477 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.