Как связать attiny13 и attiny2313

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Открыл глаза
Аватара пользователя
Сообщения: 66
Зарегистрирован: Вс фев 14, 2010 14:48:19
Откуда: Львов

Сообщение pierro »

Здравствуйте.

Прошу помощи у старожилов, или у кого то кто может подсказать. Сам я начинающий в программировании под AVR и пишу только на С (асм не знаю :()

Нужно связать два микроконтроллера attiny13 и attiny2313 (так уж получилось в нашем городе только такие "водятся"). А имено, с attiny13 передавать на attiny2313 примерно 16 байт в секунду. Искал в инете и на форуме на эту тему, пока ничего не нашел, или может плохо искал :(

Думаю, как то по одно каналу можно, через debugWIRE или 1WIRE. Но пока не у являю как это реализовать. Может "ткнете носом" в какую то силку, или подскажите в каком направлении копать?

Заранее спасибо. :beer:
Реклама
GP1
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград

Сообщение GP1 »

Копай ДШ в напрвлении USI
Чем дальше, тем больше становлюсь занудой...
Изображение
Контактная информация:
Реклама
Открыл глаза
Аватара пользователя
Сообщения: 66
Зарегистрирован: Вс фев 14, 2010 14:48:19
Откуда: Львов

Сообщение pierro »

Я так понимаю, USI должен быть в обоих микроконтроллерах. Но в antiny13 эго нету. или я ошибаюсь?
Друг Кота
Аватара пользователя
Сообщения: 3874
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Сообщение Engineer_Keen »

pierro писал(а):Я так понимаю, USI должен быть в обоих микроконтроллерах. Но в antiny13 эго нету. или я ошибаюсь?
Аппаратно нету, но можно сделать программно.
Реклама
Эиком - электронные компоненты и радиодетали
Открыл глаза
Аватара пользователя
Сообщения: 66
Зарегистрирован: Вс фев 14, 2010 14:48:19
Откуда: Львов

Сообщение pierro »

Программно реализовать на С?

Поискал по инету, есть только примеры на асм
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3874
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Сообщение Engineer_Keen »

pierro писал(а):Программно реализовать на С?

Поискал по инету, есть только примеры на асм
Я С не знаю, но думаю на нем не сложнее чем на ассемблере дергать одной ножкой, и передавать биты по другой.
Реклама
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 316
Зарегистрирован: Пт апр 17, 2009 22:45:42
Откуда: Minsk

Сообщение maglev »

Такой поток можно передать любыми средствами.
Я-бы поменял контроллер просто выделил две ножки на каждом чипе, если есть такая возможность. Передача односторонняя? Одна нога данные, другая - клок.

Если возможности нет - важно тактирование передатчика и приемника, но опять-же, для такой скорости программный UART справится и при значительной нестабильности клока. Так что смотри примеры software UART на передачу для одной тайни, на прием - для другой.

Или реализовать весь функционал в mega48 или tiny261.

Язык С, разумеется, подходит в любом случае.
Контактная информация:
Мучитель микросхем
Сообщения: 459
Зарегистрирован: Вс июн 01, 2008 12:16:38

Сообщение smac »

pierro писал(а):З... с attiny13 передавать на attiny2313 примерно 16 байт в секунду.
Вам все правильно советуют. Если действительно нужно передать данные, то можно сделать программный UART на тини 13, который будет работать только на передачу. Зайдите на сайт атмела, там по-моему есть примеры и аппликейшен ноутс, как раз для тини13, даже если они на ассемблере - они уже готовы, писать ничего не надо, только немного времени потратить на понимание принципа. Естественно ассемблерный код можно скомпилировать вместе с С-шным и будет вам щщасте :).
Сверлит текстолит когтями
Сообщения: 1278
Зарегистрирован: Пн июн 18, 2007 21:51:20

Сообщение aleksandr-zh »

можно и проще:

передатчик:

вывод х=0
берете байт,
цикл n
{
вывод х=1
если бит (n) = 1, то: пауза 5 мкс (для примера)
пауза 5 мкс (для примера)
вывод х=0
пауза 5 мкс (для примера)
}
смысл сего: бит =1 - импульс длиной 10 мкс, иначе 5 мкс
между битами пауза 5 мкс


Приемник:
резервируем в памяти байт В

ждем фронт сигнала
цикл 8 раз
{
включаем счетчик
ждем спада сигнала
если импульсов >x И <y, то бит 0 байта В =1
сдвигаем влево на 1 разряд байт В
}
на выходе байт В имеет принятые данные




быстро, наглядно, просто, проверено )
Открыл глаза
Аватара пользователя
Сообщения: 66
Зарегистрирован: Вс фев 14, 2010 14:48:19
Откуда: Львов

Сообщение pierro »

Спасибо всем, буду разбираться, пробовать.
Vit
Родился
Сообщения: 2
Зарегистрирован: Сб ноя 14, 2009 15:00:53

Сообщение Vit »

Если остались свободные ножки, то можно реализовать асинхронную передачу.
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 316
Зарегистрирован: Пт апр 17, 2009 22:45:42
Откуда: Minsk

Сообщение maglev »

Для асинхронной достаточно одной лапки на каждом чипе (если только в одну сторону). Синхронная гораздо проще в общем случае, но в тех-же условиях требует по две лапки.
Контактная информация:
Закрыто

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