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

Поклонники продукции Microchip Technology Inc тусуются тут.
Ответить
Встал на лапы
Сообщения: 84
Зарегистрирован: Ср окт 22, 2014 04:24:01

Сообщение 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:
Последний раз редактировалось Frosty85 Вс окт 18, 2015 17:14:37, всего редактировалось 1 раз.
Реклама
Друг Кота
Аватара пользователя
Сообщения: 4119
Зарегистрирован: Чт сен 12, 2013 00:54:12
Откуда: ЗаМКАДье. Там, где ЦУП

Сообщение Albert_V »

Есть PIC-и с аппаратным USART...
----
Похоже, у вас ошибка в тексте:
Frosty85 писал(а):Режим USART (синхронный) скорость 16200 бит\сек 8N1 LSB
Скорее всего, скорость 19200
Реклама
Встал на лапы
Сообщения: 84
Зарегистрирован: Ср окт 22, 2014 04:24:01

Сообщение Frosty85 »

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

Изначально хотел собрать на PIC10F222 но при таких скоростях будет очень много ошибок.
Друг Кота
Аватара пользователя
Сообщения: 4119
Зарегистрирован: Чт сен 12, 2013 00:54:12
Откуда: ЗаМКАДье. Там, где ЦУП

Сообщение Albert_V »

PIC12F1840-E/SN (SOIC-8) можете купить? /в Тритоне есть в продаже/
У него аппаратный USART.
Это ж, намного проще. :)
Реклама
Эиком - электронные компоненты и радиодетали
Встал на лапы
Сообщения: 84
Зарегистрирован: Ср окт 22, 2014 04:24:01

Сообщение Frosty85 »

Да это было бы еще лучше ((( но у нас в городе только pic12f683 и pic12f629 в наличии есть, а создать сие творение уже сейчас надо (ну я имею ввиду что пробные тесты в железе, отладка)
Реклама
Друг Кота
Аватара пользователя
Сообщения: 4119
Зарегистрирован: Чт сен 12, 2013 00:54:12
Откуда: ЗаМКАДье. Там, где ЦУП

Сообщение Albert_V »

К сожалению, с программным USART я не смогу помочь.
Лучше всего, на мой взгляд, писать такую программу на ASM, внимательно просчитывая задержки и время исполнения команд.
----
P.S.
Поскольку анализатор у вас есть, вам будет достаточно просто написать свою программу.
От себя: Если нужно сделать быстро - не связывайтесь с чужими библиотеками.
Реклама
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1368
Зарегистрирован: Вс мар 28, 2010 12:52:22
Откуда: Беларусь

Сообщение dr.doc »

На сайте Radiochlam есть отличный пример программного UART на PIC.
«Еще я хотел бы, чтобы наши ученые изобрели какой-то новый источник энергии, чтобы мы на коленях не ползали даже перед нашими братьями, умоляя их и выпрашивая тонну нефти или кубометр газа», — рассказал белорусский президент.
Встал на лапы
Сообщения: 84
Зарегистрирован: Ср окт 22, 2014 04:24:01

Сообщение Frosty85 »

Как основа моего проекта : http://pic-microcontroller.com/pic12f67 ... imulation/
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1368
Зарегистрирован: Вс мар 28, 2010 12:52:22
Откуда: Беларусь

Сообщение dr.doc »

В программном решении самое важное - выдержать необходимые задержки. И, чем выше скорость, тем точнее они нужны. Для Вашего случая один бит будет иметь длительность 1/19200 = 520,8 мкС.
«Еще я хотел бы, чтобы наши ученые изобрели какой-то новый источник энергии, чтобы мы на коленях не ползали даже перед нашими братьями, умоляя их и выпрашивая тонну нефти или кубометр газа», — рассказал белорусский президент.
Встал на лапы
Сообщения: 84
Зарегистрирован: Ср окт 22, 2014 04:24:01

Сообщение Frosty85 »

т.е. получается на вход у меня приходит не простой импульс с длительностью в 50ms а это бит информации равный 0xFF в моем варианте.

Получается по приходу на Rx бита 0xFF мой девайс должен переключится на передачу и выдать в Tx массив в 74 бита
Встал на лапы
Сообщения: 84
Зарегистрирован: Ср окт 22, 2014 04:24:01

Сообщение Frosty85 »

dr.doc писал(а):На сайте Radiochlam есть отличный пример программного UART на PIC.
Да читал, довольно таки хороший пример, как скорый вариант да, но здесь обычный ретранслятор принял и передал, в моем случае нужно передать массив из 74бит а передать его по входному биту 0xFF да и режим синхронный (что добавляет еще одни порт для тактовой частоты)
Друг Кота
Аватара пользователя
Сообщения: 4119
Зарегистрирован: Чт сен 12, 2013 00:54:12
Откуда: ЗаМКАДье. Там, где ЦУП

Сообщение Albert_V »

Если не сложно, выложите картинку с анализатора...
Не стыкуются времена 50mS и скорость 19200.
Встал на лапы
Сообщения: 84
Зарегистрирован: Ср окт 22, 2014 04:24:01

Сообщение Frosty85 »

Программирование на ассемблере под PIC для меня еще темный и дремучий лес ((( стараюсь его понять.
Встал на лапы
Сообщения: 84
Зарегистрирован: Ср окт 22, 2014 04:24:01

Сообщение Frosty85 »

Сейчас скинуть не могу, не дома, завтра выложу снимал с помощью Saleae Logik.
Друг Кота
Аватара пользователя
Сообщения: 4119
Зарегистрирован: Чт сен 12, 2013 00:54:12
Откуда: ЗаМКАДье. Там, где ЦУП

Сообщение Albert_V »

'OK.
Если там действительно 50mS, возможно это не передача данных в датчик а простейший ACK (запрос на передачу).
Встал на лапы
Сообщения: 84
Зарегистрирован: Ср окт 22, 2014 04:24:01

Сообщение Frosty85 »

Albert_V писал(а):'OK.
Если там действительно 50mS, возможно это не передача данных в датчик а простейший ACK (запрос на передачу).
Вот у себя на флешке нашел, оказывается с собой
log.rar
Лог анализатора
(394.28 КБ) 210 скачиваний
Друг Кота
Аватара пользователя
Сообщения: 4119
Зарегистрирован: Чт сен 12, 2013 00:54:12
Откуда: ЗаМКАДье. Там, где ЦУП

Сообщение Albert_V »

Там точно должен быть RS-ХХХ ???
Мне кажется, что это больше на SPI похоже... :dont_know:
Дайте, пожалуйста, ссылку на датчик.
Встал на лапы
Сообщения: 84
Зарегистрирован: Ср окт 22, 2014 04:24:01

Сообщение Frosty85 »

описание в бумажном виде, сам датчик из себя представляет законченное устройство со своим мк внутри и все это залито компаудом, чтобы не повредилось, сама установка напоминает что-то вроде подогревателя для помещения ( я так понимаю)

По поводу SPI я тоже склоняюсь к этому, но в инете нашел такую информацию что синхронный режим USART это нечто иное как аналог SPI.
Встал на лапы
Сообщения: 84
Зарегистрирован: Ср окт 22, 2014 04:24:01

Сообщение Frosty85 »

Да и даташитом это трудно назвать, просто описание команд. что на что отвечает. Попробую отсканировать и скинуть.
Друг Кота
Аватара пользователя
Сообщения: 4119
Зарегистрирован: Чт сен 12, 2013 00:54:12
Откуда: ЗаМКАДье. Там, где ЦУП

Сообщение Albert_V »

SPI, если "на двух пальцах", это работа со сдвиговым регистром некоей длины.
С USART не имеет ничего общего.
Ответить

Вернуться в «PIC»