реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Несколько датчиков и UART, Варианты решений.
Белка12
сообщение Dec 22 2012, 21:52
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 63
Регистрация: 29-01-09
Пользователь №: 44 159



Есть микроконтроллер ADUC831. В его состав входит интерфейс UART.

Можно ли по этому интерфейсу принимать данные от нескольких датчиков и каким образом?

Я пробовала опрашивать и принимать данные с газового датчика со встроенным RS485 интерфейсом optosense. Там все работает нормально. Скорость обмена 9600.

Теперь надо в пару к нему подсоединить датчик Dinament, со встроенным RS232 интерфейсом, другой скоростью обмена и другим форматом посылки данных.

Как-то не очень понятно, как их можно опрашивать и принимать данные по одному UART. Надо как-то организовать адресацию, наверное? А разве RS232 поддерживает адресацию? А RS485?

Может, кто-то сталкивался с подобным?

С уважением, Белка12.

Сообщение отредактировал Белка12 - Dec 22 2012, 22:02
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Dec 22 2012, 22:54
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(Белка12 @ Dec 22 2012, 23:52) *
Можно ли по этому интерфейсу принимать данные от нескольких датчиков и каким образом?

Можно.

Цитата(Белка12 @ Dec 22 2012, 23:52) *
Теперь надо в пару к нему подсоединить датчик Dinament, со встроенным RS232 интерфейсом, другой скоростью обмена и другим форматом посылки данных.

Перед началом опроса датчика настраивайте UART на нужную скорость, отключайте ненужный и включайте нужный интерфейс, шлите запрос, принимайте ответ.

Цитата(Белка12 @ Dec 22 2012, 23:52) *
Надо как-то организовать адресацию, наверное?

Надо.

Цитата(Белка12 @ Dec 22 2012, 23:52) *
А разве RS232 поддерживает адресацию?

RS232 - не поддерживает.
RS485 допускает подключение нескольких устройств на одну шину. Адресация реализуется протоколом передачи данных (не определённым в стандарте - например своим).
Go to the top of the page
 
+Quote Post
Белка12
сообщение Dec 24 2012, 16:17
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 63
Регистрация: 29-01-09
Пользователь №: 44 159



Цитата(_Артём_ @ Dec 23 2012, 02:54) *
RS485 допускает подключение нескольких устройств на одну шину. Адресация реализуется протоколом передачи данных (не определённым в стандарте - например своим).


Большое спасибо, ув. _Артём_!

А можно ли подробнее: как именно подключить и адресовать несколько устройств при использовании RS485 интерфейса?
Go to the top of the page
 
+Quote Post
Hmm
сообщение Dec 24 2012, 17:17
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 329
Регистрация: 22-06-04
Пользователь №: 124



Белка12 Гм.. Например:
Запрос: 2 уникальных байта + байт адресуещего устройство + контрольная сумма;
Ответ: байт количества байт данных + контрольная сумма.
Помимо физического RS485 можно использовать K-LINE. Если понятно - о чем я напостил, то далее проблем быть не должно. Успехов!


--------------------
Талант не пропить ...
Go to the top of the page
 
+Quote Post
novchok
сообщение Dec 24 2012, 18:09
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 128
Регистрация: 19-08-10
Из: Смоленск
Пользователь №: 58 991



Цитата(Белка12 @ Dec 24 2012, 20:17) *
А можно ли подробнее: как именно подключить и адресовать несколько устройств при использовании RS485 интерфейса?


Устройства подключаются парралельно по RS485 шине, вот описание с картинками http://www.novosoft.by/Ency/rs-485.htm
По поводу адресации, один мастер на шине. Все датчики его слушают, чего они выдаст. Каждый датчик принимает пакет от Мастера, а отвечает Мастеру только тот датчик, чей адрес указан в запросе. Если датчик уже имеет встроенный RS485, то в документации должен быть адрес датчика. Если это все самоделки, тогда дачик цепляется к микроконтроллеру, тот в свою очередь на шину RS485. Программа в микроконтроллере, в каждом микроконтроллере, потому что их столько же сколько датчиков, так вот программа определяет свой адрес и выдает на шину RS485 данные.
Другой вариант, если один микроконтроллер обслуживает несколько датчиков, по аналоговой или цифровой линии, а наружу связан с RS485 интерфейсом. Тогда так, как описали выше, получили пакет, определили какой там датчик, выдали обратно информацию с данного датчика.
Короче нужны подробности, как у Вас все это организовано.


--------------------
Herz укроп и педрила
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Dec 24 2012, 18:10
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Цитата
RS232 - не поддерживает.
Я не хочу вспоминать про 9 бит .
Но хотелось уточнить модели датчиков туда сюда DS почитать


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
Белка12
сообщение Dec 24 2012, 18:59
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 63
Регистрация: 29-01-09
Пользователь №: 44 159



Цитата(ILYAUL @ Dec 24 2012, 22:10) *
Я не хочу вспоминать про 9 бит .
Но хотелось уточнить модели датчиков туда сюда DS почитать



Один датчик наш, питерский, optosense, (RS485) возможна поддержка адресации.
http://www.optosense.ru/ru/welcome.html



Второй датчик английский, Dynament, (RS232).

http://www.dynament.com/


Цитата(novchok @ Dec 24 2012, 22:09) *
Другой вариант, если один микроконтроллер обслуживает несколько датчиков, по аналоговой или цифровой линии, а наружу связан с RS485 интерфейсом. Тогда так, как описали выше, получили пакет, определили какой там датчик, выдали обратно информацию с данного датчика.
Короче нужны подробности, как у Вас все это организовано.


Ув. novchok, так я и хочу определиться КАК мне все организовать и каким образом организовать адресацию датчиков.
Go to the top of the page
 
+Quote Post
vvs157
сообщение Dec 24 2012, 21:08
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 526
Регистрация: 8-04-05
Пользователь №: 3 960



Цитата(Белка12 @ Dec 24 2012, 22:59) *
так я и хочу определиться КАК мне все организовать и каким образом организовать адресацию датчиков.
Соединить просто проводами RS232 и RS485 не получится. Обычные RS232 устройства адресацию не поддерживают, так как стандартная шина RS232 не предполагает подсоединение нескольких устройств. Да и электрически они напрямую не совместимы. Поэтому нужен либо RS232<->RS485 конвертер (под данную задачу нужен с адресацией, неочевидно что доставаем и/или дешев) либо делать подобный девайс самому.
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Dec 24 2012, 22:44
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(Белка12 @ Dec 24 2012, 20:59) *
Ув. novchok, так я и хочу определиться КАК мне все организовать и каким образом организовать адресацию датчиков.

На RS232 датчик должен быть один, если адресация не поддержана протоколом датчика.
Алгоритм пожет быть такой:
Код
volatile uint8_t SensorRequestFlag;
// таймер обеспечивает заданную частоту опроса - например 10 Гц
void Timer_10Hz_Handler()
{
    SensorRequestFlag=1;
}
#define RS_485_SENSOR_NUMBER 5 // для примера 5 датчиков
void main()
{

    Init_periferals();
    while (1) {
        if (SensorRequestFlag) {
            SensorRequestFlag=0;

            // опрос датчика по RS485
            RS232_DisableTx();
            RS232_DisableRx();

            for (unsigned char i=0; i<RS_485_SENSOR_NUMBER; i++) {

                RS485_EnableTx();
                RS485_DisableRx();

                SendRequestTo_RS485( i ); // посылка запроса по RS485

                // переключение на приём
                RS485_EnableRx();
                RS485_DisableTx();

                // ожидание ответа по RS485 заданное время
                WaitAnswerFromRS485(MAX_RS485_WAIT_TIME);            
            }

            // запрет RS485
            RS485_DisableTx();
            RS485_DisableRx();


            // посылка запроса на RS232
            RS232_EnableTx();
            RS232_EnableRx();

            SendRequestTo_RS232(); // посылка запроса по RS232

            // ожидание ответа по RS232 заданное время
            WaitAnswerFromRS232(MAX_RS232_WAIT_TIME);
            RS232_DisableTx();
            RS232_DisableRx();
        }
    }
}

RS485 и RS232 могут подключать к одному UART-у МК, нужно поочерёдно отключать-включать приём передачу на одном из интерфейсов. Когда опрашивается 485-й, запрещён 232-й, и наоборот.
Для RS485 иногда бывает важно как можно скорей освободить шину, так как датчик может сразу же начать отвечать на запрос. Для освобождения шины используется прерывание по завершению передачи последнего байта пакета, или (если мастер принимает сам себя) приём последнего байта своего же запроса.
Go to the top of the page
 
+Quote Post
Harbinger
сообщение Dec 25 2012, 04:05
Сообщение #10


старший лаборант
******

Группа: Свой
Сообщений: 2 702
Регистрация: 30-09-05
Из: ЮЗЖД
Пользователь №: 9 097



Цитата(_Артём_ @ Dec 25 2012, 00:44) *
RS485 и RS232 могут подключать к одному UART-у МК, нужно поочерёдно отключать-включать приём передачу на одном из интерфейсов. Когда опрашивается 485-й, запрещён 232-й, и наоборот.

Это не всегда нужно. Если заведомо известно, что одновременной передачи со стороны ведомых не будет (например, принципиально различные протоколы обмена), можно TXD пустить в оба канала, а RXD свести по логическому "И".
Можно извратиться и по-другому, в случае, когда внешние устройства могут проявлять инициативу, а для одного из них установлен более высокий приоритет. Некоторые МК умеют переключать (remap) линии UART на другие физические порты, позволяя переключиться с одного драйвера на другой по прерыванию от изменения состояния порта (поймали старт-бит). Пробовал такое на STM8L - получается только в случае, если после переключения не нужно менять настройки UART (скорость и т.п.). В общем, время "свистоплясок" с переключением-перенастройкой должно быть пренебрежимо малым по сравнению с длительностью старт-бита. Тут есть ещё нюанс, зависящий от конкретной реализации UART - если старт-бит "ловится" не по уровню, а по спаду, ничего не получится. sad.gif
Для небольших расстояний, в пределах одной платы, можно использовать прямо UART с простейшими драйверами с ОК (ОС) на TXD ведомых устройств.


--------------------
Китайская комплектация - европейское качество! ;)
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Dec 25 2012, 04:14
Сообщение #11


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Цитата(Белка12 @ Dec 24 2012, 22:59) *
Один датчик наш, питерский, optosense, (RS485) возможна поддержка адресации.



Цитата
1. Работа с сетевым адресом
Предусмотрено присвоение преобразователю сетевого адреса в диапазоне 0 – FF . Это позволяет подключить на одну линию UART до 256
преобразователей. При включении преобразователю по умолчанию присваивается адрес 00. Для просмотра и изменения адреса введены
следующие команды:


И что-то у меня гадосное чувство ,что нет у него внутри буфера под RS232 или RS485 -это чистый USART/ Ну да , что и подтверждается сайтом.

Цитата
данные с газового датчика со встроенным RS485 интерфейсом
Это через доп плату?

Цитата
Второй датчик английский, Dynament, (RS232).

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

И кстати , как далеко буду стоять датчики от Вашей платы. Но честно говоря проблем с адресацией я не вижу, что по USART , что по UART или RS485


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
bookd
сообщение Dec 25 2012, 06:30
Сообщение #12


Частый гость
**

Группа: Свой
Сообщений: 151
Регистрация: 4-02-09
Из: Поволжье
Пользователь №: 44 403



Значит Вам нужно соединить два устройства с разными интерфейсами под управлением одного контроллера ADUC.
Предложу самый простой вариант. Остальные сложнее в реализации.
Добавляете в схему еще один микроконтроллер, ATMega162, у которого на борту аж два UART.
Подключаете Ваши датчики к этому микроконтроллеру. На один UART вешаете трансиверы RS232, на другой UART подключаете трансиверы RS485.
И подключаете датчики по честным интерфейсам.
Соединяете этот микропроцессор с Вашим ADUC по SPI или напрямую через IO порты, если они у Вас никак еще не используются.
А RS232 ADUC можно подключить к преобразователю например FT232, который даст в Вашу систему USB интерфейс.
В итоге получаете коробочку, которая с одной стороны содержит два датчика с разными интерфейсами, с другой имеет USB интерфейс, который
можно подключить к любому ноутбуку. И запитаться кстати тоже от этого USB интерфейса.


--------------------
Всеобщая дебилизация не повод наносить ущерб своему здоровью.
Go to the top of the page
 
+Quote Post
Белка12
сообщение Dec 25 2012, 11:54
Сообщение #13


Участник
*

Группа: Участник
Сообщений: 63
Регистрация: 29-01-09
Пользователь №: 44 159



Цитата(ILYAUL @ Dec 25 2012, 08:14) *
Это через доп плату?


Нет, внутри датчика тоже есть контроллер.


Цитата
Модельку хоть озвучте. Но судя по некоторым из просмотренных, они работают на той же скорости и с тем же форматом кадра

Да, любой датчик Dynament, модель не имеет значения. Протокол обмена у всех датчиков практически одинаков.


Понимаете, скорость они зашивают такую, какую нужно заказчику. А у нас есть в наличии, датчики от этих двух поставщиков с разными скоростями и разными интерфейсами. Т.е. идем от обратного.

Цитата
И кстати, как далеко буду стоять датчики от Вашей платы. Но честно говоря проблем с адресацией я не вижу, что по USART , что по UART или RS485

Очень близко, в одном корпусе. Ну, Вы не видите проблем с адресацией, а у меня это как раз проблема, бывает. laughing.gif





Цитата(_Артём_ @ Dec 25 2012, 02:44) *
На RS232 датчик должен быть один, если адресация не поддержана протоколом датчика.

Один датчик (optosense, RS485) поддерживает адресацию, а второй, (Dynament, RS232) не поддерживает.

Цитата
Алгоритм может быть такой.........:


Спасибо.sm.gif



Цитата
RS485 и RS232 могут подключать к одному UART-у МК, нужно поочерёдно отключать-включать приём передачу на одном из интерфейсов. Когда опрашивается 485-й, запрещён 232-й, и наоборот.
Для RS485 иногда бывает важно как можно скорей освободить шину, так как датчик может сразу же начать отвечать на запрос. Для освобождения шины используется прерывание по завершению передачи последнего байта пакета, или (если мастер принимает сам себя) приём последнего байта своего же запроса.


А, может, нужна микросхема некого коммутатора с использованием третьего выхода, управляемого с помощью контроллера, не так ли?



Сообщение отредактировал Белка12 - Dec 25 2012, 11:28
Go to the top of the page
 
+Quote Post
chernenko
сообщение Dec 25 2012, 12:37
Сообщение #14


Частый гость
**

Группа: Свой
Сообщений: 170
Регистрация: 8-02-06
Из: Москва
Пользователь №: 14 116



Можно мультиплексор поставить. Делал так когда надо было на один физический USART вешать несколько разделенных физически линий RS-485 + RS-232
Для вашей задачи самое то. Например, CD4052BM (есть и посовременнее). Есть офиц ответ TI что они работают и при питании 3.3 В.
Схема рабочая стоит во многих ком. продуктах одной компании многие годы. Именно для задачи переключения одного UART на разные интерфейсы и ветви.
Но выбор зависит от задачи. Вам виднее и вам выбирать.
Go to the top of the page
 
+Quote Post
vovanse
сообщение Dec 25 2012, 12:48
Сообщение #15


Частый гость
**

Группа: Свой
Сообщений: 185
Регистрация: 14-02-06
Из: Кемерово
Пользователь №: 14 293



Вы пытаетесь два совершенно разных датчика с разными протоколами и скоростями обмена подключить к МК. Тут только два варианта - либо два UART, либо некий коммутатор.

Адресацию Оптосенс поддерживает, но она поможет только в том случае, если на одном UART будет несколько их датчиков.

И где у Оптосенса 485-й ? Там, по моему, только 232.
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Dec 25 2012, 14:24
Сообщение #16


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Цитата
Нет, внутри датчика тоже есть контроллер
Это-то понятно , только вот физические уровни сигналов RX TX , которыt выдает датчик, соответсвовать могут USART, RS232,RS485. Если RS232 и UART - ещё как-то можно попутать , то у RS485 совсем другими буковками обозначают эти сигналы (А и B )и выход у него дифференциальный.
И я не нашёл такое в РУКОВОДСТВО ПО ЭКСПЛУАТАЦИИ МИП ВГ-02-Х-Х
Цитата
Преобразователь включает в себя....управляющий микроконтроллер...формирователь сигналов интерфейса UART.
7.3.3 Выводы RxD и TxD преобразователя подключаются к приемо-передатчику последовательного
интерфейса UART, который обеспечивает следующие параметры:
1)Напряжение уровня логической единицы не менее 1.8В и не более 3В, напряжение логического
0 не более 0.9 В
2)Напряжения на выводах RxD и TxD не должны превышать уровня 2,8В;
- не RS232 и не RS485

Вот что прописано про датчик Dynament - это чистый USART т.е не RS232 и не RS485
Цитата
Digital interface
The digital communication pins ”RX” and ”TX” operate at a 2.8V logic level. When interfacing to
external circuitry that uses a higher voltage level it is necessary to limit the current that can flow.
The external voltage level should be 5V maximum and a 3K3 resistor should be used in series with
each communication pin.
The Rx and Tx voltage limits are as follows:
RX - VIH: Input ‘High’ minimum voltage - 0.8 VDD = 2.24V
RX - VIL: Input ‘Low’ maximum voltage - 0.2 VDD = 0.56V
TX - VOH: Output ‘High’ minimum voltage - VDD - 0.7 = 2.1
TX - VOL: Output ‘Low’ maximum voltage - 0.6V
The digital output is a UART format comprising 8 data bits, 1 stop bit and no parity.
Refer to specification for available baud rates. Contact Dynament Ltd for protocol details.

Кстати выдайте нам его протокол , а то специально Contact Dynament Ltd for protocol details лень , может там зацепочки найдутся.
Так , что давайте чётко уясним с чем мы имеем дело, может у Вас какая-то личная модификация всего этого, тогда плиз именно их DS в студию. А то мы на советуем на то чего в природе не существует.


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
Белка12
сообщение Dec 25 2012, 14:54
Сообщение #17


Участник
*

Группа: Участник
Сообщений: 63
Регистрация: 29-01-09
Пользователь №: 44 159





Вот кусок описания протокола чтения optosense, как загрузить файл на форум я не в курсе.
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Dec 25 2012, 16:00
Сообщение #18


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Так на optosense он в общем доступе , а вот на Dynament надо просить.

Нам бы на последний
Цитата
как загрузить файл на форум я не в курсе

Обычно в расширенном ответе все есть , грузите в архивном виде.
Эскизы прикрепленных изображений
Прикрепленное изображение
 


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
Белка12
сообщение Dec 25 2012, 18:24
Сообщение #19


Участник
*

Группа: Участник
Сообщений: 63
Регистрация: 29-01-09
Пользователь №: 44 159



А вот для Динамента.
Прикрепленные файлы
Прикрепленный файл  TDS_045_Premier_sensor_communications_protocol.doc ( 285 килобайт ) Кол-во скачиваний: 204
 
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Dec 25 2012, 20:11
Сообщение #20


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Мысли в слух:
Протоколы разные, , оба протокола имеют префиксы начала и конца обмена. Я не совсем понял , как они себя поведут если им прислали не свои команды или они решили ,что на шине идёт " мусор" , толи промолчат толи могут и ответить, что крайне не желательно. Похоже , что питерский , может - чисто наша у него натура. Но это можно понять , проделав след. эксперимент. Подать команды иностранца на частоте обмена нашего датчика. Если ничего в ответку не пришлёт, очень хорошо. Тогда наш можно запустить в непрерывный режим с периодичностью от 1,33 - 12сек. И между этими интервалами "поговорить" с иностранцем.
Ну , а если не прокатит , то как сказано было выше мультиплексор и 1 ног котролера для его управления


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
pomo_al
сообщение Dec 26 2012, 01:49
Сообщение #21


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 15-11-07
Пользователь №: 32 350



Optosens'у крайне не желательно слать что-то, он от этого будет просыпаться, снижается его энергоэффективность и могут возникнуть проблемы с точностью. В даташите четко написано - не желательно его опрашивать чаще чем раз в секунду.

Несколько датчиков optosense просто параллельно включить нельзя - работать не будет. Попробуйте мультиплексор - тогда проблем не будет. А вообще у них отличная техподдержка. Обращайтесь туда, реагируют быстро и по делу.

Сообщение отредактировал pomo_al - Dec 26 2012, 01:49
Go to the top of the page
 
+Quote Post
vladec
сообщение Dec 26 2012, 06:31
Сообщение #22


Профессионал
*****

Группа: Свой
Сообщений: 1 167
Регистрация: 3-10-05
Из: Москва
Пользователь №: 9 158



Кстати есть мультипротокольные драйвера, могущие работать в RS-485 и в RS-232 (например, MAX3160/MAX3161/MAX3162, LTC1387, ISL81387, ISL41387) с преключением "на ходу" из режима в режим.
Go to the top of the page
 
+Quote Post
Белка12
сообщение Dec 26 2012, 09:21
Сообщение #23


Участник
*

Группа: Участник
Сообщений: 63
Регистрация: 29-01-09
Пользователь №: 44 159



Цитата(pomo_al @ Dec 26 2012, 05:49) *
Несколько датчиков optosense просто параллельно включить нельзя - работать не будет. Попробуйте мультиплексор - тогда проблем не будет. А вообще у них отличная техподдержка. Обращайтесь туда, реагируют быстро и по делу.


Это да, техподдержка там хорошая. А вот Dynamet?...Не знаю, пока не обращалась, да еще и английский на уровне даташитов со словарем. Разговорный как-то подзабыла, да и не сказать, чтобы знала на уровне, хотя и в школе и в институте по английскому одни пятерки, а толку чуть, без практики все забывается.



Цитата(vladec @ Dec 26 2012, 10:31) *
Кстати есть мультипротокольные драйвера, могущие работать в RS-485 и в RS-232 (например, MAX3160/MAX3161/MAX3162, LTC1387, ISL81387, ISL41387) с преключением "на ходу" из режима в режим.


Спасибо, посмотрю.sm.gif
Go to the top of the page
 
+Quote Post
Белка12
сообщение Jan 23 2015, 22:28
Сообщение #24


Участник
*

Группа: Участник
Сообщений: 63
Регистрация: 29-01-09
Пользователь №: 44 159



Цитата(pomo_al @ Dec 26 2012, 05:49) *
Optosens'у крайне не желательно слать что-то, он от этого будет просыпаться, снижается его энергоэффективность и могут возникнуть проблемы с точностью. В даташите четко написано - не желательно его опрашивать чаще чем раз в секунду.

Несколько датчиков optosense просто параллельно включить нельзя - работать не будет. Попробуйте мультиплексор - тогда проблем не будет. А вообще у них отличная техподдержка. Обращайтесь туда, реагируют быстро и по делу.


Задача нескольких датчиков общающимися по последовательному интерфейсу как-то "отпала". Пока обходимся одним. Разные приборы с разными задачами и
разными датчиками. Часть с динаментом, часть с опросенсом. Зато возникла другая, и довольно противная. Причем, наблюдается только у оптосенса.
После не поймешь какого промежутка времени, все "зависает, причем зависает на ответе датчика. Т.е. команда в датчик из микроконтроллера проходит,
а вот от датчика ответа нет. И, т.к. котроллер ждет ответа, с командой "JNB TI", то все висит... Как от этого избавиться, не могу придумать...
Go to the top of the page
 
+Quote Post
Andrew Su
сообщение Feb 12 2015, 19:36
Сообщение #25


Местный
***

Группа: Свой
Сообщений: 301
Регистрация: 18-09-07
Из: Украина
Пользователь №: 30 647



Цитата(Белка12 @ Jan 24 2015, 00:28) *
Задача нескольких датчиков общающимися по последовательному интерфейсу как-то "отпала". Пока обходимся одним. Разные приборы с разными задачами и
разными датчиками. Часть с динаментом, часть с опросенсом. Зато возникла другая, и довольно противная. Причем, наблюдается только у оптосенса.
После не поймешь какого промежутка времени, все "зависает, причем зависает на ответе датчика. Т.е. команда в датчик из микроконтроллера проходит,
а вот от датчика ответа нет. И, т.к. котроллер ждет ответа, с командой "JNB TI", то все висит... Как от этого избавиться, не могу придумать...

Добрый день.
Прекращайте ожидание по таймауту(придумайте по какому) и потом повторяйте запрос. Если несколько запросов не дадут результата и есть возможность подать запрос инициализации, то подайте.
Удачи Вам.
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd June 2025 - 01:13
Рейтинг@Mail.ru


Страница сгенерированна за 0.01631 секунд с 7
ELECTRONIX ©2004-2016