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

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

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

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

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

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

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

 
Опции темы
Непрочитано 12.09.2015, 22:26  
NewWriter
Заблокирован
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,221 раз(а) в 1,319 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: Неправильная работа Proton с RS485

Ьам вобщем говоря, вот какая проблема то обнаружилась. Просьба автору ВНИМАТЕЛЬНО изучить осциллограмму приема-передачи и ОСОБЕННО поведение управляющих направлением сигналов.
На осциллограмме:
желтый - принимаемая в главный МК (U4) инфа
синий - передаваемая из главного МК (U4) инфа
розовый - управление направлением на подчиненном МК (U1)
зеленый - управление направлением на главном МК (U4)

Видите? У вас они просто неправильно работают. В момент передачи от главного МК сигнал разрешения передачи у главного отсутствует. На RC5 (U4)должен быть высокий уровень, чтобы началась передача через интерфейс, а у вас уровень переключается на низкий слишком рано, не после передачи запроса, а перед его началом. К тому же, U1 начинает переключать управление и передавать, не дождавшись окончания приема всего сообщения. У вас просто не передается команда запроса от главного МК. Потому и ответа нет.

И еще - обратить внимание на длиннющий список предупреждений о неправильной работе со стеком и командами call, return в МК U1.




PS. Кстати. Когда у MAX485 соединены два входа разрешения |RE и DE, работая как бы на переключение, то получаем одну неприятную штуку: при передаче |RE и DE =1, а значит, выход RO находится в Hi-Z состоянии, так же, как и вход RX у МК. И на этом входе очень даже хорошо могут наводиться помехи, которые в определенных обстоятельствах могут привести к ложным срабатываниям приемника в МК и появлению флага ошибки фрейма.
Просто подтяните RX к питанию. Либо запретите прием во время передачи.
Реклама:

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

Сообщение от vladh Посмотреть сообщение
А второе я хотел бы именно Вас попросить разрешить ситуацию с которой столкнулся еще раз. Почему именно Вас? Потому что у Вас есть Протон, потому что у Вас есть Протеус и потому что Вы себя позиционируете профессионалом. Так вот в прилагаемом примере есть две схемы. В одной контроллеры связываются по УАРТ а в другой РС485.

Я вам уже указывал на вашу ошибку , вы проигнорировали . Попытаюсь еще раз :
Код:
Prer:
Context Save 
If PIR1.5 = 1 Then                           
HSerIn 1,Main,[Perem, Reg]       
EndIf
Context Restore                
INTCON.7 = 0

Resume
И так, HSerIn нельзя использовать в прерывании. Вызов чего либо (подпрограмм/процедур/функций) в прерывании для новичков вообще противопоказан, а тем более высокоуровневой конструкции использующей таймаут.

Все остальное даже обсуждать не буду, ибо это не код - лапша.
Может будет проще написать подробное ТЗ и выложить здесь?
__________________
Осторожно , злой кот

Последний раз редактировалось dosikus; 12.09.2015 в 23:24.
dosikus вне форума  
Непрочитано 13.09.2015, 06:23  
vladh
Почётный гражданин KAZUS.RU
 
Регистрация: 03.12.2004
Сообщений: 1,306
Сказал спасибо: 337
Сказали Спасибо 76 раз(а) в 33 сообщении(ях)
vladh на пути к лучшему
По умолчанию Re: Неправильная работа Proton с RS485

Сообщение от dosikus Посмотреть сообщение
Два модуля == беспроводной UART + абсолютная гальваноразвязка .
Это замечательно.

Сообщение от dosikus Посмотреть сообщение
И причем здесь китаец? Вы надеетесь что у вас чип сляпанный не в Китае?
Я когда то для себя решил(прочел где то), что вся продукция MAXIM производится в вмерике и в Китай они ничего не перебрасывали.

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

Сообщение от NewWriter Посмотреть сообщение
Просьба автору ВНИМАТЕЛЬНО изучить осциллограмму приема-передачи и ОСОБЕННО поведение управляющих направлением сигналов.
Да, огромное спасибо за подсказку иного подхода к выявлению причины сбоя. Вообще осциллограмма тоже немного привирает. Я, в своем коде, перед командой выдачи данных "открывал ворота", делал паузу, передавал данные, делал паузу и закрывал. Правда экспериментируя, я эти ворота закомментировал. Но даже если их открыть, у меня обмена данными не будет(да и нет я пробовал). Дело скорее всего вот в чем. Я почему то считал, что время выдачи данных около 20 мкс. Я опять же считал что время работы бейсик-команды ответственной за выдачу данных равно времени выдачи данных. Т.е. программа не перейдет к следующей пока МК не выдаст все данные. А реально это похоже не так работает. Т.е. мне нужно следить за и за битом TXIF регистра PIR1. Когда этот бит обнулится только тогда закрывать ворота на выдачу данных.
vladh вне форума  
Непрочитано 13.09.2015, 10:11  
OakRidge
Почётный гражданин KAZUS.RU
 
Аватар для OakRidge
 
Регистрация: 16.05.2015
Адрес: Болгария
Сообщений: 1,460
Сказал спасибо: 286
Сказали Спасибо 1,125 раз(а) в 540 сообщении(ях)
OakRidge на пути к лучшему
По умолчанию Re: Неправильная работа Proton с RS485

vladh,
Вам упорства не занимать !
Разумеется цепь знания -› опыт -› упорство никто не отменял !
Когда первые две точки граблей кончются последняя тоже вариант
Удачи Вам !
OakRidge вне форума  
Непрочитано 13.09.2015, 12:19  
vladh
Почётный гражданин KAZUS.RU
 
Регистрация: 03.12.2004
Сообщений: 1,306
Сказал спасибо: 337
Сказали Спасибо 76 раз(а) в 33 сообщении(ях)
vladh на пути к лучшему
По умолчанию Re: Неправильная работа Proton с RS485

Сообщение от OakRidge Посмотреть сообщение
vladh,
Вам упорства не занимать !
Разумеется цепь знания -› опыт -› упорство никто не отменял !
А я считаю это не цепь а цикл.
vladh вне форума  
Непрочитано 13.09.2015, 12:44  
NewWriter
Заблокирован
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,221 раз(а) в 1,319 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: Неправильная работа Proton с RS485

Сообщение от vladh Посмотреть сообщение
Вообще осциллограмма тоже немного привирает.
Как она может привирать? Она не может настолько соврать, чтобы перепутать черное с белым.
В данном случае осциллограмма честно показывает состояние выходов, изменяющееся в соответствии с исполняемым кодом МК. А код исполняется точно так, как был написан, вернее, скомпилирован протоном (или бейсиком, чем там, я не разбираюсь в нем).
Ну а если вот такой график?
Может быть, станет понятнее, что именно не работает?
Посмотрите на графики - там все подписано - с главного МК уходят запросы, они идут беспрерывно, до тех пор, пока не придет ответ. А он - не приходит. Потому что линия находится в свободном состоянии, передача от главного МК запрещена.




Время выполнения команд МК нужно считать не на высокоуровневом бейсике, а на низкоуровневом ассемблере.
Как видно из графика, между посылками проходит 4,16 мс.

Последний раз редактировалось NewWriter; 13.09.2015 в 13:49.
NewWriter вне форума  
Непрочитано 13.09.2015, 14:07  
STM32F0
Заблокирован
 
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
STM32F0 на пути к лучшему
По умолчанию Re: Неправильная работа Proton с RS485

Сообщение от NewWriter Посмотреть сообщение
Время выполнения команд МК нужно считать не на высокоуровневом бейсике, а на низкоуровневом ассемблере.
И в чём разница? Где точнее? Считать такты это верный путь к безнадёге, или от безнадёги. Это, как правило, результат:
1. Неправильного выбора МК.
2. Непонимания происходяшего или неправильно составленного алгоритма.
3. Неправильной расстановки приоритетов.
STM32F0 вне форума  
Непрочитано 13.09.2015, 15:45  
NewWriter
Заблокирован
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,221 раз(а) в 1,319 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: Неправильная работа Proton с RS485

Быть может, стоит более аккуратно перерисовать проект и добавить туда инструментов анализа и графиков, чтобы было понятнее, откуда ноги растут у проблемы? Например, вот так: (во вложении).
Там беда именно в переключениях направлений в полудуплексном интерфейсе.

Вложения:
Тип файла: zip Uresano.zip (130.0 Кб, 15 просмотров)
NewWriter вне форума  
Эти 2 пользователя(ей) сказали Спасибо NewWriter за это сообщение:
mikhail09p (15.09.2015), vladh (13.09.2015)
Непрочитано 14.09.2015, 08:26  
vladh
Почётный гражданин KAZUS.RU
 
Регистрация: 03.12.2004
Сообщений: 1,306
Сказал спасибо: 337
Сказали Спасибо 76 раз(а) в 33 сообщении(ях)
vladh на пути к лучшему
По умолчанию Re: Неправильная работа Proton с RS485

Учтя многое о чем здесь говорилось, переделал код. Стало работать лучше но вылезли другие проблемы. Сделал в программе так, чтобы "ворота"(ПОРТС.5) закрывались для передачи данных тогда, когда устанавливался флаг передатчика(TXIF). В результате на осциллограмме увидел, что порт стал закрываться, а данные еще 2 мс шли. И ее обратил внимание, что при переключении "Ворот" срабатывал приемник УАРТ МК. Пойду на работу проверю на живой схеме.
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, время: 00:52.


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