Тема: Arduino nano: DTR и RTS своими руками.  (Прочитано 6593 раз)

0 Пользователей и 1 Гость просматривают эту тему.


Оффлайн avi@tor

  • Старейшина клуба
  • Сообщений: 1784
  • Z-Power
  • Город: Москва
« : 28 Апрель, 2015, 12:01:59 pm »
Уважаемые коллеги по хобби.
Возникла у меня необходимость подключиться к устройству USART с 6-ю пинами.
Четыре из них стандартные: Земля, +5В, RX, TX, а вот два дополнительных - контроль потока: DTR и CTS.
Проблема в том, что стандартные адаптеры дают только 4 провода, а заказывать ещё железку с "на_еБэя" не хочется ибо долго и "абыдна, да".

В общем надо как-то сколхозить контроль потока.
Есть:
1. Китайский адаптер (UART/i2c+SPI) с непонятными обозначениями:

В данном случае не понятны обозначения DD и DC ибо в описании стандарта я DC вообще не нашёл.
Можно-ли, нельзя-ли таким подцепиться к USART с контролем чётности я так и не понял. Эксперименты продолжаются.

2. Есть вот такая вот "метла" (ИЧХ отечественного производства!).


Поскольку DTR и CTS являются инструментами контроля потока (как я понял, сначала мы шлём "модему" DTR и ждём от "модема" СTS, далее льём фрейм данных и так каждый раз) мне почему-то кажется, что наверное можно написать небольшой скетч на ардуине который сможет управлять передачей данных таким образом.
Вопрос к бывалым: Как это сделать и возможно есть изъяны в логике?
In a sky full of people, only some want to fly isn't that crazy?

Оффлайн AndRay

  • Старейшина клуба
  • Сообщений: 3574
    • Андрей
  • Город: Свято-Питер
« Ответ #1 : 28 Апрель, 2015, 23:00:51 pm »
Жуть какая... на микросхему смотреть надо, а не на надписи на плате... на мкросхеме, как правило, выведено всё... + подтянуть что надо к чему надо...

А на фото - обычная ардуина, которой RTS нужен для пересброса в режиме прошивке, не более того.

Оффлайн ilyxa

  • Старейшина клуба
  • Сообщений: 4645
  • Foto & RC Hobby
  • Город: Rostov-na-Donu
« Ответ #2 : 30 Апрель, 2015, 09:30:25 am »
Поколхозить можно, но если нужно мороковать с реальным устройством - я бы посоветовал глянуть на девайс Moxa UPort 110 (готовое решение). Если же принципиален колхоз - на праздниках с удовольствием ковырну ардуинку ;)

Оффлайн avi@tor

  • Старейшина клуба
  • Сообщений: 1784
  • Z-Power
  • Город: Москва
« Ответ #3 : 30 Апрель, 2015, 13:43:48 pm »
Андрей, я могу и микросхемку показать, вот она (minimosd в редакции MultirotorMania):


Но это вряд ли что-то изменит, тут ведь реально что-то сделать надо, а не сказки рассказывать.


Илюх, буду признателен если что-то выйдет. Я сам тоже постараюсь разобраться, но для меня пока эта ардуина лес густой. Теоретически примерно понимаю чего там надо, но в коде как реализовать пока не разобрался.
По-хорошему пока план такой:
Берём UART через USB, пишем в буфер, а затем потихоньку засылаем эти данные через другие ножки контроллера в прошиваемый девайс не забывая при этом сначала слать DTR и получать CTS перед каждым пакетом данных.
Как-то так.
In a sky full of people, only some want to fly isn't that crazy?

Оффлайн ilyxa

  • Старейшина клуба
  • Сообщений: 4645
  • Foto & RC Hobby
  • Город: Rostov-na-Donu
« Ответ #4 : 30 Апрель, 2015, 14:28:10 pm »
http://www.pjrc.com/teensy/td_libs_AltSoftSerial.html раз
http://www.arduino.cc/en/Reference/SoftwareSerial - причем ее пользовал в каких-то проектах, косая шо ппц, но жить можно

Оффлайн ilyxa

  • Старейшина клуба
  • Сообщений: 4645
  • Foto & RC Hobby
  • Город: Rostov-na-Donu
« Ответ #5 : 30 Апрель, 2015, 14:32:54 pm »
Смотри, какой еще колхоз на cp21x есть
http://dmstudios.net/misc/CP2102_USB_UART_mod-001_small.jpg

Боюсь играть в кэпа, но.

По существу - линии квитирования (RTS/CTS) тебе нафик не нужны, конкретно для данной железки, забудь про них (ты все равно CTS с адаптера пригонишь на землю, будешь там иметь усегда логическую единичку, как и положено, что в целом-то пофиг).

Колхоз, если нет UART/USB адаптера, описан с конкретно твоей железкой описан здесь http://www.rcgroups.com/forums/showpost.php?p=28145350&postcount=75

Линия DTR тебе нужна только для того, чтобы добраться до bootloader'a этой самой железки, ТОЧНО такой же функционал (без линии DTR) можно изобразить, мастерски-вовремя нажимая кноповку RESET на плате (если возился с arduino nano - тебе такое уже знакомо, при прошивке скетчей).
« Последнее редактирование: 30 Апрель, 2015, 14:38:55 pm от ilyxa »

Оффлайн avi@tor

  • Старейшина клуба
  • Сообщений: 1784
  • Z-Power
  • Город: Москва
« Ответ #6 : 30 Апрель, 2015, 16:26:53 pm »
Аха! Вон они какие, сеРверные олени!
Это очень-очень ценная информация. Была такая фигня на ранних прошивках PX4, там надо было в бутлоадер выставить плату, чтобы прошивку залить. Какраз резетом делалось.
Сейчас поэкспериментирую.
In a sky full of people, only some want to fly isn't that crazy?

Оффлайн avi@tor

  • Старейшина клуба
  • Сообщений: 1784
  • Z-Power
  • Город: Москва
« Ответ #7 : 30 Апрель, 2015, 17:16:15 pm »
Илюх, огромное тебе человеческое спасибо :)
Перешил ОСД-шку методом "прецензионного ресета".
Пока ещё в воздухе не тестировал, но все данные записались, а большего от неё пока не требуется.
In a sky full of people, only some want to fly isn't that crazy?

Оффлайн ilyxa

  • Старейшина клуба
  • Сообщений: 4645
  • Foto & RC Hobby
  • Город: Rostov-na-Donu
« Ответ #8 : 30 Апрель, 2015, 18:33:07 pm »
Та не за шо :) Хороших полетов :)

Оффлайн AndRay

  • Старейшина клуба
  • Сообщений: 3574
    • Андрей
  • Город: Свято-Питер
« Ответ #9 : 30 Апрель, 2015, 23:24:49 pm »
вот она
не эта, а на которой USB компорт... Это то понятно, 328ая атмега обычная, шьется методом Ильи (мне было лень, я на 3 доллара купил несколько правильно разведенных UARTов)

Оффлайн avi@tor

  • Старейшина клуба
  • Сообщений: 1784
  • Z-Power
  • Город: Москва
« Ответ #10 : 01 Май, 2015, 13:33:36 pm »
Она ничего не даст, обычный чип с программируемой логикой. Там как и в ардуине все самое интересное внутри происходит.
In a sky full of people, only some want to fly isn't that crazy?