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

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)

Reply to
Zahar Kiselev
Loading thread data ...

Привет 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

formatting link
,
formatting link
, ftp://altor.sytes.net

Reply to
Alexander Torres

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)

Reply to
Zahar Kiselev

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)

Георгий

Reply to
George Shepelev

Здраствуйте Zahar,

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

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

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

;)

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

Reply to
Den Y. Borisov

П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ешать до того, как она появится. ====

Reply to
Michael Belousoff

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 из них на таймерах.

Reply to
Andy Mozzhevilov

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

Reply to
Anatoly Mashanov

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

Четверг Январь 08 2004 19:37, Alexey Boyko wrote to Zahar Kiselev:

ZK>> Два контроллера вместо одного - слишком сложно потом это ZK>> программировать. В этом отношении параллельное подключение ZK>> нескольких приемопередатчиков к одному контроллеру хотя и ZK>> потребует много проводов на плате, но в использовании попроще ZK>> будет. AB> А прицепить 2-3 шт 16С550 не подойдет?

IMHO _очень_ громоздко.

AB> Есть, в принципе, аналогичные и на 4 канала. (16C554 вроде)

А их достать у нас реально?

Георгий

Reply to
George Shepelev

Hi George.

13 Jan 2004, 03:13, George Shepelev writes to Alexey Boyko:

ZK>> нескольких пpиемопеpедатчиков к одному контpоллеpу хотя и ZK>> потpебует много пpоводов на плате, но в использовании попpоще ZK>> будет. AB> А пpицепить 2-3 шт 16С550 не подойдет?

GS> IMHO _очень_ гpомоздко.

Есть счетвеpённые кpисталлы (4x16550), только названий не помню.

Dimmy.

Reply to
Dimmy Timchenko

Здравствуй, Dimmy!

Tuesday January 13 2004 13:14, you (2:469/15) wrote to George Shepelev:

DT> Есть счетвеpённые кpисталлы (4x16550), только названий не помню.

formatting link

Oxford Semiconductor Ltd. Oxford Semiconductor 2001 25 Milton Park, Abingdon, Oxon, OX14 4SH, UK OX16C954 rev B Data Sheet R1.0 _ November 2001 Tel: +44 (0)1235 824900 Fax: +44 (0)1235 821141 Part Nos. OX16C954-PCC60-B / OX16C954_TQC60_B FEATURES · Four independent full-duplex asynchronous 16C950 high performance UART channels · 128-byte deep FIFO per transmitter and receiver · UARTs fully software compatible with industry standard 16C55x type UARTs · Pin compatible with TL16C554 and ST16C654 · Baud rates up to 15 Mbps in normal mode and

60Mbps in external 1x clock (isochronous) mode · Readable FIFO levels · Flexible clock prescaler from 1 to 31.875 · Automated in-band flow control using programmable Xon/Xoff characters, in both directions · Automated out-of-band flow control using CTS#/RTS# and/or DSR#/DTR# · Arbitrary trigger levels for receiver and transmitter FIFO interrupts and automatic in-band and out-ofband flow control · Readable in-band and out-of-band flow control status · Programmable special character detection · Infra-red (IrDA) receiver and transmitter option · 5, 6, 7, 8 and 9-bits data framing · Detection of bad data in the receiver FIFO · Independent channel reset by software · Transmitter and receiver can be disabled · Transmitter idle interrupt · RS-485 buffer enable signals · Four byte device ID · Sleep mode (low operating current) · System clock up to 60 MHz at 5V, 50 MHz at 3.3V · 5.0 volt or 3.3v operation* · 68pin PLCC and 80pin TQFP package options. *Only the 80pin TQFP package supports operation at 5v or 3.3v. REV B ENHANCEMENTS The OX16C954B is an enhanced, backward-compatible revision of the OX16C954 rev A. It uses the newer core as in the OX16C950 rev B. The chief enhancements are as follows _ · All known errata fixed · Full TCR range from 4-16 · Enhanced controls for sleep-mode sensitivity, ability to read FCR and Good Data Status · 3.3V operation with 80 pin TQFP · Enhanced isochronous clocking options (optional inversions, DTR/DSR) Hereafter OX16C954 rev B is simply referred to as OX16C954. OX16C954 rev B High Performance Quad UART with 128-byte FIFOs Intel / Motorola Bus Interface

Alex

Reply to
Alex Gavrikov

Hi Alex.

18 Jan 2004, 04:19, Alex Gavrikov writes to Dimmy Timchenko:

DT> Есть счетвеpённые кpисталлы (4x16550), только названий не помню.

AG>

formatting link

AG> Nos. OX16C954-PCC60-B / OX16C954_TQC60_B AG> FEATURES

Да их много на самом деле. Есть и более пpостые/дешёвые.

Dimmy.

Reply to
Dimmy Timchenko

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.