LINUX.ORG.RU

Serial интерфейс на arduino

 , ,


0

1

[жж]Мне только что принесли новую игрушку. Помигал на разный лад светодиодом, забавно.[/жж]
Однако надо и поработать. Задача подружить сабж с другой железякой. Оно работает по uart в 9 битном режиме. Отсюда пара вопросов (вижу всё это барахло первый раз в жизни, «с паяльником на Вы»):
1. У сабжа есть аппаратный uart, правильно ли я понимаю что «TX0» и «RX0» законфликтуют с usb? (я так понял оно к тому же преобразователю присобачено)
2. Ждут ли меня подводные камни из-за 9 битного протокола?(при использовании ардуиновской SDK) Если да, как мне с этим поступить?
Заранее спасибо за вашу помощь.

ЗЫ: Linux тут при том, что я буду ковырять сабж из гентушки, ЛОР при том что я асоциальный тип и кроме ЛОРа мало с кем общаюсь.

★★★★★
Ответ на: комментарий от exception13

Спасибо за ваш крайне развёрнутый и полезный ответ.

erfea ★★★★★
() автор топика

посмотрел на схему, используй UART1

exception13 ★★★★★
()
Ответ на: комментарий от ziemin

Может мне кто и подскажет как это должно выглядеть:

Формат двоичной последовательности: 1 старт бит, 8 бит данных, 1 бит режима, 1 стоп бит.
Start 0 1 2 3 4 5 6 7 Mode Stop
Сравнивая с форматом асинхронной последовательной передачи данных бит режима используется вместо бита четности в качестве признака передачи байта адреса периферийного устройства.

Есть у меня подозрение что Serial<1-3> не проканает (если интересно, речь о протоколе MDB)... Походу надо свою либу лепить. Я с трудом врубаюсь в сабж, опыт нулевой, есть только некоторые теоретические знания.

erfea ★★★★★
() автор топика
Последнее исправление: erfea (всего исправлений: 1)
Ответ на: комментарий от erfea

Согласно даташиту на твой контроллер у него есть 9-битный режим.

The UCSZn2 bits combined with the UCSZn1:0 bit in UCSRnC sets the number of data bits (Character SiZe) in a
frame the Receiver and Transmitter use.

В этом же даташите смотри примеры кода.

UPD: Не то скопипастил. Короче на 222 странице табличка. Ставишь три битика и получаешь 9-битный режим.

ziemin ★★
()
Последнее исправление: ziemin (всего исправлений: 2)
Ответ на: комментарий от ziemin

Спасибо. Я правильно понимаю, что надо наследовать класс Serial или реализовывать свой, для работы в таком режиме?

erfea ★★★★★
() автор топика
Ответ на: комментарий от erfea

ХЗ. Покопайся в SDK. Главное чип поддерживает.

ziemin ★★
()
Ответ на: комментарий от PolarFox

Я так понял что требуется режим 8E1 или 8O1, однако раз «бит режима используется вместо бита четности в качестве признака передачи байта адреса периферийного устройства» придётся наследовать Serial или реализовывать свой класс, дабы реализовать возможность управлять этим самым битом четности (такой возможности в документации на SDK я не вижу).

erfea ★★★★★
() автор топика

В любом случае направление куда копать найдено, просветление начинает вырисовываться где-то на горизонте. За сим прекращаю задавать свои дилетантские вопросы, докуриваю доки и за дело. Спасибо за помощь!

erfea ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.