Как програмировать ардуино с установленным XBee?

axill
Offline
Зарегистрирован: 05.09.2011

Правильного способа не знаю, методом проб и ошибок знаю только один способ - снимать Xbee модуль с ардуинки каждый раз когда нужно залить прошивку иначе UART Xbee модуля конфликтует с чипом на плате арудинки через который идет заливка с компа. И тот и тот использую D0/D1 RX/TX входы контроллера

Ситуация с Arduino FIO усугубляется еще и тем, что после програмирования приходится отключать USB-TTL адаптер (через который в FIO заливается прошивка) иначе не возможно считать данные с модуля XBee через библиотеку Serial

antonim
Offline
Зарегистрирован: 10.06.2013

Не нашлось другого решения кроме снимать xBee ?

Клапауций
Offline
Зарегистрирован: 10.02.2013

antonim пишет:

Не нашлось другого решения кроме снимать xBee ?

Заливать скетчи через USBaspLoader http://www.obdev.at/products/vusb/usbasploader.html

Хотя... тогда плату Ардуино тогда вообще можно выбросить - накуя она такая кому нужна?

axill
Offline
Зарегистрирован: 05.09.2011

Клапауций пишет:

Заливать скетчи через USBaspLoader http://www.obdev.at/products/vusb/usbasploader.html

[/quote]

в общем то вы правы, можно любым програматором через ISP вместо UART-а, либо что еще круче - без проводов через сам XBee модуль. С последним пока не разобрался, скорее всего надо брать связку модуля XBee->USB и ПО от iDigi которое организует на компе серийный порт. Далее нужно инициировать соединение с нужным модулем, открыть ардуину студию и залить через тот серийнф порт скетч.

а вот и статья на ненавистном хархабаре http://habrahabr.ru/post/126539/

Цитата:

Хотя... тогда плату Ардуино тогда вообще можно выбросить - накуя она такая кому нужна?

ардуина это же не только заливка через бутлоадер, это среда програмирования, набор библиотек и философия)) если заливать через ISP ардуина остается ардуиной, а вот бутлоадер тогда не ясно зачем нужен ))

axill
Offline
Зарегистрирован: 05.09.2011

однако статья на хархаюаре слизана с первоичточника, лучше уж пользоваться первоисточником

http://www.ladyada.net/make/xbee/arduino.html - для всех ардуинок

http://arduino.cc/es/Main/ArduinoBoardFioProgramming - особенности ардуино FIO

Клапауций
Offline
Зарегистрирован: 10.02.2013

axill пишет:
в общем то вы правы, можно любым програматором через ISP вместо UART-а, либо что еще круче...

Возможно, вы не уловили смысл предложенного варианта.

Как это работает в теории:

- загрузчик программно прикидывается ISP программатором USBasp, но! т.к. реализован на железе самого контроллера, то требует подключения к USB всего по двум линиям - по затратам аналогично подключению по UART, но более гибок в выборе ног МК для подключения, единственным обязательным условием является использование ноги INT0.

Как это работает на практике:

- у вас на плате с МК две кнопки: "RESET" и "Init boot loader".

- нажимаете "Init boot loader", сбрасываете МК кнопой "RESET", удерживая "Init boot loader"(варианты поведения можно выбрать в конфигах при компиляции, если не хочется держать кнопы руками или привыкли работать по таймауту) - у вас в системе появляется программатор USBasp, ставите на него драйвера и он готов прошить флеш контроллера из под IDE Arduino, после загрузки скетча работа лоадера завершается и управлени МК передаётся основной прошивке(скетчу).

Но, в железном остатке у вас получается плата Ардуино с двумя USB - один(железный сериал-порт) не используется, а второй(USBaspLoader) - используется. Поэтому и возникает вопрос, а замем вообще плата нужна, если достаточно одного МК с кварцем и USB-разъёмом?

axill пишет:
ардуина это же не только заливка через бутлоадер, это среда програмирования, набор библиотек и философия)) если заливать через ISP ардуина остается ардуиной, а вот бутлоадер тогда не ясно зачем нужен ))

Среда программирования остаётся и успешно пользуется.

antonim
Offline
Зарегистрирован: 10.06.2013

мда... как бы попроще избавиться от необходимости выдергивать XBee во время отладки и частой заливки скетчей ?

Может соединить RX TX двух ардуин и убрать хВее на время тестирования ?

Клапауций
Offline
Зарегистрирован: 10.02.2013

antonim пишет:
мда... как бы попроще избавиться от необходимости выдергивать XBee во время отладки и частой заливки скетчей ?

Вам нужно аппаратно освободить пины RX, TX МК Ардуино, что для этого нужно сделать? - путём длительных логических измышлений приходим к выводу, что "нужно аппаратно освободить пины RX, TX".

Но! - это ведь так сложно, сидим и думаем дальше, как бы так сделать, что бы ничего не делать.

maksim
Offline
Зарегистрирован: 12.02.2012

Вообще есть способ. Перемыкаете резисторы показанные на картинке, а xBee подключаете через резисторы такого же номинала 1кОм.

axill
Offline
Зарегистрирован: 05.09.2011

Чудес точно не бывает, сомневаюсь, что ардуины будуть прошиватьмя, если их rx tx соединить вместе

проблема же не в xbee как таковом, а в том, что при загрузке через загрузчик пины rx tx должны быть совершенно свободны от подключений. 

Выходы уже озвучены выше: как минимум два: 1. Прошивать внешним програматором 2. Прошивать через модуль xbee

axill
Offline
Зарегистрирован: 05.09.2011

maksim пишет:

Вообще есть способ. Перемыкаете резисторы показанные на картинке, а xBee подключаете через резисторы такого же номинала 1кОм.

наверно так заработает, но например если скажем запрограмировать пин rx на вывод то легко спалить ft232/atmega8u2

maksim
Offline
Зарегистрирован: 12.02.2012

Тогда резистор RN4A не перемыкать, а заменить например на 100 Ом.

antonim
Offline
Зарегистрирован: 10.06.2013

неизящно конечно. Но решение. Прошу прощения у гуру. Можно использовать Leonardo.

Хотя в проблеме модель Arduino не конкретизировалась.