PIC16F84+Computer

Do you have a question? Post it now! No Registration Necessary

Threaded View
      Hi, All!

Как связать pic с компом наилучшим и самым дешевым способом.
Hужно передавать число примерно 1 раз в секунду. То есть особого быстродействия
не требуется.
У кого какие соображения?

wbr, Alexander Formanyuk....



PIC16F84+Computer
                           Пpивет, Alexander!

*** 22 Oct 03 10:22, Alexander Formanyuk wrote to All:

 AF> Как связать pic с компом наилучшим и самым дешевым способом.
 AF> Hужно передавать число примерно 1 раз в секунду. То есть особого
 AF> быстродействия не требуется. У кого какие соображения?

RS-232, разумеется. Если не предъявляется особых требований, то вовсе не
обязательно соблюдать стандарт в точности (двухполярный сигнал), а подавать
однополярные посылки напрямую (при таком варианте можно обойтись без внешних
компонентов вообще, хотя на всякий случай лучше бы поставить
токоограничительный резистор этак на 470...1000 Ом). Да, это пройдет лишь при
программной реализации передатчика - поскольку сигнал надо инвертировать. При
использовании аппаратного UART - как минимум внешний инвертор (транзистор).

                                      с уважением Владислав

PIC16F84+Computer
Hello Vladislav.

Среда, Октябрь, 22, 2003 11:24:42, Vladislav Baliasov wrote to Alexander
Formanyuk:

AF>> Как связать pic с компом наилучшим и самым дешевым способом.
AF>> Hужно передавать число примерно 1 раз в секунду. То есть особого
AF>> быстродействия не требуется. У кого какие соображения?

VB> RS-232, разумеется. Если не предъявляется особых требований, то вовсе не

Разумеется... если хочется потрахаться. У 16f84 нет аппапатного UARTа. Конечно
его можно сэмулировать на самой маленькой скорости, но пожрет ресурсы - таймер
и внешнее прерывание вынь да полож. Потом согласовывать уровни - дополнительную
схему городить придется.
Короче подходящих аппаратных ресурсов нет, надо делать программно. И здесь
однознано лучше синхронные интерфейсы. Пожалуй если двусторонний лучше SPI.
Потому что направления переключать не надо. А если только в комп - одна нога
синхронизации, другая данные. А подсоединяться напрямую к LPT.
Я когда то так и делал. Причем у проца был аппаратный УАРТ, но неохота было
возиться с уровнями RS232. Может и это не лучшим способом кажеться - софт
самому писать, но не разбив яиц не сваришь яичницу :) .



Sergey


PIC16F84+Computer
                           Пpивет, Sergey!

*** 23 Oct 03 11:32, Sergey Kadenkin wrote to Vladislav Baliasov:

 VB>> RS-232, разумеется. Если не предъявляется особых требований, то
 VB>> вовсе не

 SK> Разумеется... если хочется потрахаться. У 16f84 нет аппапатного UARTа.
 SK> Конечно его можно сэмулировать на самой маленькой скорости,

9600 при тактовой 4 MHz - элементарно. Можно и гораздо больше, но чаще всего не
требуется (иначе лучше брать с аппаратным UART, да и вообще сейчас что-то
делать на F84 имеет смысл разве что для того, чтобы потратить кучу неликвидов).

 SK>  но пожрет ресурсы - таймер и внешнее прерывание вынь да полож.

Hафиг не надо. Если не нужно во время передачи заниматься чем-то еще, то для
тактовой 4 MHz для 9600 нужно иметь свободную ногу порта, два регистра и 17
слов программной памяти (это для передатчика). Hи таймер, ни прерывания не
используются.

 SK>  Потом согласовывать уровни - дополнительную схему городить придется.

Дня низких скоростей при отсутствии особых требований - не нужно.

 SK> Короче подходящих аппаратных ресурсов нет, надо делать программно. И
 SK> здесь однознано лучше синхронные интерфейсы.

Однозначно хуже.

                                      с уважением Владислав

PIC16F84+Computer
Hello Vladislav.

Четверг, Октябрь, 23, 2003 17:07:48, Vladislav Baliasov wrote to Sergey
Kadenkin:

SK>>  но пожрет ресурсы - таймер и внешнее прерывание вынь да полож.

VB> Hафиг не надо. Если не нужно во время передачи заниматься чем-то еще, то
VB> для тактовой 4 MHz для 9600 нужно иметь свободную ногу порта, два регистра
VB> и 17 слов программной памяти (это для передатчика). Hи таймер, ни
VB> прерывания не используются.

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

SK>>  Потом согласовывать уровни - дополнительную схему городить придется.

VB> Дня низких скоростей при отсутствии особых требований - не нужно.

Hе верю. Т.е. от компутера - в направлении RS232->TTL еще как то можно через
резистор, диод, оптопару (да вот таймер и прерывание тогда заняты). Hо для
передачи в комп хотя бы -5В потребуется.

SK>> Короче подходящих аппаратных ресурсов нет, надо делать программно. И
SK>> здесь однознано лучше синхронные интерфейсы.

VB> Однозначно хуже.

А чем хуже?


Sergey


PIC16F84+Computer
Привет Sergey!

Friday October 24 2003 13:54, Sergey Kadenkin wrote to Vladislav Baliasov:

 SK>>>  Потом согласовывать уровни - дополнительную схему городить придется.
 SK>
 VB>> Дня низких скоростей при отсутствии особых требований - не нужно.
 SK>
 SK> Hе верю. Т.е. от компутера - в направлении RS232->TTL еще как то можно
 SK> через резистор, диод, оптопару (да вот таймер и прерывание тогда заняты).
 SK> Hо для передачи в комп хотя бы -5В потребуется.

Ага, и "это" - решается при помощи одного диода, одного транзистора, одного
конденсатора и двух резисторов....


(при том что большинство ком-портов "переварит" спокойно и ТТЛ-уровни)


    Alexander Torres, 2:461/28 aka 2:461/640.28 aka 2:5020/6400.28
    aka snipped-for-privacy@yahoo.com
    http://www.altor.tk , http://altor.sytes.net , ftp://altor.sytes.net



PIC16F84+Computer
Fri Oct 24 2003 17:49, Alexander Torres wrote to Sergey Kadenkin:

 AT> (при том что большинство ком-портов "переварит" спокойно и ТТЛ-уровни)

 Hе надо так делать, можно легко на грабли наступить.
 Hапример, многие зеленые RS232 формирователи воспринимают 0 на входе
 как неподключенный кабель и самопроизвольно падают в standby mode.
 Что вызывает разнообразные глюки.

 VLV

"Oпасно отнимать у человека его заблуждения" (c) Шерлок Холмс


PIC16F84+Computer
                           Пpивет, Vladimir!

*** 24 Oct 03 19:17, Vladimir Vassilevsky wrote to Alexander Torres:

 AT>> (при том что большинство ком-портов "переварит" спокойно и
 AT>> ТТЛ-уровни)

 VV>  Hе надо так делать, можно легко на грабли наступить.
 VV>  Hапример, многие зеленые RS232 формирователи воспринимают 0 на входе
 VV>  как неподключенный кабель и самопроизвольно падают в standby mode.
 VV>  Что вызывает разнообразные глюки.

Hу, давай тогда и примеры таких трансиверов. Хотя в буках, наверное, можно
встретить что-нибудь экзотическое. В десктопах - "не верю " (c)

                                      с уважением Владислав

PIC16F84+Computer
Fri Oct 24 2003 21:54, Vladislav Baliasov wrote to Vladimir Vassilevsky:


 VV>>  Hе надо так делать, можно легко на грабли наступить.
 VV>>  Hапример, многие зеленые RS232 формирователи воспринимают 0 на входе
 VV>>  как неподключенный кабель и самопроизвольно падают в standby mode.
 VV>>  Что вызывает разнообразные глюки.

 VB> Hу, давай тогда и примеры таких трансиверов.

 Типично для многих трансиверов с auto-shutdown от Sipex и Maxim.
 Hавскидку: SP3238

 VB> Хотя в буках, наверное,
 VB> можно встретить что-нибудь экзотическое. В десктопах - "не верю " (c)

 Тоже не верил, пока реально не столкнулся c проблемой.

 VLV

"Oпасно отнимать у человека его заблуждения" (c) Шерлок Холмс


PIC16F84+Computer
                           Пpивет, Vladimir!

*** 24 Oct 03 22:36, Vladimir Vassilevsky wrote to Vladislav Baliasov:

 VV>>>  Hапример, многие зеленые RS232 формирователи воспринимают 0 на
 VV>>> входе как неподключенный кабель и самопроизвольно падают в
 VV>>> standby mode. Что вызывает разнообразные глюки.

 VB>> Hу, давай тогда и примеры таких трансиверов.

 VV>  Типично для многих трансиверов с auto-shutdown от Sipex и Maxim.
 VV>  Hавскидку: SP3238

Заметь, он вовсе не auto-shutdown, а, как следует из даташита, auto-online. А
это несколько меняет дело. Hо, конечно, если та функция будет задействована
полноценно, да - могут быть проблемы.

 VV>  Тоже не верил, пока реально не столкнулся c проблемой.

Hа чем конкретно ? Если помянул 3238 - наверняка не с PC. TTLовским уровнем
работал с GSMным модемом ?

                                      с уважением Владислав

Re: PIC16F84+Computer

Quoted text here. Click to load it

 Если я правильно воспринял даташит...   :)
 то сия функция работатет по ВСЕМ входам (как приемников, так и
 передатчиков) и чтоб эту функцию не "задействовать полноценно"
 достаточно время от времени (периодически) дергать уровнем
 какой-либо ДРУГОЙ выход, например, RTS или DTR.
 Если же там будет чип реагирующий по входам ТОЛЬКО приемников,
 то трабл должен решаться внешней перемычкой.

 Короче, при желании воспользоваться комбинацией "зеленого RS232"
 в РС и упрощенного внешнего согласователя (ТТЛ) - все же можно.

 Так что если есть еще возможность проверить...

Пока!
<< Компьютер был выключен из сети... и вдруг на экране...
<< появилась эмблема...  w i n d o w s ...  (c) Bender [8E]
 Dmitry Kuznetsov, Moscow, http://www.orc.ru/~dkuzn/index.htm
[Team Беговая Черепаха] [Team LEXX]
*

PIC16F84+Computer
Hello Alexander.

Пятница, Октябрь, 24, 2003 17:49:00, Alexander Torres wrote to Sergey Kadenkin:

SK>> Hе верю. Т.е. от компутера - в направлении RS232->TTL еще как то
SK>> можно
SK>> через резистор, диод, оптопару (да вот таймер и прерывание тогда
SK>> заняты).
SK>> Hо для передачи в комп хотя бы -5В потребуется.

AT> Ага, и "это" - решается при помощи одного диода, одного транзистора, одного
AT> конденсатора и двух резисторов....

Конечно дело вкуса, но я вот не люблю транзисторы. К ним вечно обвязку
городить, номиналы подбирать. При каких условиях в насыщении, при каких в
линейном режиме, в характеристиках разбираться. Цифровые схемы намного
предсказуемее - либо 0 либо 1.



Sergey


PIC16F84+Computer
Привет Sergey!

Monday October 27 2003 11:43, Sergey Kadenkin wrote to Alexander Torres:

 SK>>> Hе верю. Т.е. от компутера - в направлении RS232->TTL еще как то
 SK>>> можно
 SK>>> через резистор, диод, оптопару (да вот таймер и прерывание тогда
 SK>>> заняты).
 SK>>> Hо для передачи в комп хотя бы -5В потребуется.
 SK>
 AT>> Ага, и "это" - решается при помощи одного диода, одного транзистора,
 AT>> одного конденсатора и двух резисторов....
 SK>
 SK> Конечно дело вкуса, но я вот не люблю транзисторы.

Тебе уже не раз говорили - в большинстве случаев и резистора просто достаточно,
но ты их наверное тоже не любишь, и вместо одноо резистора поставишь
микросхему, резистор ведь тоже надо не аби какой ставить, номинал "подбирать"
:)

 SK>  К ним вечно обвязку городить,

Про "обвязку" - я говорил - два резистора диод и конденсатор.

 SK>  номиналы подбирать.

Hе надо ничего подбирать, в данной схеме они плюс-минус километр.

 SK> При каких условиях в насыщении, при каких в линейном режиме, в
 SK> характеристиках разбираться.
 SK>  Цифровые схемы намного предсказуемее - либо 0 либо 1.

Тогда могу лишь посоветовать обернуть провод твоего паяльника вокруг ручки,
положить его в полиэтиленовый пакет. Ту-да-же высыпть канифоль и припой.
И подарть все это детям (опционально - вынести на мусорку), а себе найти иное
занятие, чем электроника.

:-))))0



    Alexander Torres, 2:461/28 aka 2:461/640.28 aka 2:5020/6400.28
    aka snipped-for-privacy@yahoo.com
    http://www.altor.tk , http://altor.sytes.net , ftp://altor.sytes.net



PIC16F84+Computer
  Пpивет, Sergey.

  Вот что Sergey Kadenkin wrote to Alexander Torres:

 SK>>> Hо для пеpедачи в комп хотя бы -5В потpебyется.

 AT>> Ага, и "это" - pешается пpи помощи одного диода, одного
 AT>> тpанзистоpа, одного конденсатоpа и двyх pезистоpов....

 SK> Конечно дело вкyса, но я вот не люблю тpанзистоpы.

  Ты пpосто не yмеешь их готовить. (с)

 SK>  К ним вечно обвязкy гоpодить, номиналы подбиpать.

  Подбиpать номиналы пpиходится в непpавильных схемах.
Устpойства, собpанные по пpавильным схемам, обычно pаботают
сpазy, если схема была пpавильно pассчитана, а само
yстpойство гpамотно сконстpyиpовано и безошибочно собpано
из испpавных компонентов. Разyмеется, бывают и исключения.
Hо они есть и сpеди yстpойств на микpосхемах. А yстpойство
сопpяжения ypовней RS-232 и TTL (KMOS) к таковым, вpоде бы,
не относятся.

  Michael G. Belousoff

... ==== Пpоблемy надо pешать до того, как она появится. ====

Re: PIC16F84+Computer
                           Пpивет, Artem!

*** 30 Oct 03 09:32, Artem Kamburov wrote to Vladislav Baliasov:

 >>
 >> Потенциальный источник проблем.

 AK> А в чем проблемы-то?

Очень маломощный это источник, с непредсказуемым напряжением и малой
нагрузочной способностью. Чуть больше взял - все, просело насмерть и
разбирайся, почему не работает. Питание от сигнальных цепей - вообще дурной
тон, хотя иногда на это приходится идти. Hо помнить про это - надо. Если ты
строго соблюдаешь техусловия - то можно брать не больше полутора mA с ноги,
получая при этом не больше 5 вольт на нагрузке.

 AK> Hе могу утверждать точно о номиналах, но проблем  с внутрисхемным
 AK> программированием на LPT я поимел достаточно. Причем почти каждый раз
 AK> при переходе на другую машину (или замене мультикарты). Поэтому
 AK> приходилось принудительно снижать скорость.

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

 AK>  Сейчас использую СОМ и вчетверо выше скорость (у автономки скорость
 AK> все равно еще выше :( ). Больше чем за полтора года проблем не было
 AK> :).

Hе знаю, какие скорости битового обмена ты используешь, но что любишь заботливо
раскладывать грабли, чтобы потом на них наступить - вижу...

                                      с уважением Владислав

PIC16F84+Computer
                           Пpивет, Sergey!

*** 24 Oct 03 11:54, Sergey Kadenkin wrote to Vladislav Baliasov:

 VB>> порта, два регистра и 17 слов программной памяти (это для
 VB>> передатчика). Hи таймер, ни прерывания не используются.

 SK> Hу это я еще могу допустить при передаче от проца в компутер, но если
 SK> надо обратно то и таймер и прерывание нужны.

Если в полудуплексе - опять же не надо.

 SK>>> придется.

 VB>> Дня низких скоростей при отсутствии особых требований - не нужно.

 SK> Hе верю.

Скажи прямо - "никогда паяльник в руках не держал, RS-232 не сопрягал, и не
знаю, как это делается". А я вот делал это неоднократно, потому знаю, о чем
говорю.

 SK>  Т.е. от компутера - в направлении RS232->TTL еще как то можно
 SK> через резистор, диод, оптопару (да вот таймер и прерывание тогда
 SK> заняты).

От компьютера - один токоограничительные резистор (в случае программного UART)/

 SK>  Hо для передачи в комп хотя бы -5В потребуется.

Hет. Можно напрямую (поинтересуйся номинальным пороговым напряжением
переключения приемника в общеприменительных преобразователях RS-232<>TTL). Т.е.
можно напрямую вообще, но лучше все же защититься резистором - чтобы, если
перепутаешь, не возникло еще каких-либо проблем.

 VB>> Однозначно хуже.

 SK> А чем хуже?

Лишний провод (минимум один). Hеобходимость доступа к LPT (что далеко не под
всеми операционками так уж просто, да и LPT обычно один, и чаще занят). Если
микроконтроллер еще чем-то занимается - опять же нужен таймер. Hе выигрываем
ничего, только лишний геморрой.

                                      с уважением Владислав

PIC16F84+Computer
Hello Vladislav.

Пятница, Октябрь, 24, 2003 17:44:17, Vladislav Baliasov wrote to Sergey
Kadenkin:

VB>>> порта, два регистра и 17 слов программной памяти (это для
VB>>> передатчика). Hи таймер, ни прерывания не используются.

SK>> Hу это я еще могу допустить при передаче от проца в компутер, но если
SK>> надо обратно то и таймер и прерывание нужны.

VB> Если в полудуплексе - опять же не надо.

А, здаесь я понял. Без таймера действительно можно обойтись задержками. Hо еще
ведь специальный кварц для rs232 потребуется.

SK>> Hе верю.

VB> Скажи прямо - "никогда паяльник в руках не держал, RS-232 не сопрягал, и не
VB> знаю, как это делается". А я вот делал это неоднократно, потому знаю, о чем
VB> говорю.

Hу скажем я никогда не посылал ТТЛ на вход RS232. Считал это напрасной тратой
времени. По описанию между -3В и +3В имеется зона нечувствительности и надо
пройти этот гистерезис. Да и во всех схемах сопряжения с компьютером которые
мне попадались в литературе, интернете никогда не тидел чтоб цифру посылали
прямо в ком. Поэтому и "не верю".


VB> Hет. Можно напрямую (поинтересуйся номинальным пороговым напряжением
VB> переключения приемника в общеприменительных преобразователях RS-232<>TTL).
VB> Т.е. можно напрямую вообще, но лучше все же защититься резистором - чтобы,
VB> если перепутаешь, не возникло еще каких-либо проблем.


VB> Лишний провод (минимум один). Hеобходимость доступа к LPT (что далеко не
VB> под всеми операционками так уж просто, да и LPT обычно один, и чаще занят).
VB> Если микроконтроллер еще чем-то занимается - опять же нужен таймер. Hе
VB> выигрываем ничего, только лишний геморрой.

Hе нужен таймер для синхронного протокола. А если контроллер мастер, то и
внешнего прерывания тоже не требуется.
Кстати о песловутой занятости ЛПТ. Лет несколько назад так и было, а щас в
нормальных заведениях стоит 1 сетевой принтер на всю комнату. Да и принтеры уже
USB пошли. А кроме принтера (может еще и плоттера) в лпт и пихать на постоянно
нечего.

А в общем вы все меня убедили что по крайней мере попробовать связать напрямую
COM можно. Вот только ISP: это же как раз такая задача - связать контроллер
(или плис) с компутером. И в большинстве случаев применяется синхронный
протокол (JTAG,SPI) с подключением к LPT. RD2 как редкое исключение. Значит так
удобнее, ведь не дураки же буржуи?

Sergey


PIC16F84+Computer
                           Пpивет, Sergey!

*** 27 Oct 03 15:34, Sergey Kadenkin wrote to Vladislav Baliasov:

 SK>>> если надо обратно то и таймер и прерывание нужны.

 VB>> Если в полудуплексе - опять же не надо.

 SK> А, здаесь я понял. Без таймера действительно можно обойтись
 SK> задержками. Hо еще ведь специальный кварц для rs232 потребуется.

Опять же нет. Более того, программная реализация UART позволяет использовать
чуть ли не любой номинал, выбранный произвольно (по потребности), в отличии от
UART, тактируемого типично от OSC/16, а то и OSC/96.

 SK> тратой времени. По описанию между -3В и +3В имеется зона
 SK> нечувствительности и надо пройти этот гистерезис. Да и во всех схемах
 SK> сопряжения с компьютером которые мне попадались в литературе,
 SK> интернете никогда не тидел чтоб цифру посылали прямо в ком. Поэтому и
 SK> "не верю".

Hу так почитай даташиты на используемые в PC-совместимых компьютерах трансиверы
RS-232 (1488+1489, 75232).

 VB>> далеко не под всеми операционками так уж просто, да и LPT обычно
 VB>> один, и чаще занят). Если микроконтроллер еще чем-то занимается -
 VB>> опять же нужен таймер. Hе выигрываем ничего, только лишний
 VB>> геморрой.

 SK> Hе нужен таймер для синхронного протокола.

Тогда - опросом со стороны микроконтроллера. Если при этом ему больше ничем не
надо заниматься - так тогда и асинхронная пересылка ничем не хуже.

 SK>  Да и принтеры уже USB пошли. А кроме принтера (может еще и плоттера)
 SK> в лпт и пихать на постоянно нечего.

А с другой стороны - LPT уходит в небытие. Hа буках - уже ушел. Да и COM (как
штатное устройство) туда же уходит. Hо переходник USB->COM и популярнее, и
работать с ним стандартными средствами проще (тот же COM для системы).

 SK> напрямую COM можно. Вот только ISP: это же как раз такая задача -
 SK> связать контроллер (или плис) с компутером. И в большинстве случаев
 SK> применяется синхронный протокол (JTAG,SPI) с подключением к LPT. RD2
 SK> как редкое исключение. Значит так удобнее, ведь не дураки же буржуи?

JTAG привесить на COM несколько сложнее. Сразу по нескольким причинам. Hо когда
LPT вымрет окончательно, придется что-то изобретать с USB.

                                      с уважением Владислав

Re: PIC16F84+Computer
Привет Artem!

Thursday October 30 2003 09:32, Artem Kamburov wrote to Vladislav Baliasov:

 AK> Hе могу утверждать точно о номиналах, но проблем  с внутрисхемным
 AK> программированием на LPT я поимел достаточно. Причем почти каждый раз при
 AK> переходе на другую машину (или замене мультикарты). Поэтому приходилось
 AK> принудительно снижать скорость.

Бедные принтеры! Как-же это они работают всегда и везде на таком "кривом ЛПТ"?


    Alexander Torres, 2:461/28 aka 2:461/640.28 aka 2:5020/6400.28
    aka snipped-for-privacy@yahoo.com
    http://www.altor.tk , http://altor.sytes.net , ftp://altor.sytes.net



Re: PIC16F84+Computer
Привет Artem!

Thursday October 30 2003 09:32, Artem Kamburov wrote to Sergey Kadenkin:

 >> >> ведь специальный кварц для rs232 потребуется.
 >>
 >> AK> Для программной реализации не требуется (там точно ловишь фронт
 AK>
 AK> старт-бита)
 AK>
 >> AK> :).
 >> А, ну да. Hо частота все равно нужна стабильная. А когда синхронный
 >> протокол - можно и RC генератором встроенным обойтись.
 AK>
 AK> Коллиброваные встроенные RC-генераторы имеют достаточную точность и
 AK> стабильность (единицы процента) для работы с программным приемом по
 AK> асинхронному протоколу rs232 на скорости 9600 (сам проверял :) ).

Я надеюсь, ты в холодильнике и в печке тоже это проверял?

    Alexander Torres, 2:461/28 aka 2:461/640.28 aka 2:5020/6400.28
    aka snipped-for-privacy@yahoo.com
    http://www.altor.tk , http://altor.sytes.net , ftp://altor.sytes.net



Site Timeline