Страница 1 из 1
Как связать attiny13 и attiny2313
Добавлено: Пт фев 19, 2010 11:41:01
pierro
Здравствуйте.
Прошу помощи у старожилов, или у кого то кто может подсказать. Сам я начинающий в программировании под AVR и пишу только на С (асм не знаю

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

Добавлено: Пт фев 19, 2010 11:54:07
GP1
Копай ДШ в напрвлении USI
Добавлено: Пт фев 19, 2010 12:16:46
pierro
Я так понимаю, USI должен быть в обоих микроконтроллерах. Но в antiny13 эго нету. или я ошибаюсь?
Добавлено: Пт фев 19, 2010 13:17:23
Engineer_Keen
pierro писал(а):Я так понимаю, USI должен быть в обоих микроконтроллерах. Но в antiny13 эго нету. или я ошибаюсь?
Аппаратно нету, но можно сделать программно.
Добавлено: Пт фев 19, 2010 18:06:00
pierro
Программно реализовать на С?
Поискал по инету, есть только примеры на асм
Добавлено: Пт фев 19, 2010 18:08:56
Engineer_Keen
pierro писал(а):Программно реализовать на С?
Поискал по инету, есть только примеры на асм
Я С не знаю, но думаю на нем не сложнее чем на ассемблере дергать одной ножкой, и передавать биты по другой.
Добавлено: Сб фев 20, 2010 00:22:39
maglev
Такой поток можно передать любыми средствами.
Я-бы поменял контроллер просто выделил две ножки на каждом чипе, если есть такая возможность. Передача односторонняя? Одна нога данные, другая - клок.
Если возможности нет - важно тактирование передатчика и приемника, но опять-же, для такой скорости программный UART справится и при значительной нестабильности клока. Так что смотри примеры software UART на передачу для одной тайни, на прием - для другой.
Или реализовать весь функционал в mega48 или tiny261.
Язык С, разумеется, подходит в любом случае.
Re: Как связать attiny13 и attiny2313
Добавлено: Сб фев 20, 2010 04:10:31
smac
pierro писал(а):З... с attiny13 передавать на attiny2313 примерно 16 байт в секунду.
Вам все правильно советуют. Если действительно нужно передать данные, то можно сделать программный UART на тини 13, который будет работать только на передачу. Зайдите на сайт атмела, там по-моему есть примеры и аппликейшен ноутс, как раз для тини13, даже если они на ассемблере - они уже готовы, писать ничего не надо, только немного времени потратить на понимание принципа. Естественно ассемблерный код можно скомпилировать вместе с С-шным и будет вам щщасте

.
Re: Как связать attiny13 и attiny2313
Добавлено: Сб фев 20, 2010 18:03:38
aleksandr-zh
можно и проще:
передатчик:
вывод х=0
берете байт,
цикл n
{
вывод х=1
если бит (n) = 1, то: пауза 5 мкс (для примера)
пауза 5 мкс (для примера)
вывод х=0
пауза 5 мкс (для примера)
}
смысл сего: бит =1 - импульс длиной 10 мкс, иначе 5 мкс
между битами пауза 5 мкс
Приемник:
резервируем в памяти байт В
ждем фронт сигнала
цикл 8 раз
{
включаем счетчик
ждем спада сигнала
если импульсов >x И <y, то бит 0 байта В =1
сдвигаем влево на 1 разряд байт В
}
на выходе байт В имеет принятые данные
быстро, наглядно, просто, проверено )
Добавлено: Сб фев 20, 2010 19:14:11
pierro
Спасибо всем, буду разбираться, пробовать.
Добавлено: Вс фев 21, 2010 18:02:50
Vit
Если остались свободные ножки, то можно реализовать асинхронную передачу.
Добавлено: Пн фев 22, 2010 00:02:42
maglev
Для асинхронной достаточно одной лапки на каждом чипе (если только в одну сторону). Синхронная гораздо проще в общем случае, но в тех-же условиях требует по две лапки.