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

 
 
> FT232RL и bit-bang при начальной загрузке, При включении компьютера или при подключении USB
Dmitro25
сообщение Nov 10 2017, 06:58
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 60
Регистрация: 4-04-07
Пользователь №: 26 770



Здравствуйте.
Решил использовать bit-bang ножки FT232RL для управления реле и клапаном (на 24-вольта) с компьютера. Для этого подключил ножки CBUS0, CBUS1 FTDI к оптопарам TLP621-2, дальше всё стандартное. Оптопары включаются нулём. FT и оптопары питаются от USB.
Запрограммировал FT232RL:
Hardware Specific - IO Controls - (C0=I/O mode; C1=I/O mode; C2=TXDEN)
Hardware Specific - HighIO (High Current I/O's)=True
Далее через библиотеку попробовал - всё нормально управляется.

Но обнаружился неприятный эффект:
1. Если от платы отключить кабель USB и снова подсоединить, то при подключении кабеля реле и клапан срабатывают 3 раза, т.к. на bit-bang ножках проскакивают импульсы с активным низким уровнем (один длинный импульс порядка 80 миллисекунд и два коротких (по 30 мс каждый)).
2. При включении компьютера пока не загрузилась Windows реле и клапан срабатывают 8-10 раз, причём по крайней мере один раз ещё в BIOS, до загрузки драйверов Windows.

Может быть, кто-то сталкивался с подобным поведением, подскажите, как этого можно избежать.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Dmitro25
сообщение Nov 10 2017, 10:00
Сообщение #2


Участник
*

Группа: Свой
Сообщений: 60
Регистрация: 4-04-07
Пользователь №: 26 770



2Ark
RTS я уже попробовал помониторить. Там тоже наблюдается малообъяснимая (с моей точки зрения) активность вывода, правда, импульсы имеют другой характер (количество и длительность). DTR не пробовал, но что-то мне подсказывает, что будет как на RTS.
Насчёт "зря вы их назначили" я не понимаю - производители (FTDI) специально встроили в свои чипы возможность конфигурирования выводов, для этого в самом чипе стоит EEPROM, почему микросхема прямо при старте не устанавливает там положенное Z-состояние? Какая разница, каково назначение вывода по умолчанию, если в конфигурации (к которой у самой микросхемы прямой доступ) прописано "I/O mode"?

Кстати, проверил работу остальных bit-bang выводов: на CBUS2 то же, что на CBUS0 и CBUS1, а вот на CBUS3 - никакой посторонней активности как при подключении разъёма USB, так и при загрузке компьютера. Но одной линии мне мало...

Go to the top of the page
 
+Quote Post
@Ark
сообщение Nov 10 2017, 12:22
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 688
Регистрация: 13-05-16
Пользователь №: 91 710



Цитата(Dmitro25 @ Nov 10 2017, 13:00) *
...а вот на CBUS3 - никакой посторонней активности как при подключении разъёма USB, так и при загрузке компьютера. Но одной линии мне мало...

Тогда посмотрите, заодно, что там на TX происходит при старте... Может его можно будет использовать, через Break...

Сообщение отредактировал @Ark - Nov 10 2017, 12:23
Go to the top of the page
 
+Quote Post
Dmitro25
сообщение Nov 10 2017, 12:58
Сообщение #4


Участник
*

Группа: Свой
Сообщений: 60
Регистрация: 4-04-07
Пользователь №: 26 770



Цитата(@Ark @ Nov 10 2017, 18:22) *
Тогда посмотрите, заодно, что там на TX происходит при старте... Может его можно будет использовать, через Break...


Я в шапке не всё описал для простоты: у меня ещё датчики по RS-485 опрашиваются, так что линии Rx/Tx используются по назначению.
Сейчас пробую одну линию перебросить на CBUS3, а у второй поменять полярность, чтобы активный уровень был высокий - есть подозрение, что "1" микросхема на выходах при включении не устанавливает.

Цитата(mantech @ Nov 10 2017, 18:46) *
А вы не подумали над тем, что винда видит устройство, как посл. порт со всеми вытекающими последствиями, а именно, детектирование вновь подключенных устройств к порту, попытка их идентификации по методу plug n play, подумайте?


Я писал уже выше, что переключение выводов наблюдается даже при инициализации BIOS, когда Windows ещё не начала грузиться. Ну, и если порассуждать отвлечённо, то даже во время того, как Windows пытается как-то работать с микросхемой, с чего бы ей устанавливать линии общего назначения (не имеющие отношения к последовательному порту), если у неё (микросхемы) внутри прописано, что это именно линии общего назначения.

Цитата(mantech @ Nov 10 2017, 18:46) *
ЗЫ. для подобных задач есть мс ft 2232 и ft245, там есть порты, которые так себя не ведут.


Что-то меня теперь относительно этого терзают смутные сомнения... Я бы на всякий случай перепроверил.
Go to the top of the page
 
+Quote Post
mantech
сообщение Nov 10 2017, 17:24
Сообщение #5


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(Dmitro25 @ Nov 10 2017, 15:58) *
Я писал уже выше, что переключение выводов наблюдается даже при инициализации BIOS, когда Windows ещё не начала грузиться. Ну, и если порассуждать отвлечённо, то даже во время того, как Windows пытается как-то работать с микросхемой, с чего бы ей устанавливать линии общего назначения (не имеющие отношения к последовательному порту), если у неё (микросхемы) внутри прописано, что это именно линии общего назначения.


Возможно в самой мс есть режим самотеста и он как-раз и дергает этими пинами.


Цитата(Dmitro25 @ Nov 10 2017, 15:58) *
Что-то меня теперь относительно этого терзают смутные сомнения... Я бы на всякий случай перепроверил.


А что мешает сделать так, как положено, поставить в добавок какой-нить дохленький мк, на подобии тини2313 или вообще что-нить 8и-лапое за копейку и работать с байт-ориентированными командами по уарту? Тогда все будет гарантированно надежно...

Сообщение отредактировал mantech - Nov 10 2017, 17:24
Go to the top of the page
 
+Quote Post



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

 


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


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