Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
16.09.2015, 10:50
|
|
Почётный гражданин KAZUS.RU
Регистрация: 03.12.2004
Сообщений: 1,306
Сказал спасибо: 337
Сказали Спасибо 76 раз(а) в 33 сообщении(ях)
|
Re: Неправильная работа Proton с RS485
Сообщение от NewWriter
|
Ну не должен выход RC5 переключаться на вход, вместо того, чтобы выдать высокий уровень на выход. Программа из-за ошибки в выборе банков работает с регистром направления TRIS, а не с регистром выхода PORT. У этих регистров одинаковые адреса в разных банках. Для работы с выходом, должен быть выбран банк 0. STATUS.3=0 (или как там в бейсике указывается команда то).
|
Странно, может я что то не так понял. Но я считал, что если в начале программы я записал TRISC.5=0, т.е установил этот вывод в состояние выхода и более нигде в программе я это состояние не меняю. Правда я меняю значение на выходе записями в коде PORTC.5=0 или PORTC.5=1. И получается, что компилятор может самостоятельно менять назначение вывода?
Сообщение от NewWriter
|
Резистор R1 нужно перевести в digital режим.
|
Огромное спасибо. Казалось бы я уже многократно менял(туда/сюда) эту настройку у всех резисторов.
Последний раз редактировалось vladh; 16.09.2015 в 10:52.
|
|
|
|
16.09.2015, 13:42
|
|
Почётный гражданин KAZUS.RU
Регистрация: 03.12.2004
Сообщений: 1,306
Сказал спасибо: 337
Сказали Спасибо 76 раз(а) в 33 сообщении(ях)
|
Re: Неправильная работа Proton с RS485
Соединил 40 м кабелем. Связи нет. Идут наводки с шин А и В трансиверов. Повесил на шины резисторы по 470 Ом(как учил Гуру). Наводки пропали но связи нет. Подтянул резистором 4,3 к выводы переключения трансиверов. Связь появилась. Но правда работает со сбоями. Убрал резисторы 470 Ом но установил подтягивающие резисторы к входам приемников (RX) МК. Обмен стал стабильней.
Последний раз редактировалось vladh; 16.09.2015 в 14:40.
|
|
|
|
16.09.2015, 15:00
|
|
Почётный гражданин KAZUS.RU
Регистрация: 03.12.2004
Сообщений: 1,306
Сказал спасибо: 337
Сказали Спасибо 76 раз(а) в 33 сообщении(ях)
|
Re: Неправильная работа Proton с RS485
Уважаемый, NewWriter. Хочу Выразить Вам свою огромную благодарность за то, что Вы терпеливо выслушивая мои, подчас неграмотные, заявления постоянно давали грамотные советы, которые позволили мне за достаточно короткий(для меня) срок решить стоявшие передо мной проблемы. СПАСИБО. Да и остальным посетителям страницы принявшим участие в обсуждении моих проблем, огромное спасибо. В результате этих обсуждений я поменял некоторые свои заблуждения, да и узнал новое для себя.
Последний раз редактировалось vladh; 16.09.2015 в 15:05.
|
|
|
|
16.09.2015, 15:02
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.10.2004
Адрес: Нижний Новгород
Сообщений: 1,746
Сказал спасибо: 416
Сказали Спасибо 1,240 раз(а) в 551 сообщении(ях)
|
Re: Неправильная работа Proton с RS485
Владимир, какой кабель. Если компъютерный то на выходе передатчика и на входе приемника резисторы по 120 ом = волновому сопротивлению кабеля.
В качестве юмора по поводу благодарности - прижать стаканом надо, а так в карман не положишь и в рот не нальешь.
__________________
Решил посоветовать, да забыл что...
Последний раз редактировалось anatol378; 16.09.2015 в 15:05.
|
|
|
|
16.09.2015, 15:47
|
|
Почётный гражданин KAZUS.RU
Регистрация: 03.12.2004
Сообщений: 1,306
Сказал спасибо: 337
Сказали Спасибо 76 раз(а) в 33 сообщении(ях)
|
Re: Неправильная работа Proton с RS485
Сообщение от anatol378
|
В качестве юмора по поводу благодарности - прижать стаканом надо, а так в карман не положишь и в рот не нальешь.
|
Я бы с радостью и без юмора. Но вот только как практически это сделать. Про виртуальный секс слышал, а про виртуальный стакан нет. Потому как за такие(виртульные) предложения ещё и послать могут.
А по поводу кабеля не знаю как его назвать(компьютерный он или нет) но на нем написано: REXANT FTP data cable 2PR 24AWG STRANDED CAT5E ISO/IEC 11801 ANSI/TIA/EIA 568B.... Похоже у него 2 витых пары, которые расположены в экране. Да на входах приемников у меня висят 120 омные резисторы.
|
|
|
|
16.09.2015, 17:22
|
|
Заблокирован
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
|
Re: Неправильная работа Proton с RS485
Сообщение от vladh
|
если в начале программы я записал TRISC.5=0, т.е установил этот вывод в состояние выхода и более нигде в программе я это состояние не меняю.
|
Действительно, программа работает правильно. Оказалось, это гадит виртуальный инструмент осциллограф, подключенный к цепи RC5. Он аналоговый и получилось, что в цифровой цепи именно тут и нагадил. Уберите с RC5 осциллограф - и будет работать даже без резисторов на RC5. По крайней мере, у меня запустилось.
А принимаемые байты лучше контролировать инструментом Virtual Terminal - он там в проекте вставлен, в окошках показывает значения байтов.
Сообщение от vladh
|
Но правда работает со сбоями ... на входах приемников у меня висят 120 омные резисторы.
|
Нужно организовать защитное смещение:
При разомкнутой линии, когда на ней нет резисторов, ресивер согласно датащиту передает на выход RO лог.1. А если стоит резистор между парой, то ресивер уже не воспринимает линию как разомкнутую и на RO может быть как лог.1, так и лог.0, ибо линия находится в нестабильном состоянии и дифф. напряжение в ней меньше 0,2 В.
Это нестабильное состояние будет приводить к ложным срабатываниям приема UART, к ошибкам фреймов и невозможности получить старт-бит на приемнике в нужный момент. Отсюда - и отсутствие связи.
Диагностировать на практике такую проблему можно, введя в программу небольшой тест: необходимо отслеживать состояние бита Framing Error (FERR) в регистре RCSTA. Этот бит сигнализирует об отсутствии стоп-бита, который находится в строго определенном месте посылки.
Перед чтением регистра приема, вначале читаем состояние бита FERR, и если он =1, то например, включаем контрольный светодиод.
Сообщение от vladh
|
установил подтягивающие резисторы к входам приемников (RX) МК. Обмен стал стабильней.
|
Когда я только начинал работать в "железе" с контроллерами, я хорошо запомнил, что такое висящий в воздухе функциональны вход.
Буквально на третьем моем "железном" учебном проектом с динамической индикацией и клавиатурой я попал в засаду - цифры работали не так, как надо, засвечивались соседние разряды LED-индикатора, причем, реагировало даже на руку в 10 см над платой, цифры начинали волной мигать. Я весь вечер потратил в поисках ошибки в программе и пытаясь экранировать монтажную плату. А утром свежим взглядом увидел, что у драйвера ULN2003 я просто забыл подключить вход разрешения, он висел в воздухе. И высокоомного входа вполне хватило на то, чтобы собрать на себя наводку и получить напряжение, необходимое для циклического переключения с частотой 50 Гц, которая и наложилась на частоту динамической индикации.
Поэтому, со входом RX МК может быть точно такая же ситуация - вход RX, на время передачи оказавшийся в воздухе (RO трансивера находится в Hi-Z), приведет к ошибочному срабатыванию приема UART.
------
Ну и все-таки желательно принять некоторые меры против возможных ошибок приема. Хотябы простой бит четности, передаваемый с каждым байтом.
Сообщение от vladh
|
СПАСИБО
|
Усегда пожалссста!
|
|
|
|
16.09.2015, 23:09
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 7,982
Сказал спасибо: 0
Сказали Спасибо 4,941 раз(а) в 2,370 сообщении(ях)
|
Re: Неправильная работа Proton с RS485
Сообщение от vladh
|
поменял некоторые свои заблуждения
|
на некоторые ваши
неплохо б иметь ICD2 для отладки в железе, без протезов
|
|
|
|
17.09.2015, 07:01
|
|
Почётный гражданин KAZUS.RU
Регистрация: 03.12.2004
Сообщений: 1,306
Сказал спасибо: 337
Сказали Спасибо 76 раз(а) в 33 сообщении(ях)
|
Re: Неправильная работа Proton с RS485
Сообщение от NewWriter
|
Нужно организовать защитное смещение:
|
В моем случае кабель должен быть подключен до начала работы. Поскольку все управление должно будет идти только с выносного пульта. Хотя в будущем скорее всего так и сделаю.
Сообщение от NewWriter
|
Ну и все-таки желательно принять некоторые меры против возможных ошибок приема. Хотябы простой бит четности, передаваемый с каждым байтом.
|
Да, в этом вопросе также есть своя проблема. Мне не очень страшно, когда некоторые посылки к пульту могут приходить сбойные, но очень важно чтобы команды пульта распознавались правильно. Поэтому видимо надо сделать так, чтобы ведомый получив команду от пульта, тут же ответил повторив в ответе важные параметры. И если ответ неверный, пульт вновь посылает посылку с отменой команды.
Сообщение от jump
|
на некоторые ваши
неплохо б иметь ICD2 для отладки в железе, без протезов
|
Вообще то у меня такая штука есть, но я ей уже давно не пользуюсь. Я когда то давно покупал от MikroElectronika плату EasyPIC версии 4. И там эта штука есть. Но я уже про неё забыл. Да и для данной задачи их необходимо иметь 2 шт.
|
|
|
|
17.09.2015, 07:38
|
|
Заблокирован
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
|
Re: Неправильная работа Proton с RS485
Некоторые сведения по подключению RS485 -
http://www.emag.ru/pdf/teldor.pdf
http://www.bookasutp.ru/Chapter2_3.aspx
Ошибки могут возникать в любом байте при любом направлении. Поэтому, никто не гарантирует, что ответная команда будет без ошибок.
Если самое простое - встраивать в каждый байт девятый бит четности, аппаратно он может передаваться МК, включив 9-разрядный прием/передачу. По крайней мере, он позволит отсеять одну случайную ошибку в байте.
|
|
|
Сказали "Спасибо" NewWriter
|
|
|
17.09.2015, 07:44
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,982
Сказал спасибо: 2,554
Сказали Спасибо 11,862 раз(а) в 5,944 сообщении(ях)
|
Re: Неправильная работа Proton с RS485
Проще считать контрольную сумму. Можно простым суммированием. Даже при одном байте вероятность необнаруженной ошибки не шибко большая, а при двух байтах - вообще можно не заморачиваться.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 20:22.
|
|