Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 10.09.2015, 16:46  
vladh
Почётный гражданин KAZUS.RU
 
Регистрация: 03.12.2004
Сообщений: 1,279
Сказал спасибо: 335
Сказали Спасибо 76 раз(а) в 33 сообщении(ях)
vladh на пути к лучшему
По умолчанию Неправильная работа Proton с RS485

Уважаемые форумчане. Прошу помочь разрешить мою "затыку". Мне необходимо связать два PIC16F877A контроллера по интерфейсу RS485. Программы работы я пишу на Бейсике. В случае PIC это Proton. Если соединить два МК по UART то все(и модель в Протеусе, и живая схема) работает. Но как только я начинаю переходить на RS485 все начинает работать непонятно. Вот и в прикрепленном примере вроде как все работает нормально. Но вот если в программе приемника в строках 47 и 50 отключить команды откл/вкл прерывания, то в результате прием прекращается. Почему? Вообще говоря эти команды как бы здесь и не нужны. Вживую, вначале прием идет но через несколько строк у дисплея пропадает синхронизация(если что у меня OLED дисплей). Или если в 33 строке включить команду очистки экрана, то результат будет похожий. Почему? Если в программе передатчика в строке 38 уменьшить время задержки менее 5 мс, то результат опять будет похожий. Почему? Здесь задержка как бы и не очень нужна.
И ещё. Время цикла работы приемника в несколько тысяч раз меньше времени цикла передатчика. Т.е. передатчик достаточно редко передает данные приемнику, чтобы внести сумятицу в его работу. А на вид получается, что он(приемник) начинает путать порядок принимаемых переменных.
Вложения:
Тип файла: rar EKSp.rar (70.2 Кб, 31 просмотров)
Реклама:
vladh вне форума  
Непрочитано 10.09.2015, 19:34  
anatol378
Почётный гражданин KAZUS.RU
 
Аватар для anatol378
 
Регистрация: 19.10.2004
Адрес: Нижний Новгород
Сообщений: 1,746
Сказал спасибо: 416
Сказали Спасибо 1,240 раз(а) в 551 сообщении(ях)
anatol378 на пути к лучшему
По умолчанию Re: Неправильная работа Proton с RS485

vladh, не плоди темы в интернете. Достаточно на родном сайте. Протокол обмена RS485 не равен RS232 (UART). PIC16F877A аппаратного RS485 на борту не имеет. Схему, связи между контроллерами, вы не приводите. Протеусе не у всех установлен. Так о чем просите.
Ознакомтесь с этим, особенно внимательно часть 5, 8 и ссылки.
__________________
Решил посоветовать, да забыл что...
anatol378 вне форума  
Непрочитано 10.09.2015, 21:22  
vladh
Почётный гражданин KAZUS.RU
 
Регистрация: 03.12.2004
Сообщений: 1,279
Сказал спасибо: 335
Сказали Спасибо 76 раз(а) в 33 сообщении(ях)
vladh на пути к лучшему
По умолчанию Re: Неправильная работа Proton с RS485

Сообщение от anatol378 Посмотреть сообщение
vladh, не плоди темы в интернете. Достаточно на родном сайте.
anatol378 Если было бы достаточно я бы здесь не спрашивал.
Цитата:
Протокол обмена RS485 не равен RS232 (UART). PIC16F877A аппаратного RS485 на борту не имеет.
Я этого нигде в своем сообщении и не утверждаю. Я и не говорю об этом. С чего Вы это вообразили?
Цитата:
Схему, связи между контроллерами, вы не приводите. Протеус не у всех установлен. Так о чем просите.
Хорошо, я думаю RAR у Вас есть?
Цитата:
Ознакомьтесь с этим, особенно внимательно часть 5, 8 и ссылки.
За ссылку спасибо. Попробую воспользоваться.
Вложения:
Тип файла: rar EKSp.rar (156.4 Кб, 24 просмотров)
vladh вне форума  
Непрочитано 10.09.2015, 21:42  
NewWriter
Заблокирован
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: Неправильная работа Proton с RS485

Ну потому что писать надо не на каком то там бейсике и протоне.
Текст программы не смотрел - это неблагодарное дело, читать автоматически ассемблированный текст каким-то там бейсиком и искать где-то строчки 33, 47, 50. Они ж не помечены. Там хз вообще че такое.

И вообще, UART может работать с любым протоколом, лишь бы был старт-бит, стоп-бит и 8 (9) битов между ними, и работать он может на любой, в том числе и нестандартной скорости, в пределах допуска МК.
А RS485 - это всего лишь физический уровень, через который чего-то там передается. И передавать можно че угодно и как угодно, вообще без разницы, хоть щадом наперед, лишь бы битовая скорость была рассчитана на возможности "железного" трансмиттера.

Если приемник работает ТОЛЬКО в режиме приема, то не надо задействовать переключение направления передачи через линию RS485. Не переключай ее, оставь у передатчика на передачу, а у приемника - на прием.
Вероятно, где-то в программе приемника МК происходит какое-то передергивание управляющего направлением вывода и RO оказывается в воздухе, и на него идут помехи, воспринимаемые как ложный старт-бит.

Последний раз редактировалось NewWriter; 10.09.2015 в 22:01.
NewWriter вне форума  
Непрочитано 10.09.2015, 21:57  
anatol378
Почётный гражданин KAZUS.RU
 
Аватар для anatol378
 
Регистрация: 19.10.2004
Адрес: Нижний Новгород
Сообщений: 1,746
Сказал спасибо: 416
Сказали Спасибо 1,240 раз(а) в 551 сообщении(ях)
anatol378 на пути к лучшему
По умолчанию Re: Неправильная работа Proton с RS485

vladh, в передаче данных много тонкостей. В частности количество ошибок UART зависит от кварца (ноль при скорости умноженной на два в степени, есть в ДШ). Второе есть большое различие в протоколах программных, не только в физических. Если у вас передача в одну сторону, то физически переключите направление и "заглушите" вход приемника на передающей стороне. Если намереваетесь двухсторонний обмен - разберитесь как работает USART в PICе и как требуется управлять трансмиттером для изменения направления приема передачи. И что такое арбитр шины.
NewWriter - не лайся. Протон отличный бейсик для ПИКов и только для ПИКов. Простой, не заумный, прозрачный, легко читаемый. Не транслируемый на другие процы -это да. А текстушки как и в СИ прочитать легко в обычном текстовом редакторе - расширение *.bas
__________________
Решил посоветовать, да забыл что...

Последний раз редактировалось anatol378; 10.09.2015 в 22:04.
anatol378 вне форума  
Сказали "Спасибо" anatol378
mikhail09p (11.09.2015)
Непрочитано 10.09.2015, 22:12  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Неправильная работа Proton с RS485

anatol378, фуфло эти ваши барсики.
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 10.09.2015, 22:17  
vladh
Почётный гражданин KAZUS.RU
 
Регистрация: 03.12.2004
Сообщений: 1,279
Сказал спасибо: 335
Сказали Спасибо 76 раз(а) в 33 сообщении(ях)
vladh на пути к лучшему
По умолчанию Re: Неправильная работа Proton с RS485

Сообщение от NewWriter Посмотреть сообщение
Ну потому что писать надо не на каком то там бейсике и протоне. Текст программы не смотрел - это неблагодарное дело, читать автоматически ассемблированный текст каким-то там бейсиком и искать где-то строчки 33, 47, 50. Они ж не помечены. Там хз вообще че такое.
Это Вы о чем?
Цитата:
И вообще, UART может работать с любым протоколом, лишь бы был старт-бит, стоп-бит и 8 (9) битов между ними, и работать он может на любой, в том числе и нестандартной скорости, в пределах допуска МК.
А RS485 - это всего лишь физический уровень, через который чего-то там передается. И передавать можно че угодно и как угодно, вообще без разницы, хоть щадом наперед, лишь бы битовая скорость была рассчитана на возможности "железного" трансмиттера.
В основном с Вами здесь согласен.

Цитата:
Если приемник работает ТОЛЬКО в режиме приема, то не надо задействовать переключение направления передачи через линию RS485. Не переключай ее, оставь у передатчика на передачу, а у приемника - на прием.
Вероятно, где-то в программе приемника МК происходит какое-то передергивание управляющего направлением вывода и RO оказывается в воздухе, и на него идут помехи, воспринимаемые как ложный старт-бит.
Приведенный пример работает без вопросов! Разговор идет о том, что если сделать в нем описанные изменения, которые не должны влиять на прием и на передачу, а они влияют. Вот в этом вопрос. Почему это так влияет?
vladh вне форума  
Непрочитано 10.09.2015, 22:24  
vladh
Почётный гражданин KAZUS.RU
 
Регистрация: 03.12.2004
Сообщений: 1,279
Сказал спасибо: 335
Сказали Спасибо 76 раз(а) в 33 сообщении(ях)
vladh на пути к лучшему
По умолчанию Re: Неправильная работа Proton с RS485

Сообщение от anatol378 Посмотреть сообщение
NewWriter - не лайся. Протон отличный бейсик для ПИКов и только для ПИКов. Простой, не заумный, прозрачный, легко читаемый
Правильно, лаяться не стоит. Есть хороший Бейсик и для AVR(BascomAVR). И для решения задач выдвигаемых передо мной жизнью их вполне хватало.
vladh вне форума  
Сказали "Спасибо" vladh
mikhail09p (11.09.2015)
Непрочитано 10.09.2015, 22:30  
vladh
Почётный гражданин KAZUS.RU
 
Регистрация: 03.12.2004
Сообщений: 1,279
Сказал спасибо: 335
Сказали Спасибо 76 раз(а) в 33 сообщении(ях)
vladh на пути к лучшему
По умолчанию Re: Неправильная работа Proton с RS485

Сообщение от anatol378 Посмотреть сообщение
Если намереваетесь двухсторонний обмен - разберитесь как работает USART в PICе и как требуется управлять трансмиттером для изменения направления приема передачи.
Я в стартовом сообщении писал, что по обычному UART контроллеры обмениваются без проблем(двухсторонний обмен в моей основной программе). Но мне надо разнести контроллеры на 20 м и я подозреваю, что в этом случае можно будет наловить блох. Поэтому решил добавить RS485. И когда я начал пробовать с эти протоколом пошли чудеса. Я сделал простую(урезанную схему) и урезанный же код. И тогда стал обнаруживать разные чудеса.

Последний раз редактировалось vladh; 10.09.2015 в 22:44.
vladh вне форума  
Непрочитано 10.09.2015, 22:39  
vladh
Почётный гражданин KAZUS.RU
 
Регистрация: 03.12.2004
Сообщений: 1,279
Сказал спасибо: 335
Сказали Спасибо 76 раз(а) в 33 сообщении(ях)
vladh на пути к лучшему
По умолчанию Re: Неправильная работа Proton с RS485

Сообщение от dosikus Посмотреть сообщение
anatol378, фуфло эти ваши барсики.
Обижаешь, начальник. Хотя в данном случае у меня есть ощущение, что дело в компиляторе.
vladh вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
PROSTAR PR6000 по RS485 volk_perm Производственное оборудование 14 09.01.2017 18:18
PIC18F242 неправильная работа LCD 16x2 Kpomobm PIC 17 02.09.2014 03:13
Напряжённая работа Roshens Отвлекитесь, эмбеддеры! 8 01.09.2010 23:08
Работа с RS485 okt03 Микроконтроллеры, АЦП, память и т.д 13 13.02.2008 10:59


Часовой пояс GMT +4, время: 06:20.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot