Регистрация | Вход

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: demanik, ivan_fd  
Форум Picbasic.ru » Программирование МК » Proton PicBasic » Почему не работает модель?
Почему не работает модель?
vladh Дата: Сб, 24.07.2021, 11:17  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 351
Репутация: 11   ±
Замечания:   ±
На сайте с 15.10.2007

Статус: Offline

Друзья, выручайте. Вот уже несколько дней никак не могузаставить работать модель связи двух контроллеров по усеченному протоколу Модбас.
Усеченный он здесь потому, что нигде не считаю сонтрольную сумму. Модель
представляет из себя некоторый управляющий узел, у которого сть OLED-дисплей, клавиатура ит.п. Основу этого узла составляет контроллер U4. С этим контроллером по интерфейсу RS485 связан другой контроллер U1. Принцип работы связидолжен быть следующим. Каждую секунду контроллер U4 формирует запрос к контроллеру U1. U1 приняв этот запрос  тут же отправляет ответ. В свою очередь  контроллер U4 должен по прерванию приемника UART принять эту посылку. Анализапереслаемых данных я здесь пока не произвожу, контрольных сумм не считаю.
Главное пока состоит в том, чтобы данные пересылались и принимались. Иак вот контроллер
U4 каждую секундуформирует и посылает данные. В свою очередь U1 принимает этиданные по прерыванию UART и тут жеотсылает их обратно. Но вот обратно данные контроллером U4 не принимаются. Почему это происходит,я никак не могу понять. Поэтому и обращаюсь к вам. Может вы сторонним, более внимательнм
глазом найдете ошибку. При работе модели мне неонятна еще одна вещь. Почему намодели ввод RC5 контроллераU1 находится почтипостоянно с низким логическим  уровнем, ау U4 в неопределенном?И может кто знает как правильно рисовать модель интерфейса RS485? Нужны ли подтягивающие резисторына шине, а если нужны то каков их номиналы. И нужен ли резистор между цепями А
и В? Почему то когда я меняю эти параметры, меняется и работа интерфейса.
Файл модели прицепил.
Прикрепления: 12.rar(143.7 Kb)
ЯНДЕКС Дата: 24.07.2021
ivan_fd Дата: Пн, 26.07.2021, 18:29  |                                                                                                                Сообщение # 2
Группа: Модераторы
Ранг:  Специалист
Сообщений: 1168
Репутация: 124   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

vladh
у вас идет переполнение приемного буфера, и контроллер зависает на приеме.
Переполнение идет потому, что слишком много всего наворочено и он не успевает принять данные.

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

Цитата vladh ()
И может кто знает как правильно рисовать модель интерфейса RS485?

Резистор нужен только между А и В. 
И уберите резистор R5. Он в протеусе мешает.


Меня все время преследуют умные мысли...но я быстрее!!!
vladh Дата: Пн, 26.07.2021, 19:47  |                                                                                                                Сообщение # 3
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 351
Репутация: 11   ±
Замечания:   ±
На сайте с 15.10.2007

Статус: Offline

Цитата ivan_fd ()
у вас идет переполнение приемного буфера, и контроллер зависает на приеме.Переполнение идет потому, что слишком много всего наворочено и он не успевает принять данные.

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

Цитата vladh ()
И может кто знает как правильно рисовать модель интерфейса RS485?

Резистор нужен только между А и В. 
И уберите резистор R5. Он в протеусе мешает.
Иван, спасибо за участие. Но сегодня утром, перед работой мне наконец удалось заставить работать модель. И даже несмотря на то, что я и обрабатывал данные по прерыванию от приемника UART контроллер U1 принимал их без проблем, а вот U4 с проблемами. Поэтому я переделал прием на побайтный и тогда все заработало. Работающую модель прилагаю. И еще по поводу резистора R5. Если его убрать, то прием контроллером U4 не происходит, А вот в случае с U1 наличие или отсутствие резистора R11 не влияет на работу. Почему не знаю.
Прикрепления: 4070398.rar(214.0 Kb)
Форум Picbasic.ru » Программирование МК » Proton PicBasic » Почему не работает модель?
  • Страница 1 из 1
  • 1
Поиск: