Программный UART -= H E L P =-
Программный UART -= H E L P =-
Доброго времени суток всем.. Собрал программный UART вот по такому алгоритму
http://www.radiohlam.ru/program/pic_pr_usart_prost.htm
Изменил скорость на 9600. Поменял задачу. Т.е. один МК передает байт второй принимает
и как есть отсылает его на следующее устройство. Смоделировал все это хозяйство в PROTEUS.
Подцепил терминалы отладчики на входе и выходе приемопередающего МК.
Наблюдаю следующее: С первой отправкой байта с первого МК второй МК выдает не достоверную
инфу. А все последующие идут четко. Пока отправляю один байт. Далее по условию надо отправлять
штук пятнадцать байт. Люди добрые ... Подскажите дилетанту в чем ошибка.
http://www.radiohlam.ru/program/pic_pr_usart_prost.htm
Изменил скорость на 9600. Поменял задачу. Т.е. один МК передает байт второй принимает
и как есть отсылает его на следующее устройство. Смоделировал все это хозяйство в PROTEUS.
Подцепил терминалы отладчики на входе и выходе приемопередающего МК.
Наблюдаю следующее: С первой отправкой байта с первого МК второй МК выдает не достоверную
инфу. А все последующие идут четко. Пока отправляю один байт. Далее по условию надо отправлять
штук пятнадцать байт. Люди добрые ... Подскажите дилетанту в чем ошибка.
- rhf-admin
- администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
- Сообщения: 3060
- Зарегистрирован: 25 авг 2009, 23:19
- Откуда: Уфа
- Контактная информация:
Re: Программный UART -= H E L P =-
Попробуй линию Tx(I)-Rx(II) притянуть резистором к питанию или включить какую-то задержку включения второго МК.
В отсутствии передачи на линии должна висеть 1, я думаю проблема где-то в этом месте, нужно чтобы к тому моменту, когда второй контроллер начнёт работать как приёмник, первый уже выставил на линии 1 и ничего там не дрыгалось.
В отсутствии передачи на линии должна висеть 1, я думаю проблема где-то в этом месте, нужно чтобы к тому моменту, когда второй контроллер начнёт работать как приёмник, первый уже выставил на линии 1 и ничего там не дрыгалось.
С уважением, администрация сайта.
Re: Программный UART -= H E L P =-
Спасибо что ответили. Пробовал я и отдельную ПП recieve для первого байта.
И тайминги менял в первом байте. Ни в какую. На железо пока не спускался.
Мож еще протез подтупляет как вариант. Вообщем решил проблему пока
вот так как на прилагаемом скине в этом посте.
Тему пока не закрываю. Чтоб новую ветку не открывать. Следующий шаг.
От первого МК поступает пакет из 13ти байт. Первые три байта предназначаются
для приемо передающего МК. А остальные 10 транзитные на оконечное устройство.
Первые два байта из трех для второго МК, являются криптовыми. Т.е. второй МК
нюхает если они не по формату то остальные десять байт на оконечный
приемник не отсылает. Как то так....
И тайминги менял в первом байте. Ни в какую. На железо пока не спускался.
Мож еще протез подтупляет как вариант. Вообщем решил проблему пока
вот так как на прилагаемом скине в этом посте.
Тему пока не закрываю. Чтоб новую ветку не открывать. Следующий шаг.
От первого МК поступает пакет из 13ти байт. Первые три байта предназначаются
для приемо передающего МК. А остальные 10 транзитные на оконечное устройство.
Первые два байта из трех для второго МК, являются криптовыми. Т.е. второй МК
нюхает если они не по формату то остальные десять байт на оконечный
приемник не отсылает. Как то так....
Re: Программный UART -= H E L P =-
а в чём вы пишите ? В первом посте у вас b $-1 а в конце b interview!!! это куда ?
Re: Программный UART -= H E L P =-
если Вы уже решили так писать - запретите прерывания - после этого отправляйте пик в помехоприёмный полёт командой btfss Flag,1 == goto $-1!! (Админ дал простейший пример)... даже если приём пришёл - где гарантия что не помеха - или передатчик не настраивается на работу? - временная выдержка с подтверждением напрашивается сама собой! В третьих - любое сообщение начинайте с определённого байта - если он - значит начало посылки - нет -бред -ожидаем дальше - если ваш первый пакет потерялся - второй дойдёт почти 100%! на INSAT.RU есть бесплатный ModbusOpcuUiversalModbus на 32 тега!!! Скачайте - с сайта соберите преобразователь - подключайтесь к пику и вы там всё увидите! Я когда начинал частотники подключать и программить протоколы - много интересного узнал!!!
Re: Программный UART -= H E L P =-
za9c доброго времени.. Пишу в MP LAB. К чему шел , того добился пока только В PROTEUS работает отлично. А вот на
макетке приемная часть не в какую не принимает. Некоторые ученые мужи подсказывают мне что
это характерная особенность ПИКов.
Скорее всего процедура согласования/квитирования готовности на приеме и на передаче.
У моего варианта только передатчик программный. На прием пикушка не работает - только ловит согласие приема по своему запросу:
viewtopic.php?p=2593182#p2593182
а ПК после адаптера - расширителя перехватываеит весь пакет.
Еще буду пробывать. Попробую по предложенному вами алгоритму. Прерыванием только нюхать. А обрабатывать опросом.
макетке приемная часть не в какую не принимает. Некоторые ученые мужи подсказывают мне что
это характерная особенность ПИКов.
Скорее всего процедура согласования/квитирования готовности на приеме и на передаче.
У моего варианта только передатчик программный. На прием пикушка не работает - только ловит согласие приема по своему запросу:
viewtopic.php?p=2593182#p2593182
а ПК после адаптера - расширителя перехватываеит весь пакет.
Еще буду пробывать. Попробую по предложенному вами алгоритму. Прерыванием только нюхать. А обрабатывать опросом.
Re: Программный UART -= H E L P =-
если не затруднит Вас - весь код увидеть можно?
Что-то непонятное некоторые ученые мужи подсказывают!
Что-то непонятное некоторые ученые мужи подсказывают!
Re: Программный UART -= H E L P =-
Вот промежуточный МК.
код под спойлером
Последний раз редактировалось lavrentyi 26 май 2016, 09:11, всего редактировалось 5 раз.
Re: Программный UART -= H E L P =-
Количество байт в приемном пакете можно на 2 - 3 уменьшить. МК управленец будет хлопец из 18 семейства.
Если есть необходимость могу папочку проекта скинуть. Но там пока только отладка данного канала.
Да и МК управленец с промежуточным МК будут УАРТ держать на радиоканале. Ответа о состоянии
не планируется. Но это пока. Я искренне рад что Вы не бросаете меня в моих начинаниях.
Если есть необходимость могу папочку проекта скинуть. Но там пока только отладка данного канала.
Да и МК управленец с промежуточным МК будут УАРТ держать на радиоканале. Ответа о состоянии
не планируется. Но это пока. Я искренне рад что Вы не бросаете меня в моих начинаниях.
Re: Программный UART -= H E L P =-
Нда - с косвенной адресацией я так понимаю незнакомы? Завтра чуть подправлю!