Страница 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 сижу изучаю литературу уже неделю, голова идет кругом. Не способен я осилить такой объем информации сразу.
Помогите в решение поставленной задачи

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

Re: Освоение USART, совсем запутался, помогите.
Добавлено: Вс окт 18, 2015 17:07:17
Albert_V
Есть PIC-и с аппаратным USART...
----
Похоже, у вас ошибка в тексте:
Frosty85 писал(а):Режим USART (синхронный) скорость 16200 бит\сек 8N1 LSB
Скорее всего, скорость 1
9200
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
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 похоже...
Дайте, пожалуйста, ссылку на датчик.
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 не имеет ничего общего.