Помогите связать ATMEGA16 и ATTINI2313

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
elf
Открыл глаза
Сообщения: 60
Зарегистрирован: Чт окт 29, 2009 23:22:03

Сообщение elf »

Доброго времени суток, даже не знаю с чего начать:
Имеются две ATTINI2313 и ATMEGA16 , есть небольшой опыт программирования на Си.

И есть конкретная задача:

(один ATTINI2313 управляет выходным напряжением блока питания
при помощи ШИМ.

второй ATTINI2313 крутит шаговый двигатель.

ATMEGA16 подключена к компъютеру через UART.) -зто все работает но по одельности.

Я же хочю что-бы Атмегой 16 можно было управляь этим блоком питания и двигателем.Помогите мне их связать , по какому интерфейсу? Вроде как SPI надо использовать. Но с чего начать не знаю ?
Всем спасибо!
Последний раз редактировалось elf Чт фев 04, 2010 23:00:54, всего редактировалось 1 раз.
Реклама
Открыл глаза
Сообщения: 48
Зарегистрирован: Пн фев 01, 2010 22:48:14

Сообщение Labus »

оформлено на 5 с +
Реклама
Потрогал лапой паяльник
Сообщения: 315
Зарегистрирован: Пт янв 29, 2010 19:42:27

Сообщение 12val12 »

ÿ áû ïîðåêîìåíäîâàë
ñâÿçàòü èõ ïî.. UART..äà äà
òàê êàê àïïðàòíûé UART ATMEGA16 çàíÿò
ñäåëàé ñîôòîâûé íà ïåðåäà÷ó..
ÝÒÎ ÍÅÑËÎÆÍÎ.íàäî ïðîñòî âñïîìíèòü ïðòîêîë
âîçìîæíî åñòü íåáîëüøàÿ îøèáêà..ëþäè ïðîâåðÿò
Вложения
rs232_2.PNG
(48.58 КБ) 390 скачиваний
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1287
Зарегистрирован: Пн окт 13, 2008 11:45:54
Откуда: РФ, Крым, г.Бахчисарай

Сообщение Danko »

Если програмно реализовывать протокол то почему именно UART с таким же успехом можно связать все три устройства по I2C или по однопроводному 1-wire.

А вообще очень мало информации.

Где тип процессора ПК? какая материнка?

Да и вообще какого цвета системный блок?

:idea: :idea: :idea:
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
elf
Открыл глаза
Сообщения: 60
Зарегистрирован: Чт окт 29, 2009 23:22:03

Сообщение elf »

Процессор Атлон 3000 Материнка АСУС к8н- а зачем это???
Согласен что можно по I2C и 1-wire. Но сразу вопрос будут ли две
ATTINI2313 самостоятельно передавать информацию или их надо опрашивать Атмегой16 - это важно.
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....

Сообщение Meteor »

Стыкуйте по SPI. Начинать надо с систематизации принимаемой и передаваемой информации на каждый МК. На основе этих данных формируете протокол обмена, разрабатываете программу. Заливаете и отлаживаете в железках.
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Контактная информация:
Реклама
Друг Кота
Аватара пользователя
Сообщения: 5953
Зарегистрирован: Ср ноя 11, 2009 17:19:30
Откуда: Воронеж

Сообщение >TEHb< »

А есть ли какой-нибудь суперасинхронный протокол? Нужно нечто подобное, только ведомых контоллеров от четырёх до восьми, и в каждом могут совершенно непресказуемо образовыватся прерывания. Теоритически прерывания можно упорядочить без особого ущерба алгоритма работы устройства.
Усложнять просто. Упрощать сложно.
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....

Сообщение Meteor »

Для >ТЕНЬ<, а зачем асинхронный протокол? Кому как но сам предпочитаю синхронные протоколы типа SPI. Единстенно нужно исключать обработку пустых сообщений от адресата. А определять передачу "Васе или Гале" можно по флагам.
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 5953
Зарегистрирован: Ср ноя 11, 2009 17:19:30
Откуда: Воронеж

Сообщение >TEHb< »

а у меня прерывание может прямо посреди передачи возникнуть, сначала планировал вообще 1-wire.
Усложнять просто. Упрощать сложно.
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....

Сообщение Meteor »

Длина посылки в одну точку какая? Да и собстенно какая разница? Протокол синхронный. Ведущий прервался, но сигнал выбора не снял, аппаратно байт выдует до конца. Ведомый его примет и будет ждать чего ему еще скажут. Ведущий выйдя из прерывания завершит свой диалог с ведомым, снимет сигнал выбора и пусть там ведомый уже обкатывает что ему на уши повесили.
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Контактная информация:
elf
Открыл глаза
Сообщения: 60
Зарегистрирован: Чт окт 29, 2009 23:22:03

Сообщение elf »

а в ATTINI2313 есть SPI?Наверное есть). Что-то я не могу понять
пользуюсь мастером CVAVR.Как выбрать чтобы чип Slave был?
У меня такой код генерит
(
// Universal Serial Interface initialization
// Mode: Three Wire (SPI)
// Clock source: Register & Counter=no clk.
// USI Counter Overflow Interrupt: Off
USICR=0x10;
)
Друг Кота
Аватара пользователя
Сообщения: 5953
Зарегистрирован: Ср ноя 11, 2009 17:19:30
Откуда: Воронеж

Сообщение >TEHb< »

А разве ведущий/ведомый это не условность? Вроде который начал передачу тот и ведущий. У себя бы я их вообще по 232 связал, да вот только посылка у меня занимает минимум 4 байта, чтобы работал буфер надо отключать прерывания, чего делать ну никак нельзя
Усложнять просто. Упрощать сложно.
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....

Сообщение Meteor »

При обмене по SPI ведущим может выступать один МК, ведомых может быть масса, которая легко расширяется до большего размера. Протокол синхронный и тактовый сигнал (SCK) генерится ведущим. В его присутствии ведущий выдает в линию (MOSI) данные, а по линии (MISO) принимает данные от выбранного сигналом (#SSi) ведомого.
Ни один ведомый не может начать передачу без разрешения ведущего. В общем виде (во временном разрезе) получается что ведущим указывается новая задача ведомому, в то время как ведомый сообщает результат полученный на предыдущую команду (посылку длиной N байт).
Подобные протоколы хороши в распределенных системах, где есть центральный узел и куча периферийных подузлов, например, когда один МК принимает данные от ПК и раздает на несколько устройств управления ШД, отрабатывающих перемещение в своих координатах.
Что касается протокола RS232 то конечно он асинхронен, но получить простым соединением в звезду такой "сетки" , без лишних деталей, невозможно
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Контактная информация:
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»