|
Сопряжение нескольких atmega, у кого нибудь может есть примеры?? |
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 29)
|
Apr 5 2010, 07:23
|
Частый гость
 
Группа: Участник
Сообщений: 128
Регистрация: 12-11-09
Из: Perm
Пользователь №: 53 565

|
Цитата(Skaf @ Apr 5 2010, 12:27)  Смотря сколько мег и какая нужна скорость.
Если скорость нужна не очень большая я бы сделал на UART. Если скорость нужна большая- то SPI. Мег не больше 10... скорость некритична... а примеров нет реализации?
|
|
|
|
|
Apr 6 2010, 09:53
|
Частый гость
 
Группа: Участник
Сообщений: 128
Регистрация: 12-11-09
Из: Perm
Пользователь №: 53 565

|
Всетаки выбрал USART.. отправляю число с ведущего МК на ведомый: printf("125"); на втором опрашивая getchar() получаю по порядку коды символов: 49;50;53 Дк вот вопрос как мне теперь эти когда можно преобразовать в число 125. мозги догнали только до этого.. но я думаю это не гуманно //цыкл s=getchar(); if (i2>0) { i3=((s-48)); i=i1+i2+i3; i1=0; i2=0; i3=0;// получаем единицы и потом все складываем и обнуляем if (i1>0) i2=((s-48)*10);//получаем десятки if (i1==0) i1=((s-48)*100); //получаем сотни он конечно работает но не всегда при повторной отправке числа 125 число насчитывает уже 512 почемуто.. а следующая отправка снова 125.. может подкажет как это делают умные люди?
Сообщение отредактировал Станис - Apr 6 2010, 10:37
|
|
|
|
|
Apr 8 2010, 03:45
|
Частый гость
 
Группа: Участник
Сообщений: 128
Регистрация: 12-11-09
Из: Perm
Пользователь №: 53 565

|
Цитата(smalcom @ Apr 7 2010, 21:04)  уже сразу ищи компонент для Делфи Вопрос о сопряжении с ПК не рассматривается вообще.
|
|
|
|
|
Apr 8 2010, 05:35
|
Частый гость
 
Группа: Участник
Сообщений: 128
Регистрация: 12-11-09
Из: Perm
Пользователь №: 53 565

|
Вот настроил USART на двух Мегах все работет.. общаются отлично.. а вот как третий мк к линии подсоединю так сразу все молчат... подскажите в чем дело?
Эскизы прикрепленных изображений
|
|
|
|
|
Apr 8 2010, 10:41
|
Частый гость
 
Группа: Участник
Сообщений: 128
Регистрация: 12-11-09
Из: Perm
Пользователь №: 53 565

|
Цитата(XVR @ Apr 8 2010, 12:05)  Прямое соединение USARTов возможно только в конфигурации точка-точка, т.е. ровно 2 штуки. Если нужно больше, то нужно делать либо шину (драйверами RS485 или буферами с 3мя состояниями) либо кольцо. если в кольцо нужно делать последовательную пересылку от МК до МК?
|
|
|
|
|
Apr 11 2010, 17:03
|
Группа: Участник
Сообщений: 12
Регистрация: 18-10-05
Из: г.Донецк
Пользователь №: 9 806

|
Читаете раздел Multi-processor Communication Mode для ATmega32. Соединял по USART 6 МК, один мастер 5 подчиненых. На линию TXD ставится резистор, выходы 5 передатчиков подчиненых в третьем состоянии, при передаче выход переключается на передачу. Все описано в DS, читайте и все у Вас получится.
|
|
|
|
|
Apr 12 2010, 03:48
|
Частый гость
 
Группа: Участник
Сообщений: 128
Регистрация: 12-11-09
Из: Perm
Пользователь №: 53 565

|
Цитата(Stas_R @ Apr 11 2010, 23:18)  Читаете раздел Multi-processor Communication Mode для ATmega32. Соединял по USART 6 МК, один мастер 5 подчиненых. На линию TXD ставится резистор, выходы 5 передатчиков подчиненых в третьем состоянии, при передаче выход переключается на передачу. Все описано в DS, читайте и все у Вас получится. А вы не поделитесь наработками в этом направлении?
|
|
|
|
|
Apr 12 2010, 12:24
|
Группа: Участник
Сообщений: 12
Регистрация: 18-10-05
Из: г.Донецк
Пользователь №: 9 806

|
Что Вас интересует. Спрашивайте.
|
|
|
|
|
Apr 13 2010, 04:02
|
Частый гость
 
Группа: Участник
Сообщений: 128
Регистрация: 12-11-09
Из: Perm
Пользователь №: 53 565

|
Цитата(Stas_R @ Apr 12 2010, 18:39)  Что Вас интересует. Спрашивайте. с битами не могу разобраться... первый раз с даташитом работаю.. а так все какими то кусочками кодов в нете питался..  вы уж извените.. я только начал изучять и не все так сразу мне дается.. я вот понял что можно настроить это все в мастере кодвизиона.. толко не все понятно.. вроде как так? для мастера/слейва
Эскизы прикрепленных изображений
|
|
|
|
|
Apr 13 2010, 05:18
|
Частый гость
 
Группа: Участник
Сообщений: 128
Регистрация: 12-11-09
Из: Perm
Пользователь №: 53 565

|
Цитата(XVR @ Apr 13 2010, 10:46)  Режим наверное все таки асинхронный (Mode) UCPOL - полярность синхронизации. используется только в синхронном режиме. В асинхронном UCPOL=0. или я не правильно чтото понял?
|
|
|
|
|
Apr 13 2010, 06:27
|
Частый гость
 
Группа: Участник
Сообщений: 128
Регистрация: 12-11-09
Из: Perm
Пользователь №: 53 565

|
Цитата(XVR @ Apr 13 2010, 12:35)  У меня нет CW, так что сказать не могу. А какие еще есть варианты в списке Mode? Asynchronous Sync. master UCPOL=0 Sync. master UCPOL=1 Sync. slave UCPOL=0 Sync. slave UCPOL=1 Если поставить Asynchronous, то как тогда различить мастер и слэйв?
|
|
|
|
|
Apr 13 2010, 07:04
|
Гуру
     
Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847

|
Цитата Asynchronous Вот его Цитата Если поставить Asynchronous, то как тогда различить мастер и слэйв? Изнутри контролера они не отличаются. Все отличие в схеме включения выводов TX и RX и в протоколе обмена
|
|
|
|
|
Apr 13 2010, 08:19
|
Группа: Участник
Сообщений: 12
Регистрация: 18-10-05
Из: г.Донецк
Пользователь №: 9 806

|
Читайте описание на регистр UCSRB. Там есть бит 3 TXEN который фактически переключает вывод порта как линия передачи TX или бит порта. Мастер всегда скоммутирован как линия TX. Подчиненый скомутирован как бит порта. При необходимости передачи данных бит TXEN устанавливается в 1 и после окончания передачи сбрасывается в 0. На линии TX подчиненых МК которые паралелятся устанавливается подтягивающий резистор.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|