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

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: ivan_fd  
Форум Picbasic.ru » Программирование МК » PicBasicPro » Передача даных по RS 485
Передача даных по RS 485
Broka Дата: Пт, 15.10.2010, 21:14  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 253
Репутация: 9   ±
Замечания:   ±
На сайте с 30.09.2009

Статус: Offline

Задумка такая, состыковать два PIC, по RS 485 (длина линии примерно 120м).
Первый PIC будет работать на дискретные датчики ( Контакты 8 шт ), второй принимать информацию по RS 485,
Во втором PICе будет стоять LCD руссифицированый который должен будет выводить на дисплей,
то или иное событие при срабатывании того или иного датчика ( Вообщем сигнализация тех. процессов)
Есть ли у кого по этому поводу какие то подсказки? Читал про USART, ни как не догоню как работает,
тем более ставить надо по любому микросхему работающую на RS 485, (Вроде как так?)
Если кто сталкивался с таким , просьба разьяснить! Пишу исключительно на PicBasicPro(Протон не знаю cool
Заранее премного благодарен!


Наладчик КИП и А
Сообщение отредактировал Broka - Пт, 15.10.2010, 21:17
ЯНДЕКС Дата: 15.10.2010
deskjet Дата: Сб, 16.10.2010, 10:17  |                                                                                                                Сообщение # 2
Группа: Проверенные
Ранг:  Продвинутый
Сообщений: 143
Репутация: 5   ±
Замечания:   ±
На сайте с 20.06.2009

Статус: Offline

Первый ПИК для чего нужен? 8 контактов нельзя просто подсоединить к линии, проводов жалко?
Если связываться с интерфейсами то почему не выбрать 1-Wire или SPI? Есть ведь готовые библиотеки
для работы с USART, трудностей возникнуть не должно.


За 20 8 дней ни одного сгоревшего микроконтроллера.
PIC12, PIC16, PIC18, ATtiny, ATmega, STM8, STM32, MSP430

Сообщение отредактировал deskjet - Сб, 16.10.2010, 13:08
Broka Дата: Сб, 16.10.2010, 21:16  |                                                                                                                Сообщение # 3
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 253
Репутация: 9   ±
Замечания:   ±
На сайте с 30.09.2009

Статус: Offline

Проводов не жалко, просто конкректно надо видеть на дисплее, что произошло! Можно конечно поставить восемь светодиодов и подписать над каждым что твориться на той стороне. но только это как то по детски.
Вот поэтому и есть такая задумка, сегодня почитал немного про USART? немного стал вьезжать как всё работает,
буду пробовать! smile


Наладчик КИП и А
demanik Дата: Сб, 16.10.2010, 21:52  |                                                                                                                Сообщение # 4
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 448
Репутация: 10   ±
Замечания:   ±
На сайте с 11.12.2007

Статус: Offline

Quote (Broka)
Задумка такая, состыковать два PIC, по RS 485

Смотрите тут:http://www.picbasic.ru/forum/15-61-1
17-сообщение код на пикбейсике для для подчиненного устройства промышленного протокола MODBUS RTU. В пике используется USART а для связи между устройствами RS485

15-сообщение пример программы обмена от Алекса


Попробуй всё и вся... может быть пол...


Сообщение отредактировал demanik - Сб, 16.10.2010, 21:59
demanik Дата: Сб, 16.10.2010, 22:33  |                                                                                                                Сообщение # 5
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 448
Репутация: 10   ±
Замечания:   ±
На сайте с 11.12.2007

Статус: Offline

Quote (deskjet)
Если связываться с интерфейсами то почему не выбрать 1-Wire

Ограниченная длина линии и очень чуствителен к наводкам.
Quote (deskjet)
или SPI?

Уже на 2-3метрах глючит.

А через RS485 длина линии до 1,2км
Не обязатально использовать USART можно и самому написать свой протокол, но через USART думаю проще. cool


Попробуй всё и вся... может быть пол...

deskjet Дата: Вс, 17.10.2010, 11:35  |                                                                                                                Сообщение # 6
Группа: Проверенные
Ранг:  Продвинутый
Сообщений: 143
Репутация: 5   ±
Замечания:   ±
На сайте с 20.06.2009

Статус: Offline

Quote (demanik)
Ограниченная длина линии и очень чуствителен к наводкам.

витая пара в экране и 300м обеспечено
Quote (demanik)
Уже на 2-3метрах глючит

ну так ведь длина линии передачи - есть функция от скорости (и от допустимого количества ошибок передачи),
а мегагерцы в данном случае не нужны


За 20 8 дней ни одного сгоревшего микроконтроллера.
PIC12, PIC16, PIC18, ATtiny, ATmega, STM8, STM32, MSP430
demanik Дата: Вс, 17.10.2010, 13:08  |                                                                                                                Сообщение # 7
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 448
Репутация: 10   ±
Замечания:   ±
На сайте с 11.12.2007

Статус: Offline

Quote (deskjet)
витая пара в экране и 300м обеспечено

Это в теории.
Я на практие использую DS18B20 уже лет-5 за всю историю установлено больше 200штук. Экспериментировал с разными кибелями с экраном и без и с разным сечением жил. Все зависит от уровня электромагнитных помех обекта, наводку дают даже лампы дневного света. Устойчивая связь без сбоев получалась на линиях до 40-50метров Это на практике!!!. в некоторых местах уже при15-20метрах с экранированой витой парой шли сбои а внекоторых 20-30метров на обычном сигнализационном (4-жильном не витая пара) работает идеально. Идеальный кабель это витая пара зечением 0,5-0,75 квадратов в экране. Но его трудно достать и он дороговат.


Попробуй всё и вся... может быть пол...

deskjet Дата: Вс, 17.10.2010, 13:14  |                                                                                                                Сообщение # 8
Группа: Проверенные
Ранг:  Продвинутый
Сообщений: 143
Репутация: 5   ±
Замечания:   ±
На сайте с 20.06.2009

Статус: Offline

А как на счет драйвера который упоминается в даташите на DS18B20 (обещано до 600м)?
Ну и опять же, скорость передачи можно (нужно) снизить, так как принимать будет ПИК
то не нужно гнаться строго выдерживая протокол DS18B20


За 20 8 дней ни одного сгоревшего микроконтроллера.
PIC12, PIC16, PIC18, ATtiny, ATmega, STM8, STM32, MSP430

Сообщение отредактировал deskjet - Вс, 17.10.2010, 13:22
demanik Дата: Вс, 17.10.2010, 13:30  |                                                                                                                Сообщение # 9
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 448
Репутация: 10   ±
Замечания:   ±
На сайте с 11.12.2007

Статус: Offline

Quote (deskjet)
Ну и опять же, скорость передачи можно (нужно) снизить, так как принимать будет ПИК
то не нужно гнаться строго выдерживая протокол DS18B20

Тогда нужно самому писать протокол. А написать Slave устройство для 1-Wire совсем непросто.


Попробуй всё и вся... может быть пол...

deskjet Дата: Вс, 17.10.2010, 14:08  |                                                                                                                Сообщение # 10
Группа: Проверенные
Ранг:  Продвинутый
Сообщений: 143
Репутация: 5   ±
Замечания:   ±
На сайте с 20.06.2009

Статус: Offline

Библиотечные функции языка использовать почему нельзя?

За 20 8 дней ни одного сгоревшего микроконтроллера.
PIC12, PIC16, PIC18, ATtiny, ATmega, STM8, STM32, MSP430
demanik Дата: Вс, 17.10.2010, 14:16  |                                                                                                                Сообщение # 11
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 448
Репутация: 10   ±
Замечания:   ±
На сайте с 11.12.2007

Статус: Offline

Quote (deskjet)
Библиотечные функции языка использовать почему нельзя?

А как Вы собираетесь

Quote (deskjet)
скорость передачи можно (нужно) снизить

в библиотечной функции.
И в библиотечной функции присутствует только Master а Slave нужно писать самому.


Попробуй всё и вся... может быть пол...

ЯНДЕКС Дата: 17.10.2010
deskjet Дата: Вс, 17.10.2010, 15:18  |                                                                                                                Сообщение # 12
Группа: Проверенные
Ранг:  Продвинутый
Сообщений: 143
Репутация: 5   ±
Замечания:   ±
На сайте с 20.06.2009

Статус: Offline

Есть такая хитрость: компилируем проект под одну частоту а на самом деле используем другую.
Например, когда мне надо было посмотреть на осциллографе через звуковую карту фактический протокол
1-Wire, программу скомпилировал для f=50MHz а кварц поставил на 1MHz (AVRSimulatorIDE).
Разумеется, использовал библиотечные функции.


За 20 8 дней ни одного сгоревшего микроконтроллера.
PIC12, PIC16, PIC18, ATtiny, ATmega, STM8, STM32, MSP430

Сообщение отредактировал deskjet - Вс, 17.10.2010, 15:19
DAlexV Дата: Вс, 17.10.2010, 20:13  |                                                                                                                Сообщение # 13
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 657
Репутация: 27   ±
Замечания:   ±
На сайте с 13.05.2008

Статус: Offline

Quote (deskjet)
программу скомпилировал для f=50MHz а кварц поставил на 1MHz

А потом голову ломаем почему то LCD то не те значения принимаем. demanik, правильно говорит.
"На заборе то же пишут ... , а на самом деле там дрова лежат" tongue
1-Wire очень капризный протокол, проще на такой длинне 485 использовать, а не городить огород. Тем более название само за себя говорит.
По поводу самого задания, demanik, давал ссылку на нашу с ним переписку в 4 посте. Так же я где то описывал пример создания собственного протокола.
Могу предложить еще один вариант PIC + компутер с небольшой программкой, и вешать на шину несколько пиков с датчиками. А дальше уже дело фантазии.


Будьте оригинальны-не повторяйте чужих ошибок ! Рыба сдохла. Теперь STM32(TS)+C#(VS).Старею :)
deskjet Дата: Пн, 18.10.2010, 10:52  |                                                                                                                Сообщение # 14
Группа: Проверенные
Ранг:  Продвинутый
Сообщений: 143
Репутация: 5   ±
Замечания:   ±
На сайте с 20.06.2009

Статус: Offline

Quote (DAlexV)
А потом голову ломаем почему то LCD то не те значения принимаем

Как это скажется на работе LCD? Современные LCD и МК - полностью статические устройства.
Главное не превысить верхний предел частоты, а нижнего предела не существует.
PS: меня как то не интересует, что пишут на заборах )


За 20 8 дней ни одного сгоревшего микроконтроллера.
PIC12, PIC16, PIC18, ATtiny, ATmega, STM8, STM32, MSP430

Сообщение отредактировал deskjet - Пн, 18.10.2010, 19:24
DAlexV Дата: Пн, 18.10.2010, 19:44  |                                                                                                                Сообщение # 15
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 657
Репутация: 27   ±
Замечания:   ±
На сайте с 13.05.2008

Статус: Offline

Quote (deskjet)
Как это скажется на работе LCD? Современные LCD и МК

Quote (deskjet)
программу скомпилировал для f=50MHz а кварц поставил на 1MHz

В итоге все задержки и т.д. становятся больше в 50 !!! раз. Lcd еще могут работать на пониженных частотах, а некоторые элементы нет + выполнение программы увеличится в 50 !!! раз. Опять огород в итоге.
Quote (deskjet)
PS: меня как то не интересует, что пишут на заборах )

Это имелось в про разницу между теорией и практикой. То что заявлено не всегда на самом деле происходит.


Будьте оригинальны-не повторяйте чужих ошибок ! Рыба сдохла. Теперь STM32(TS)+C#(VS).Старею :)
Форум Picbasic.ru » Программирование МК » PicBasicPro » Передача даных по RS 485
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск: