Страница 1 из 2

Освоение USART, совсем запутался, помогите.

Добавлено: Вс окт 18, 2015 16:55:51
Frosty85
Доброго времени форумчане, с микроконтроллерами работаю впервые, поставили задачку. Имеем два устройства блок управления и датчик соединены между собой по USART. Датчик особо дорогой и каждый раз его менять невыгодно клиенту. Попросил сделать обманку, т.е. заменить этот датчик эмулятором. Особо ничего сложного нет, почитав даташит на этот самый датчик, выяснил следующие характеристики: Режим USART (синхронный) скорость 19200 бит\сек 8N1 LSB
Итак беру логический анализатор и врезаюсь в цепочку обмена данными. Вижу следущую картину.
Основной блок по каналу Rx (вход датчика) посылает запрос в виде кратковременного импульса длительностью 50ms (странно в даташите написано должен быть запрос 0x13 - чтение параметров с датчика)
В свою очередь датчик на выводе Tx выдает пакет-ответ (34 байта) 13 00 55 F8 85 F9 00 F9 00 00 00 49 FD 55 00 00 FF (по даташиту в этом пакете идет информация о показаниях датчика и ответ что все "хорошо" я работаю.
Ну а третья линия - синхронизация
В итоге решил за основу взять програмный USART на базе PIC12F629 сижу изучаю литературу уже неделю, голова идет кругом. Не способен я осилить такой объем информации сразу.

Помогите в решение поставленной задачи :beer: в долгу не останусь. Клиент хороший знакомый, не раз меня выручал по сложным вопросам. :facepalm:

Re: Освоение USART, совсем запутался, помогите.

Добавлено: Вс окт 18, 2015 17:07:17
Albert_V
Есть PIC-и с аппаратным USART...
----
Похоже, у вас ошибка в тексте:
Frosty85 писал(а):Режим USART (синхронный) скорость 16200 бит\сек 8N1 LSB
Скорее всего, скорость 19200

Re: Освоение USART, совсем запутался, помогите.

Добавлено: Вс окт 18, 2015 17:19:07
Frosty85
Спасибо да о печатался немного 19200 )))
Железный USART да я читал об этом, но суть в том что хочу свести к минимуму размеры устройства. т.к. условия работы сопоставим с погодными да и размерами особо не разгуляешься ~2х2см
Набор минимум, по входному Rx стоит резистивный делитель на землю по выходу и по тактирующему - полевик 2n7002

Изначально хотел собрать на PIC10F222 но при таких скоростях будет очень много ошибок.

Re: Освоение USART, совсем запутался, помогите.

Добавлено: Вс окт 18, 2015 17:24:13
Albert_V
PIC12F1840-E/SN (SOIC-8) можете купить? /в Тритоне есть в продаже/
У него аппаратный USART.
Это ж, намного проще. :)

Re: Освоение USART, совсем запутался, помогите.

Добавлено: Вс окт 18, 2015 17:32:08
Frosty85
Да это было бы еще лучше ((( но у нас в городе только pic12f683 и pic12f629 в наличии есть, а создать сие творение уже сейчас надо (ну я имею ввиду что пробные тесты в железе, отладка)

Re: Освоение USART, совсем запутался, помогите.

Добавлено: Вс окт 18, 2015 17:41:29
Albert_V
К сожалению, с программным USART я не смогу помочь.
Лучше всего, на мой взгляд, писать такую программу на ASM, внимательно просчитывая задержки и время исполнения команд.
----
P.S.
Поскольку анализатор у вас есть, вам будет достаточно просто написать свою программу.
От себя: Если нужно сделать быстро - не связывайтесь с чужими библиотеками.

Re: Освоение USART, совсем запутался, помогите.

Добавлено: Вс окт 18, 2015 17:47:56
dr.doc
На сайте Radiochlam есть отличный пример программного UART на PIC.

Re: Освоение USART, совсем запутался, помогите.

Добавлено: Вс окт 18, 2015 17:48:11
Frosty85
Как основа моего проекта : http://pic-microcontroller.com/pic12f67 ... imulation/

Re: Освоение USART, совсем запутался, помогите.

Добавлено: Вс окт 18, 2015 17:56:04
dr.doc
В программном решении самое важное - выдержать необходимые задержки. И, чем выше скорость, тем точнее они нужны. Для Вашего случая один бит будет иметь длительность 1/19200 = 520,8 мкС.

Re: Освоение USART, совсем запутался, помогите.

Добавлено: Вс окт 18, 2015 18:01:06
Frosty85
т.е. получается на вход у меня приходит не простой импульс с длительностью в 50ms а это бит информации равный 0xFF в моем варианте.

Получается по приходу на Rx бита 0xFF мой девайс должен переключится на передачу и выдать в Tx массив в 74 бита

Re: Освоение USART, совсем запутался, помогите.

Добавлено: Вс окт 18, 2015 18:03:07
Frosty85
dr.doc писал(а):На сайте Radiochlam есть отличный пример программного UART на PIC.
Да читал, довольно таки хороший пример, как скорый вариант да, но здесь обычный ретранслятор принял и передал, в моем случае нужно передать массив из 74бит а передать его по входному биту 0xFF да и режим синхронный (что добавляет еще одни порт для тактовой частоты)

Re: Освоение USART, совсем запутался, помогите.

Добавлено: Вс окт 18, 2015 18:04:18
Albert_V
Если не сложно, выложите картинку с анализатора...
Не стыкуются времена 50mS и скорость 19200.

Re: Освоение USART, совсем запутался, помогите.

Добавлено: Вс окт 18, 2015 18:06:33
Frosty85
Программирование на ассемблере под PIC для меня еще темный и дремучий лес ((( стараюсь его понять.

Re: Освоение USART, совсем запутался, помогите.

Добавлено: Вс окт 18, 2015 18:16:02
Frosty85
Сейчас скинуть не могу, не дома, завтра выложу снимал с помощью Saleae Logik.

Re: Освоение USART, совсем запутался, помогите.

Добавлено: Вс окт 18, 2015 18:18:16
Albert_V
'OK.
Если там действительно 50mS, возможно это не передача данных в датчик а простейший ACK (запрос на передачу).

Re: Освоение USART, совсем запутался, помогите.

Добавлено: Вс окт 18, 2015 18:33:09
Frosty85
Albert_V писал(а):'OK.
Если там действительно 50mS, возможно это не передача данных в датчик а простейший ACK (запрос на передачу).
Вот у себя на флешке нашел, оказывается с собой
log.rar
Лог анализатора
(394.28 КБ) 210 скачиваний

Re: Освоение USART, совсем запутался, помогите.

Добавлено: Вс окт 18, 2015 18:41:11
Albert_V
Там точно должен быть RS-ХХХ ???
Мне кажется, что это больше на SPI похоже... :dont_know:
Дайте, пожалуйста, ссылку на датчик.

Re: Освоение USART, совсем запутался, помогите.

Добавлено: Вс окт 18, 2015 18:56:42
Frosty85
описание в бумажном виде, сам датчик из себя представляет законченное устройство со своим мк внутри и все это залито компаудом, чтобы не повредилось, сама установка напоминает что-то вроде подогревателя для помещения ( я так понимаю)

По поводу SPI я тоже склоняюсь к этому, но в инете нашел такую информацию что синхронный режим USART это нечто иное как аналог SPI.

Re: Освоение USART, совсем запутался, помогите.

Добавлено: Вс окт 18, 2015 18:58:31
Frosty85
Да и даташитом это трудно назвать, просто описание команд. что на что отвечает. Попробую отсканировать и скинуть.

Re: Освоение USART, совсем запутался, помогите.

Добавлено: Вс окт 18, 2015 19:08:39
Albert_V
SPI, если "на двух пальцах", это работа со сдвиговым регистром некоей длины.
С USART не имеет ничего общего.