Страница 1 из 1

Связь между двумя AVR

Добавлено: Чт сен 18, 2008 17:25:23
Andryxa
Всем привет!
Поделитесь исходником связь двух МК, ну собстно нечего сложного, так передача например температуры, приём команд (например,зажечь светодиод) и всё такое... Вот скоько искал в нете, так конкретно и не нашол исходника по связи двух МК. Если кто-то подобное делал, поделитесь исходником.
За ранние спасибо! :)

Re: Связь между двумя AVR

Добавлено: Чт сен 18, 2008 17:33:32
tych
Andryxa писал(а):Всем привет!
Поделитесь исходником связь двух МК, ну собстно нечего сложного, так передача например температуры, приём команд (например,зажечь светодиод) и всё такое... Вот скоько искал в нете, так конкретно и не нашол исходника по связи двух МК. Если кто-то подобное делал, поделитесь исходником.
За ранние спасибо! :)

В моей домашней страничке смотрите на стр. 7 - там апноут от производителя AVR по их связи.

Добавлено: Чт сен 18, 2008 18:21:07
Andryxa
А можно что-то попроще и на русском желательно.

Добавлено: Чт сен 18, 2008 18:46:45
tych
Andryxa писал(а):А можно что-то попроще и на русском желательно.

попроще и на русском - задача 4 там же - соединяешь (желательно через резисторы по 300 Ом) накрест UART двух МК и вперед по примеру задачи 5.

Добавлено: Чт сен 18, 2008 19:59:18
megasvintus
или соедини их по I2C- посердитее будет- до 400kbps

Добавлено: Пт сен 19, 2008 07:13:14
Andryxa
tych, надо будет попробовать. :)
megasvintus, советы мне не очень нужны, я просил исходников, что на форуме не кто не писал подобное? :(

Добавлено: Пт сен 19, 2008 07:35:18
tych
Andryxa писал(а):tych, я просил исходников, что на форуме не кто не писал подобное? :(

Я писал, я вам и указал на задачу 5 - там ИМЕННО ИСХОДНИКИ для UART с рассказом о том как они получаются.

Добавлено: Пт сен 19, 2008 14:18:12
NiTr0
megasvintus писал(а):или соедини их по I2C- посердитее будет- до 400kbps

USART какбы скоростью не шибко ограничен... битрейт 1/16 Fosc в обычном режиме, 1/8 Fosc при включении Double Speed Mode, и 1/2 Fosc при синхронном режиме - что при 8МГц кварце выливается в 4 МБита, полудуплекс.

А примеры инициализации и т.д. - в даташите есть :)

Добавлено: Сб сен 20, 2008 09:39:38
Andryxa
исходники я посмотрю, но я хотел посмотреть исходник не на инициализацию UART , а на организацию этого всего. Тоесть целый проект.

Добавлено: Сб сен 20, 2008 09:52:04
NiTr0
Что там смотреть? В начале кода - инициализация, потом - либо в цикле опрос байта флагов порта на предмет флага передачи/приема, либо (правильнее) - прерываниями разрулить это все...
Если нужно - могу покопаться в своих проектах поискать код для АЦП/ЦАП(ШИМ), работающего по RS232. Ессно, на асме.

Добавлено: Сб сен 20, 2008 11:58:03
Pixma_ip2500
Мне собственно ненадо исходники приёма и передачи по UART, так как я это всё делал в проекте связи с ПК. А мне нужно сама организация протокола, ну сам код связи между двумя МК.

Добавлено: Сб сен 20, 2008 13:16:28
NiTr0
А протокол - это уже вы сами придумывайте :) Под конкретную задачу...
Неизвестно же, что вы хотите от протокола...
В общих чертах - можно сделать пакет фиксированной длинны, и старт-метку скажем 6 символов FF, + CRC16 контрольная сумма в конце... Надежно но избыточно. Если FF не встречается в данных - можно его сделать маркером начала пакета, длинну пакета сделать фиксированной или переменной... ну и т.д. Контрольная сумма - при наличии контроля четности необязательна.

Добавлено: Сб сен 20, 2008 13:28:19
tych
Протокол Wake от Ридико ЛИ

Добавлено: Вс сен 21, 2008 13:10:49
MetEl
Ещё SPI есть, у вас длинна линии передачи какая? (и напряжения).
Сколки проводная.

Инициализируйте SPI, одинаково на обоих МК c прерыванием. Для передачи с одного на другой устанавливаете его как мастер, когда передадите обратно на слейв. И другой теперь мастер а этот слейв.
И подключите соответственно.

Передать по знчение переменной а:
#include <spi>

spi(а);

Принять, в обработчике прерывания.

А вообще можно и просто по 3м проводочкам, три любые ножки.
Одна вход-выход для данных, одна выход(указывает на передачу, если не активен приём), одна на вход(запускается обработчик приёма).