PIC и последовательные порты

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

Translate This Thread From Russian to

Threaded View
Hello All!

Приятель собрался делать некоторое устройство на PIC, которое должно включаться
"в разрыв провода" между двумя блоками довольно экзотического оборудования и по
командам с компа что-то там делать с данными, по этому проводу бегающими.
Экзотическое оборудование общается по RS422, скорость 38400. Общение довольно
активное. Команды с компа должны поступать через последовательный порт, не
часто и не быстро - это задание режима работы и получение некоторой статусной
информации. Обязательна гальваническая развязка, ибо у компа на корпусе почти
всегда напряжение, а дорогое оборудование подвергать риску нельзя.
Из условий задачи следует, что к ПИКу должно быть подключено аж целых три
последовательных порта. Программная эмуляция UART не годится по быстродействию.
Контроллер будет стоять PIC16F874 (просто он есть в наличии и я уже пообещал
предоставить его для экспериментов).
Возникает вопрос - какие микросхемы UART предпочтительно использовать?
Изучение ассортимента ближайшего магазина показало наличие вот этих:

  MAX3140 от MAXIM/Dallas и SC28C94 от Philips.
  
  3140 -- одноканальный дуплексный UART с интегрированной
  опторазвязкой, приемопередатчком RS422, внутренним кварцем
  и последовательным интерфейсом. Стоимость около 10уе.

  28С94 -- 4-канальный дуплексный UART без приемопередатчиков
  и внутреннего генератора с параллельным интерфейсом и встроенной
  логикой обслуживания прерываний. Стоимость около 30уе.
  Требует двух внешних счетверенных приемопередатчиков по 2уе штука.

Первый выглядит симпатичнее, но смущает упоминание о последовательном
интерфейсе. Можно ли два таких подключить к порту I2C ПИКа или это будет
слишком медленно, или невозможно вообще?
Второй - где бы подсмотреть способ правильного подключения к ПИКу?

Может быть есть еще какие-то подходящие к данному случаю UARTы ?

Заранее благодарю всех за полезные советы...

Zahar(@spbdept.rbc.ru)


PIC и последовательные порты
Привет Zahar!

Friday December 26 2003 23:33, Zahar Kiselev wrote to All:

 ZK>   MAX3140 от MAXIM/Dallas и SC28C94 от Philips.
 ZK>
 ZK>   3140 -- одноканальный дуплексный UART с интегрированной
 ZK>   опторазвязкой, приемопередатчком RS422, внутренним кварцем
 ZK>   и последовательным интерфейсом. Стоимость около 10уе.
 ZK>
 ZK>   28С94 -- 4-канальный дуплексный UART без приемопередатчиков
 ZK>   и внутреннего генератора с параллельным интерфейсом и встроенной
 ZK>   логикой обслуживания прерываний. Стоимость около 30уе.
 ZK>   Требует двух внешних счетверенных приемопередатчиков по 2уе штука.

Что это за такие навороченные приемопередатчики?  Обычными МАХ202 обойтись
нельзя? Обязательно все сигналы нужны?

 ZK>
 ZK> Первый выглядит симпатичнее, но смущает упоминание о последовательном
 ZK> интерфейсе. Можно ли два таких подключить к порту I2C ПИКа или это будет
 ZK> слишком медленно, или невозможно вообще? Второй - где бы подсмотреть
 ZK> способ правильного подключения к ПИКу?
 ZK>
 ZK> Может быть есть еще какие-то подходящие к данному случаю UARTы ?

В твоем слечае, надо брать конечно контроллер с двумя УАРТами, но если уж так
хочется делать через задницу с одним - поставь вместо второго УАРТа другой
контроллер, и свяжи их вместе ихним скоростным аппаратным SPI.


    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



PIC и последовательные порты
Hello Alexander!

Dec 27 00:42 03, Alexander Torres wrote to Zahar Kiselev:

 ZK>>   3140 -- одноканальный дуплексный UART с интегрированной
 ZK>>   опторазвязкой, приемопередатчком RS422, внутренним кварцем
 ZK>>   и последовательным интерфейсом. Стоимость около 10уе.
 AT> Что это за такие навороченные приемопередатчики?  Обычными МАХ202
 AT> обойтись нельзя? Обязательно все сигналы нужны?
Дело не в сигналах(хотя по-моему там есть управление потоком, уточню завтра),
а в наличии всего готового, прежде всего опторазвязки. Так как конструкция
изготавливается в количестве одна штука - лишние несколько баксов за
возможность сиьлно уменьшить количество деталей на плате - не кажутся дорогой
ценой. Вопрос вызывает лишь быстродействие - хватит ли его при последовательном
подключении к ПИКу и скорости 38400 ?  
Я надеялся что кто-нибудь пробовал подключать такие "последовательные"
приемопередатчики к ПИКу и сможет сказать что-то определенное о быстродействии.

 AT> В твоем слечае, надо брать конечно контроллер с двумя УАРТами,
А что - такие ПИКи бывают?
Вообще-то в данном случае даже три порта нужно... Таких точно нет.
Вот я и спрашивал - как к ПИКу лучше три порта подключить.

 AT> - поставь вместо второго УАРТа другой контроллер, и свяжи их вместе ихним
 AT> скоростным аппаратным SPI.
Два контроллера вместо одного - слишком сложно потом это программировать.
В этом отношении параллельное подключение нескольких приемопередатчиков к
одному контроллеру хотя и потребует много проводов на плате, но в использовании
попроще будет.

Zahar(@spbdept.rbc.ru)


PIC и последовательные порты

   Zahar, ты ещё здесь сидишь?


Суббота Декабрь 27 2003 16:18, Zahar Kiselev wrote to Alexander Torres:

 AT>> В твоем слечае, надо брать конечно контроллер с двумя УАРТами,
 ZK> А что - такие ПИКи бывают?

 Да. PIC18F6520/6620/6720/8520/8620/8720. Hе из дешёвых, но если надо...

 ZK> Вообще-то в данном случае даже три порта нужно... Таких точно нет.
 ZK> Вот я и спрашивал - как к ПИКу лучше три порта подключить.

 Мне разок приходилось добавлять ещё один проц, ради дополнительного
UART'а. Подойдёт дешёвка, вроде AT89C2051 или PIC16F627. Ресурсов
с избытком, при желании можно и программный UART на нём слепить...

 AT>> - поставь вместо второго УАРТа другой контроллер, и свяжи их
 AT>> вместе ихним скоростным аппаратным SPI.
 ZK> Два контроллера вместо одного - слишком сложно потом это
 ZK> программировать.

 Hичего сложного. Только внятный протокол обмена сочинить, да две
программки писать, вместо одной. Эта часть за день-два делается.

 ZK> В этом отношении параллельное подключение нескольких
 ZK> приемопередатчиков к одному контроллеру хотя и потребует много
 ZK> проводов на плате, но в использовании попроще будет.

 "Хозяин - барин" (c)


                                                   Георгий


Re: PIC и последовательные порты
Здраствуйте Zahar,
*27.12.03* *16:18:26* Вы писали в *RU.EMBEDDED*
сообщение к *Alexander Torres*
о *"PIC и последовательные порты"*.

 AT>> В твоем слечае, надо брать конечно контроллер с двумя УАРТами,
 ZK> А что - такие ПИКи бывают?

Да бывают:
PIC18F6410;
PIC18F6520;
PIC18F6620;
PIC18F6720;
PIC18F8410;
PIC18F8520;
PIC18F8620;
PIC18F8720.

;)

С уважением, Den


PIC и последовательные поpты
  Пpивет, Alexander.

  Вот что Alexander Torres wrote to Zahar Kiselev:

 ZK>> Может быть есть еще какие-то подходящие к данномy слyчаю UARTы ?

 AT> В твоем слечае, надо бpать конечно контpоллеp с двyмя УАРТами, но если
 AT> yж так хочется делать чеpез задницy с одним - поставь вместо втоpого
 AT> УАРТа дpyгой контpоллеp, и свяжи их вместе ихним скоpостным аппаpатным
 AT> SPI.

  А тyт именно "чеpез задницy" (2 контpоллеpа, связанных SPI)
и пpидётся делать. Ведь надо не 2, а 3 UARTа. Мне контpоллеpы
с тpемя UARTами как-то не попадались.

  Michael G. Belousoff

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

Re: PIC и последовательные поpты
Hello Michael,


AT> В твоем слечае, надо бpать конечно контpоллеp с двyмя УАРТами, но если
AT> yж так хочется делать чеpез задницy с одним - поставь вместо втоpого
AT> УАРТа дpyгой контpоллеp, и свяжи их вместе ихним скоpостным аппаpатным
AT> SPI.

MB>   А тyт именно "чеpез задницy" (2 контpоллеpа, связанных SPI)
MB> и пpидётся делать. Ведь надо не 2, а 3 UARTа. Мне контpоллеpы
MB> с тpемя UARTами как-то не попадались.

Таких много, нужно просто поискать. Кроме того, если скорость нужна не
большая 1200-9600 то часто можно такой UART реализовать на периферии,
например таймере, сделав его полуаппаратным. На MB90F457 у меня
используется 3 UART, 2 из них на таймерах.

--
С уважением,
 Andy




We've slightly trimmed the long signature. Click to see the full one.
PIC и последовательные поpты
Hello Michael!

29 Dec 03 18:09, you wrote to Alexander Torres:

 MB>   А тyт именно "чеpез задницy" (2 контpоллеpа, связанных SPI)
 MB> и пpидётся делать. Ведь надо не 2, а 3 UARTа. Мне контpоллеpы
 MB> с тpемя UARTами как-то не попадались.

У ПИКа есть 8 ног в порту Б, и какое-то к-во этих ног можно запрограммировать
на прерывание по изменению состояния. Далее, алгоритм ввода элементарен:
Измеряется таймером время от предыдущего прерывания по изменению состояния, и в
зависимости от этого времени в регистр сдвига заносится N бит текущего
состояния входа. Таймаут по приему стопа добавить по вкусу. Мне известна
реализация драйвера, позволяющего подключить аналогичным образом к писюку
четыре телетайпных канала, и реализация пакетного терминала, эмулирующего
синхронный порт.



Anatoly


Site Timeline