Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
10.07.2007, 22:24
|
|
Частый гость
Регистрация: 07.07.2007
Сообщений: 25
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Связать 2 МК по USART
Необходимо связать два МК(ATmega 16) между собой по USART.С какой частотой надо тактировать МК чтобы была нормальная передача данных , или частота тактирования имеет значение только для связи с PC? Мне необходима тактировать МК с максимальной частотой возможной для ATmega 16, по даташиту это 16Мгерц.Будут ли МК стабильно работать на придельной частоте и передавать данные друг другу или лучше не использовать максимальную частоту? Расстояние между МК 1,5 метра, как их связать между собой по USART ? Подсоединить провода напрямую , или добавить развязку? Короче нужна предельная скорость работы двух МК и безошибочная, стабильная передача данных между ними.
|
|
|
|
11.07.2007, 11:04
|
|
Вид на жительство
Регистрация: 05.09.2006
Сообщений: 360
Сказал спасибо: 0
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
1. Набор стандартных частот USART служит для согласования устройств разных производителей, на то он и стандарт. Если Вы ничего не планируете подключать кроме своего со своим, то частота передачи не имеет значения. Единственное, частота и настройка порта должна быть одинаковыми.
2. Напрямую подключать выводы МК на кабель 1.5 м нежелательно. Лучше использовать буферные элементы. Какие - зависит от типа кабеля и помех. Можно типа MAX481-MAX487, тогда сможете и на длинный кабель работать. Можно попроще, что нибудь из серии 74AHC 74AHCT.
3. Опторазвязку, если она действительно не нужна, лучше не ставить, т.к. будут проблемы с быстродействием. В качестве гальванической развязки рекомендую использовать серию ADUM от Analog Devices. Они ставятся между МК и буфером.
Удачи.
|
|
|
|
11.07.2007, 11:21
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.01.2007
Сообщений: 1,747
Сказал спасибо: 2
Сказали Спасибо 46 раз(а) в 35 сообщении(ях)
|
И не полагайтесь только на помехозащищенность физического уровня. Выберете для обмена помехоустойчивый протокол с контролем передачиприема, незначительно проиграете в скорости но с лихвой отыграетесь на надежности.
Удачи!
|
|
|
|
11.07.2007, 12:36
|
|
Частый гость
Регистрация: 07.07.2007
Сообщений: 25
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
В моем устройстве будет работать только 2 МК. МК1 будет обслуживать клавиатуру и ЛСД , сохранять и редактировать данные, а затем будет пересылать на МК 2 пакет данных, МК2 получив данные начинает работать согласно им , и в случае нарушения каких либо параметров МК2 будет передавать данные на МК1.
Проконсультируйте по MAX487(у меня есть схема от ANALOG DEVICE М485 по моему это тоже самое): На каждый МК нужно по схеме? Что к чему подсоединять? К этой схеме нужны дополнительные элементы, или просто подать питание соединить входа выхода и все?Какой формат передачи данных между МК лучше поставить?
|
|
|
|
11.07.2007, 13:27
|
|
Вид на жительство
Регистрация: 05.09.2006
Сообщений: 360
Сказал спасибо: 0
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Сообщение от MAX1978
|
Проконсультируйте по MAX487(у меня есть схема от ANALOG DEVICE М485 по моему это тоже самое): На каждый МК нужно по схеме? Что к чему подсоединять? К этой схеме нужны дополнительные элементы, или просто подать питание соединить входа выхода и все?Какой формат передачи данных между МК лучше поставить?
|
ADM485 - полудуплексный приемопередатчик. Вы не сможете одновременно передавать и принимать информацию, нужно предусмотреть вывод переключения режима на МК, проработать протокол приема/передачи.
Лучше использовать полный дуплекс (4 провода или 2 витые пары). Схема взята из даташита. Кроме пары резисторов и конденсаторов больше ничего не нужно. Правда на длинных линиях ставят еще подтягивающие резисторы, но Вам незачем. Экран кабеля соединить с общим обоих МК. На каждый МК по микросхеме. Формат передачи зависит от поставленной задачи. Сделаете контроль паритета - лишним не будет. Главное разработать правильно протокол связи и алгоритм работы МК, т.е. обеспечить синхронизацию пакетов.
Удачи.
-- Прилагается рисунок: --
|
|
|
Сказали "Спасибо" nokazus
|
|
|
11.07.2007, 13:28
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.01.2007
Сообщений: 1,747
Сказал спасибо: 2
Сказали Спасибо 46 раз(а) в 35 сообщении(ях)
|
Сообщение от MAX1978
|
В моем устройстве будет работать только 2 МК. МК1 будет обслуживать клавиатуру и ЛСД , сохранять и редактировать данные, а затем будет пересылать на МК 2 пакет данных, МК2 получив данные начинает работать согласно им , и в случае нарушения каких либо параметров МК2 будет передавать данные на МК1.
Проконсультируйте по MAX487(у меня есть схема от ANALOG DEVICE М485 по моему это тоже самое): На каждый МК нужно по схеме? Что к чему подсоединять? К этой схеме нужны дополнительные элементы, или просто подать питание соединить входа выхода и все?Какой формат передачи данных между МК лучше поставить?
|
Это микросхемы драйверов линии интерфейса RS485/422 схема использования приведена в даташите http://www.datasheet4u.com/download.php?id=421122
В качестве протокола обмена, я бы, порекомендовал MODBUS RTU.
PS В полном объеме протокол можно не реализовывать, а просто взять за основу: структуру кадров, алгоритмы подсчета CRC...
|
|
|
|
11.07.2007, 17:05
|
|
Частый гость
Регистрация: 07.07.2007
Сообщений: 25
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
В Proteus и VMLab при кварце 16Мгрц и скорости обмена данными - 9600 на Virtual USART выводится каша. На железе то же так будет? В чем проблема ?
|
|
|
|
11.07.2007, 17:15
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.06.2005
Сообщений: 1,389
Сказал спасибо: 19
Сказали Спасибо 210 раз(а) в 156 сообщении(ях)
|
Сообщение от MAX1978
|
В Proteus и VMLab при кварце 16Мгрц и скорости обмена данными - 9600 на Virtual USART выводится каша. На железе то же так будет? В чем проблема ?
|
В Протеус можно включить диагностику последовательного порта: Debug - Configure Diagnostics, выбрать контроллер, открыть его "плюсиком" и на соответствующий USART поставить Full Trace или Debug (не помню точно).
Когда порт будет сконфигурирован, в журнал выведется много информации, в том числе скорость обмена. В терминале (если скорость нестанадртная) можно ввести значение скорости просто цифрами.
|
|
|
|
22.07.2007, 19:50
|
|
Прописка
Регистрация: 04.01.2007
Сообщений: 233
Сказал спасибо: 22
Сказали Спасибо 18 раз(а) в 14 сообщении(ях)
|
А RS-232 не пойдет?Он проше.
|
|
|
|
05.08.2007, 21:33
|
|
Частый гость
Регистрация: 11.08.2006
Адрес: Н.Новгород
Сообщений: 12
Сказал спасибо: 8
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Помогите спецы... не могу передать данные с одного МК на другой. В Протеусе пишет UCSCR0 register is not modelles. Не могу понять где ошибка. Не то Протеус глючит, не то ошибка в коде. Уже все книги и ДШ перерыл. Заранее СПАСИБО.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 15:43.
|
|