Dmitro25 0 10 ноября, 2017 Опубликовано 10 ноября, 2017 · Жалоба Здравствуйте. Решил использовать 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. Может быть, кто-то сталкивался с подобным поведением, подскажите, как этого можно избежать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
@Ark 3 10 ноября, 2017 Опубликовано 10 ноября, 2017 · Жалоба ... подключил ножки CBUS0, CBUS1 FTDI к оптопарам TLP621-2, дальше всё стандартное... По умолчанию, выводы CBUS0 и CBUS1 предназначены для индикации приема и передачи. Зря вы их переназначили. Не стоило этого делать. Вообще, по моему, не стоило перепрограммировать FTDI. Для ваших целей вполне можно использовать выводы DTR# и RTS#, управляемые через виртуальный порт. Там таких проблем быть не должно. Эффект, который вы наблюдаете, можно объяснить как индикацию подключения устройства, когда оно начинает работу, через индикаторы приема/передачи. Возможно, свои переназначенные функции выводы CBUS0 и CBUS1 принимают не сразу после старта... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dmitro25 0 10 ноября, 2017 Опубликовано 10 ноября, 2017 · Жалоба 2Ark RTS я уже попробовал помониторить. Там тоже наблюдается малообъяснимая (с моей точки зрения) активность вывода, правда, импульсы имеют другой характер (количество и длительность). DTR не пробовал, но что-то мне подсказывает, что будет как на RTS. Насчёт "зря вы их назначили" я не понимаю - производители (FTDI) специально встроили в свои чипы возможность конфигурирования выводов, для этого в самом чипе стоит EEPROM, почему микросхема прямо при старте не устанавливает там положенное Z-состояние? Какая разница, каково назначение вывода по умолчанию, если в конфигурации (к которой у самой микросхемы прямой доступ) прописано "I/O mode"? Кстати, проверил работу остальных bit-bang выводов: на CBUS2 то же, что на CBUS0 и CBUS1, а вот на CBUS3 - никакой посторонней активности как при подключении разъёма USB, так и при загрузке компьютера. Но одной линии мне мало... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
@Ark 3 10 ноября, 2017 Опубликовано 10 ноября, 2017 (изменено) · Жалоба ...а вот на CBUS3 - никакой посторонней активности как при подключении разъёма USB, так и при загрузке компьютера. Но одной линии мне мало... Тогда посмотрите, заодно, что там на TX происходит при старте... Может его можно будет использовать, через Break... Изменено 10 ноября, 2017 пользователем @Ark Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 49 10 ноября, 2017 Опубликовано 10 ноября, 2017 · Жалоба Может быть, кто-то сталкивался с подобным поведением, подскажите, как этого можно избежать. А вы не подумали над тем, что винда видит устройство, как посл. порт со всеми вытекающими последствиями, а именно, детектирование вновь подключенных устройств к порту, попытка их идентификации по методу plug n play, подумайте? ЗЫ. для подобных задач есть мс ft 2232 и ft245, там есть порты, которые так себя не ведут. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dmitro25 0 10 ноября, 2017 Опубликовано 10 ноября, 2017 · Жалоба Тогда посмотрите, заодно, что там на TX происходит при старте... Может его можно будет использовать, через Break... Я в шапке не всё описал для простоты: у меня ещё датчики по RS-485 опрашиваются, так что линии Rx/Tx используются по назначению. Сейчас пробую одну линию перебросить на CBUS3, а у второй поменять полярность, чтобы активный уровень был высокий - есть подозрение, что "1" микросхема на выходах при включении не устанавливает. А вы не подумали над тем, что винда видит устройство, как посл. порт со всеми вытекающими последствиями, а именно, детектирование вновь подключенных устройств к порту, попытка их идентификации по методу plug n play, подумайте? Я писал уже выше, что переключение выводов наблюдается даже при инициализации BIOS, когда Windows ещё не начала грузиться. Ну, и если порассуждать отвлечённо, то даже во время того, как Windows пытается как-то работать с микросхемой, с чего бы ей устанавливать линии общего назначения (не имеющие отношения к последовательному порту), если у неё (микросхемы) внутри прописано, что это именно линии общего назначения. ЗЫ. для подобных задач есть мс ft 2232 и ft245, там есть порты, которые так себя не ведут. Что-то меня теперь относительно этого терзают смутные сомнения... Я бы на всякий случай перепроверил. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
@Ark 3 10 ноября, 2017 Опубликовано 10 ноября, 2017 · Жалоба 2Ark ... а вот на CBUS3 - никакой посторонней активности как при подключении разъёма USB, так и при загрузке компьютера. Но одной линии мне мало... В таком случае, используйте линию CBUS3, непосредственно, для питания ваших оптопар. Или для включения питания оптопар через транзистор. Кстати, для этого она и предназначена по умолчанию. ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 49 10 ноября, 2017 Опубликовано 10 ноября, 2017 (изменено) · Жалоба Я писал уже выше, что переключение выводов наблюдается даже при инициализации BIOS, когда Windows ещё не начала грузиться. Ну, и если порассуждать отвлечённо, то даже во время того, как Windows пытается как-то работать с микросхемой, с чего бы ей устанавливать линии общего назначения (не имеющие отношения к последовательному порту), если у неё (микросхемы) внутри прописано, что это именно линии общего назначения. Возможно в самой мс есть режим самотеста и он как-раз и дергает этими пинами. Что-то меня теперь относительно этого терзают смутные сомнения... Я бы на всякий случай перепроверил. А что мешает сделать так, как положено, поставить в добавок какой-нить дохленький мк, на подобии тини2313 или вообще что-нить 8и-лапое за копейку и работать с байт-ориентированными командами по уарту? Тогда все будет гарантированно надежно... Изменено 10 ноября, 2017 пользователем mantech Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dmitro25 0 11 ноября, 2017 Опубликовано 11 ноября, 2017 · Жалоба А что мешает сделать так, как положено, поставить в добавок какой-нить дохленький мк, на подобии тини2313 или вообще что-нить 8и-лапое за копейку и работать с байт-ориентированными командами по уарту? Тогда все будет гарантированно надежно... Я в шапке не всё описал для простоты: у меня FT232 занимается опросом датчиков по RS-485, параллельно ещё встала задача управления реле и клапаном - вот я и решил не ставить дополнительный микроконтроллер, а использовал имеющиеся возможности. С микроконтроллером тоже проблемы: его нужно как-то программировать, плюс в маленьких не всегда бывает UART, плюс осциллятор к нему надо, если встроенный в температуре сильно плавает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 49 11 ноября, 2017 Опубликовано 11 ноября, 2017 · Жалоба С микроконтроллером тоже проблемы: его нужно как-то программировать, плюс в маленьких не всегда бывает UART В принципе логично, просто прием нескольких байт по уарту и сравнение их с эталонными, при наличии даташита на контроллер делается за несколько часов, даже непрофессионалом. Да, в мелких уарта нет, делал программный, на скорости 9600 прекрасно работает без внешнего кварца на мк ATtiny45, но если реализация программного приемника вызывает сложности, можно поставить с аппаратным - ATtiny2313. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dmitro25 0 12 ноября, 2017 Опубликовано 12 ноября, 2017 · Жалоба В таком случае, используйте линию CBUS3, непосредственно, для питания ваших оптопар. Или для включения питания оптопар через транзистор. Кстати, для этого она и предназначена по умолчанию. ;) Я думал об этом, но, боюсь, линия может не потянуть по току две оптопары (в описании на саму микросхему недостаточно информации по нагрузочной способности, но в документе по её программированию написано, что выводы, которые "high current io", должны "тянуть" до 12 мА). А транзистор ставить буду только в крайнем случае (если другие способы не заработают), т.к. плата уже изготовлена. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
@Ark 3 12 ноября, 2017 Опубликовано 12 ноября, 2017 · Жалоба Я думал об этом, но, боюсь, линия может не потянуть по току две оптопары... Что там за оптопары у Вас? Например, для PC817A достаточно 1-2 мА. Тем более, вопрос о скорости переключения, как я понял, не актуален. Питаются же от этих выводов индикаторные светодиоды, оптопара не сильно от них отличается. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dmitro25 0 12 ноября, 2017 Опубликовано 12 ноября, 2017 · Жалоба Что там за оптопары у Вас? Например, для PC817A достаточно 1-2 мА. Тем более, вопрос о скорости переключения, как я понял, не актуален. Питаются же от этих выводов индикаторные светодиоды, оптопара не сильно от них отличается. TLP621-2, 10 мА на каждый вход Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dmitro25 0 13 ноября, 2017 Опубликовано 13 ноября, 2017 · Жалоба Сегодня протестировал изменённую схему: одну линию перенёс на CBUS3, а оставшуюся включил инверсно (то есть теперь оптопара включается "1"). Описанные эффекты ушли. Теперь при подключении USB и при загрузке компьютера никаких лишних срабатываний исполнительных устройств. Всем спасибо за участие. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться