реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> COM-порт для SPI
Eduard_k
сообщение Jul 7 2006, 22:26
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 196
Регистрация: 14-04-06
Пользователь №: 16 137



Есть ли какая нибудь возможность управлять линиями COM-порта по отдельности? Т.е. чтобы каким-то образом в один момент времени задавать уровни выходов порта отдельно. Чтобы использовать COM-порт для каких-то отладочных целей. Как можно реализовать SPI на COM-порту? Есть ли кикие нибудь ньюансы при использовании USB<->COM преобразователей т.е. при отладке виртуальными COM-портами?
Порекомендуйте ресурс по программированию на котором можно получить полную информацию о работе с COM-портом в среде MS Visual C++.

Спасибо.
Go to the top of the page
 
+Quote Post
-Al-
сообщение Jul 8 2006, 12:28
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 330
Регистрация: 10-06-05
Из: Россия, Москва
Пользователь №: 5 894



Rx, Tx дергать не получится, можно только сигналы управления вручную переключать. SPI на COM порту реализовать врядли получится, по крайней мере просто проводками, тут контроллер понадобится. Виртуальны COM порт (тот, что USB->COM) ничем не отличается от обычного по крайней мере под виндами.
Go to the top of the page
 
+Quote Post
Eduard_k
сообщение Jul 8 2006, 21:17
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 196
Регистрация: 14-04-06
Пользователь №: 16 137



Если можно дергать сигналы управления то почему на них нельзя реализовать SPI? Дергать их соответствующим образом по таймеру и будет SPI. Как думаете господа?
Go to the top of the page
 
+Quote Post
plombir
сообщение Jul 9 2006, 03:02
Сообщение #4


Частый гость
**

Группа: Участник
Сообщений: 99
Регистрация: 14-12-05
Пользователь №: 12 191



SPI на COM порте:
Схематехника - м/с мах232 или подобная с 2-мя каналами в одну сторону и с 2-мя в другую. Резисторы 4k7 на землю после СОМа. Для Delphi использовал компонент TMS Async32 10 Sep 2002 srс. Для управления ногой Тх использовал команду "break" (разрыв порта в высоко-импедансное состояние). С остальными управляющими ногами проблем не было. Скорость 115Кб/с.

Столкнулся с маленьким траблом. Под ХР из за её особенностей, наблюдались ошибки (примерно 30-50%) при передачи пакетами по 256 байт. Под W98 - ниодной ошибки. В этом форуме мне присоветовали блокировать все процессы под ХР и использовать нулевой уровень.
http://electronix.ru/forum/index.php?showtopic=11244

Проверял на переходнике USD->COM - работает как часы.
Go to the top of the page
 
+Quote Post
rezident
сообщение Jul 9 2006, 18:26
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(plombir @ Jul 9 2006, 09:02) *
SPI на COM порте:
Схематехника - м/с мах232 или подобная с 2-мя каналами в одну сторону и с 2-мя в другую. Резисторы 4k7 на землю после СОМа. Для Delphi использовал компонент TMS Async32 10 Sep 2002 srс. Для управления ногой Тх использовал команду "break" (разрыв порта в высоко-импедансное состояние). С остальными управляющими ногами проблем не было. Скорость 115Кб/с.

А как вы всего на двух выходных линиях передатчика сделали SPI? Без CS(SS)-а что ли? Как в таком случае начало/конец пакета определяется?
Go to the top of the page
 
+Quote Post
plombir
сообщение Jul 9 2006, 21:05
Сообщение #6


Частый гость
**

Группа: Участник
Сообщений: 99
Регистрация: 14-12-05
Пользователь №: 12 191



Цитата(rezident @ Jul 9 2006, 22:26) *
А как вы всего на двух выходных линиях передатчика сделали SPI? Без CS(SS)-а что ли? Как в таком случае начало/конец пакета определяется?

Для моей задачи SS сигнал не требовался. Цель данного девайса - программатор для ATMega64 и тут
же через UART контроллера прошивалась 16Мбит flash м/с. Начало пакета - это комп как мастер. Конец пакета, в данном случае, не надо отслеживать. Длина известная.
Правда, Reset на м/к я подключил не через мах232. Резистор 4к7 + стабилитрон 5V1. По этой анологии и SS можно вывести.
Go to the top of the page
 
+Quote Post
nml
сообщение Jul 10 2006, 09:57
Сообщение #7


Частый гость
**

Группа: Свой
Сообщений: 86
Регистрация: 13-06-04
Из: Minsk
Пользователь №: 29



Цитата(Eduard_k @ Jul 8 2006, 01:26) *
Есть ли какая нибудь возможность управлять линиями COM-порта по отдельности? Т.е. чтобы каким-то образом в один момент времени задавать уровни выходов порта отдельно. Чтобы использовать COM-порт для каких-то отладочных целей. Как можно реализовать SPI на COM-порту? Есть ли кикие нибудь ньюансы при использовании USB<->COM преобразователей т.е. при отладке виртуальными COM-портами?
Порекомендуйте ресурс по программированию на котором можно получить полную информацию о работе с COM-портом в среде MS Visual C++.

Спасибо.

У меня есть нечто подходящее. Работает с LPT или COM, для COM схема стыка простая (см. на http://avr.nikolaew.org/debug) - такая же как для отладчика. То есть несколько резисторов и диодов. Позволяет управлять линиями данных и строба, а также обмен байтом организовать.



Если интересно, выложу где-нибудь.
Что касается виртуальных USB COM-портов, то все работает, но очень медленно. Слышал только про FT2232 - к нему есть драйвер, организующий SPI - но сия микросхема в руки пока не попадалась, так что проверить/пощупать не мог.
Go to the top of the page
 
+Quote Post
Wild
сообщение Jul 10 2006, 12:21
Сообщение #8


Местный
***

Группа: Участник
Сообщений: 216
Регистрация: 26-05-06
Из: Коломна
Пользователь №: 17 479



Цитата(-Al- @ Jul 8 2006, 16:28) *
Rx, Tx дергать не получится, можно только сигналы управления вручную переключать. SPI на COM порту реализовать врядли получится, по крайней мере просто проводками, тут контроллер понадобится. Виртуальны COM порт (тот, что USB->COM) ничем не отличается от обычного по крайней мере под виндами.


RX - это вход )), а вот TX можно дергать если UART 16450 или 16550, такие микросхемы раньше на персоналках стояли, сейчас, вероятно, ничего не изменилось.
Go to the top of the page
 
+Quote Post
TED17
сообщение Aug 5 2006, 21:15
Сообщение #9


Частый гость
**

Группа: Свой
Сообщений: 181
Регистрация: 25-02-06
Пользователь №: 14 663



Цитата(nml @ Jul 10 2006, 13:57) *
Что касается виртуальных USB COM-портов, то все работает, но очень медленно.

Странно, виртуальные порты обычно шустрее стандартных.

Цитата
Слышал только про FT2232 - к нему есть драйвер, организующий SPI - но сия микросхема в руки пока не попадалась, так что проверить/пощупать не мог.

Так дело всё же в дровах? Может кто встречал и на другие чипы?
Go to the top of the page
 
+Quote Post
upc2
сообщение Aug 10 2006, 10:01
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 506
Регистрация: 29-09-05
Из: Донецк
Пользователь №: 9 063



Всеми сигналами СОМ порта можно управлять.
SPI протокол хоть и считается 3-проводным, однако для него необходимо 6 линий
связи . Входные (для СОМ порта) RDY , OUT и выходные SCLK,CS,IN,RESET.
В СОМ порту , к сожаленю, наоборот 5 входных линий RxD,DCD,CTS,DSR,RI и 3 выходных
TxD,RTS,DTR.
Если не использовать CS(заземлить), а TX использовать для сброса, то в принципе СОМ порт можно
использовать для SPI протокола.Например:
TxD -> RESET
RTS -> SCLK
DTR -> IN
DCD -> OUT
CTS -> RDY

и необходимо согласовать уровни.
Go to the top of the page
 
+Quote Post
rezident
сообщение Aug 10 2006, 13:38
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(upc2 @ Aug 10 2006, 16:01) *
Всеми сигналами СОМ порта можно управлять.
SPI протокол хоть и считается 3-проводным, однако для него необходимо 6 линий
связи .

Во-первых SPI это не протокол, а интерфейс. Во-вторых, откуда вы это взяли? Вы знакомы с SPI только по интерфейсу DataFlash что ли?
Go to the top of the page
 
+Quote Post
upc2
сообщение Aug 11 2006, 04:24
Сообщение #12


Знающий
****

Группа: Свой
Сообщений: 506
Регистрация: 29-09-05
Из: Донецк
Пользователь №: 9 063



Цитата(rezident @ Aug 10 2006, 16:38) *
Цитата(upc2 @ Aug 10 2006, 16:01) *

Всеми сигналами СОМ порта можно управлять.
SPI протокол хоть и считается 3-проводным, однако для него необходимо 6 линий
связи .

Во-первых SPI это не протокол, а интерфейс. Во-вторых, откуда вы это взяли? Вы знакомы с SPI только по интерфейсу DataFlash что ли?


Попробуйте передать по нему без протокола.Зачем реплики? Поделитесь своими познаниями.
Go to the top of the page
 
+Quote Post
rezident
сообщение Aug 11 2006, 07:51
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(upc2 @ Aug 11 2006, 10:24) *
Цитата(rezident @ Aug 10 2006, 16:38) *

Цитата(upc2 @ Aug 10 2006, 16:01) *

Всеми сигналами СОМ порта можно управлять.
SPI протокол хоть и считается 3-проводным, однако для него необходимо 6 линий
связи .

Во-первых SPI это не протокол, а интерфейс. Во-вторых, откуда вы это взяли? Вы знакомы с SPI только по интерфейсу DataFlash что ли?


Попробуйте передать по нему без протокола.Зачем реплики? Поделитесь своими познаниями.

Гы smile.gif Реплика совершенно в тему. Вот у меня к SPI-порту МК прицеплен регистр с последовательным входом и параллельным выходом 74HC595? Огласите, пожалуйста, название протокола по которому я делаю запись в этот регистр, если вас это не затруднит. Или по-вашему это уже не SPI? wink.gif

Сообщение отредактировал rezident - Aug 11 2006, 07:52
Go to the top of the page
 
+Quote Post
Eduard_k
сообщение Aug 11 2006, 08:06
Сообщение #14


Частый гость
**

Группа: Свой
Сообщений: 196
Регистрация: 14-04-06
Пользователь №: 16 137



Господа, давайте отставим спор. В теме идет речь об интерфейсе SPI. И о том как реализовать его на RS-232.
Интерфейс вообще имеет 4 вывода, выводы Ready и Reset дополнительные. Первый отсутствует если целевое устройство всегда готово, а сброс может быть реализован глобально Reset (например МК) или вовсе отсутствовать.
Наиболее важными являются именно эти пины - SI, SO, SCLK, CS. О них и будем говорить.
Хотелось бы раздобыть класс/библиотеку для реализации вышеназваных четырех выводов (можно остальные в качестве GPIO) в Visual C++ .NET

Сообщение отредактировал Eduard_k - Aug 11 2006, 08:33
Go to the top of the page
 
+Quote Post
upc2
сообщение Aug 11 2006, 08:27
Сообщение #15


Знающий
****

Группа: Свой
Сообщений: 506
Регистрация: 29-09-05
Из: Донецк
Пользователь №: 9 063



Протоколов бывает много.Вот для вашего Гы.
Толковый словарь эл.вычислительной техники.
Бит ориентированный протокол
Протокол шины
Протокол обмена
Интерфейсный протокол
Протокол взаимодействия
Протокол линии передачи данных и т.д.
Это все, что попало под ваш пример.Выбирайте.То , что SPI и интефейс я не отрицаю.
Все это мелочи . Все ошибаются.Вы уточните где моя ошибка.
Тогда я буду знать.А Зы и Гы я не понимаю.
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th June 2025 - 16:53
Рейтинг@Mail.ru


Страница сгенерированна за 0.01491 секунд с 7
ELECTRONIX ©2004-2016