Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.147.61.142] |
|
Сообщ.
#1
,
|
|
|
У меня тут срочная проблема образовалась. Поискал в инете, но вменяемого решения не нашел. Помогите, может что подскжете...
У меня есть программатор для PIC -микроконтроллеров для СОМ порта. Паял сам, работает на все 100%. Проблема в том, что довольно часто приходится дергать программатор из порта и обратно "на горячую", в связи с чем один порт уже программатор не воспринимает (вроде не сгорел, но программировать отказывается). Вот у меня вопрос - как можно обезовасить себя от выгорания порта? Была мысль сделать опторазвязку, но как?.. ведь просто так поставить оптопары мало, надо ещё и напряжени епрограммирования обеспечить, а это около 5 вольт... Да даже если и внешнее использовать, то все равно от "выдергивания" на горячую порт дохнет... Что скажете? И ещё, от чего "дохнет" порт в случае "горячей" замены устройства? Спасибо. |
Сообщ.
#2
,
|
|
|
Emerald вообще первое что приходит в голову это именно оптопары... А нечто вроде этого не подойдет? USB поддерживает горячее отключение к тому же опторазвязка наверное если поискать то и схемки найти не особая проблема.
|
Сообщ.
#3
,
|
|
|
а какую микросхему использовал для преобразования напряжений?
и не понял, что горит? порт в компе? используй в следующий раз usb ftdichip , преобразовывает usb->UART, очень прост в использовании. Добавлено постоянно пользуемся и делаем устройства с подключением к com, за 5 лет ниразу ничто не сгорело, всегда подключаю и отключаю на горячую. питание из com порта берешь? какой ток? |
Сообщ.
#4
,
|
|
|
Да, собственно, никакой развязки-то и нет пока. Просто стоят ограничительные резисторы по току. А горит - фиг знает что. Просто через некоторое время порт уже не может выдавать требуемое для программирования наприяжение (непонятно почему), и программирование не идет. ftdichip - думал, но найти его не могу... Да и если найду, то дорого все это будет, мне кажется...
|
Сообщ.
#5
,
|
|
|
не, какую схему используешь для преобразования уровней?
в rs232 0 - -15v, 1 - +15v, а тебе нужно 0v-5v, +12v, так? если ты запитываешь программатор, то проверь, есть ли диод между vdd и reset/vpp с пина можно запитать только несколько миллиампер, pic точно потребляет в десятки раз больше во время записи или у тебя нет диода. |
Сообщ.
#6
,
|
|
|
Схема у меня, короче, вот такая...
Там, как видите, защиты нет никакой, только токоограничительные резисторы. И преобразование уровней происходит по току (то есть чтобы при номинальном токе на резисторе оседало 10В, я так понял). |
Сообщ.
#8
,
|
|
|
Цитата m_fox @ в rs232 0 - -15v, 1 - +15v, а тебе нужно 0v-5v, +12v, так? если ты запитываешь программатор, то проверь, есть ли диод между vdd и reset/vpp с пина можно запитать только несколько миллиампер, pic точно потребляет в десятки раз больше во время записи или у тебя нет диода. такие напряжения только в теории... несколько лет назад была надобность, проверял реальные параметры более чем полусотникомпов на соответствие стандарту. как выяснилось, в большинстве случаев, компутерный ком-порт не соответствует стандарту RS-232, представляя "1" как 10...14В, а "0" как 0...3В. это не мешает работать ему с устройствами, соответствующими стандарту по разделу "плюс-минус", а интерфейс "токовая петля", который следовало бы использовать в данном случае и который является частью стандарта RS-232, к сожалению, не поддерживается компутерными ком-портами со времён ХТ с каждого выхода ком-порта Emerald, померяй напруги на пинпх в "живых" и "неживых" портах, используя какой-нить тестовый софт для фиксации состояний. сейчас мне немножко лень (всю ночь не спал, а ещё на работу идти), но если сам не найдёшь чем выставлять порты, пиши сюда, авось к вечеру вспомню... |
Сообщ.
#9
,
|
|
|
Цитата Печальный Самурай @ компутерный ком-порт не соответствует стандарту RS-232, представляя "1" как 10...14В, а "0" как 0...3В. RS-232 это одна из аппаратных реализаций EIA-232: В компьютерных COM портах представление логических уровней в виде напряжения относительно GND "1" = -3...-15вольт "0" = +3...+15вольт ноутбуки обычно работают -/+ 5вольт, десктопы -/+12 в микроконтроллерах встроенные UART-ы работают без инверсии, т.е. +3..+5 - это "1" а "0" это ноль. Цитата Emerald И ещё, от чего "дохнет" порт в случае "горячей" замены устройства? при "горячем" отключении, пины разъединяются не одновременно, поэтому схема подключения на мнгновение становится не та что предполагается, соотвественно накопленная энергия на кондерах JDM может приложится к порту так как ему "не понравится". Вывод - не передергивать внешние устройства на "горячую". Достаточно "попросить" ОС уйти в стандбай режим(очень быстрое явление) и произвести коммутацию. |
Сообщ.
#10
,
|
|
|
Цитата Emerald @ Вот у меня вопрос - как можно обезовасить себя от выгорания порта? Если ты умеешь паять - заберись внутрь компа и запаяй где-нибудь внутри на сигналы TXD,RXD дву-полярные супрессоры вольт на 12. (необходимо зашунтировать супрессором сигнальный провод на землю) Например, SMBJ12CA. Или серий P6KExx, P1KExx. Если нет двух-анодных, Можно взять 2 с одним анодом и включить встречно. Порты обычно горят от значительного напряжения, к ним приложенного. 1.Один из опасных вариантов - соединение включенных компов "на-горячую". На корпусе компа, как известно, напряжение ~110V 50 Гц. Если случайно при соединении сначала подключится сигнальный провод и только потом земля - порт может выгореть. 2.Второй вариант выгорания: рядом с компом подключается/отключается значительная нагрузка посредством втыкания в розетку. Получается значительная наводка E = -L(dI/dT) - быстрое изменение тока на индуктивности проводов (шнура питания). Супрессор - быстродействующий стабилитрон-ограничитель, способный кратковременно рассеивать большую мощность. Например, 500вТ/1мС. Предназначен специально для таких потребностей. |
Сообщ.
#11
,
|
|
|
Цитата ЫукпШ @ и на остальные каналы тоже...на сигналы TXD,RXD Цитата AlexJ @ В компьютерных COM портах представление логических уровней в виде напряжения относительно GND "1" = -3...-15вольт "0" = +3...+15вольт хмм. ни разу не видел инверсного ком-порта втыкаем светодиод между DTR и GND анодом к DTR. ребутаем комп. после окончания POST на всех пинах ком-порта логический "0", а светодиод не горит. пишем "1" в DTR, светодиод горит... Цитата ЫукпШ @ 1.Один из опасных вариантов - соединение включенных компов "на-горячую". На корпусе компа, как известно, напряжение ~110V 50 Гц. Если случайно при соединении сначала подключится сигнальный провод и только потом земля - порт может выгореть. примечание. это актуально только в случае питания железок от "совковой" сети, когда заземляющий контакт розетки никуда не подключен. если соединяемые девайсы питаются от одного "пилота" или аналогичного устройства, их корпуса будут соединены между собой независимо от наличия заземления на "земляном" контакте "пилота", и портам ничего не сделается. а у нас на работе корпуса компов заземлены медной шиной сечением квадратов десять, не меньше... шина привинчена к корпусу болтом М8. (видимо, чтоб системник не упёрли ) тоже хорошее решение... |
Сообщ.
#12
,
|
|
|
Цитата Печальный Самурай @ хмм. ни разу не видел инверсного ком-порта втыкаем светодиод между DTR и GND анодом к DTR. ребутаем комп. после окончания POST на всех пинах ком-порта логический "0", а светодиод не горит. пишем "1" в DTR, светодиод горит... Может полярность светодиода была попутана во время эксперимента? Вот здесь в картинках http://www.lookrs232.com/rs232/waveforms.htm Да и осцилограф тоже самое показывает. "1" = -3...-15вольт "0" = +3...+15вольт |