реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Bluetooth, Все что с ним связано.
Stanislav_S
сообщение May 5 2007, 10:59
Сообщение #1


извечный пессимист
*****

Группа: Свой
Сообщений: 1 113
Регистрация: 9-10-06
Из: Днепропетровск
Пользователь №: 21 125



Собственно интересует, встраивал ли кто в свои модули данный интерфейс. Какие впечатления, какие подводные камни? На какое железо стоит ориентироваться ( в плане доставабельности, глючности и и т д...), в общем хотелось бы услышать личные впечатления smile.gif


--------------------
Slaves are those of this world
Given freedom to lay chains upon The Master
The wolf is no longer free
Release the chains and come for me
Go to the top of the page
 
+Quote Post
globalist
сообщение May 6 2007, 18:15
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 107
Регистрация: 7-02-06
Из: Moscow
Пользователь №: 14 086



Цитата(Stanislav_S @ May 5 2007, 14:59) *
Собственно интересует, встраивал ли кто в свои модули данный интерфейс. Какие впечатления, какие подводные камни? На какое железо стоит ориентироваться ( в плане доставабельности, глючности и и т д...), в общем хотелось бы услышать личные впечатления smile.gif


Посмотрите здесь:
Подфорум Wireless/Optic

Просто не хочется плодить новые ветки к тому что уже есть.
Go to the top of the page
 
+Quote Post
Stanislav_S
сообщение May 7 2007, 07:22
Сообщение #3


извечный пессимист
*****

Группа: Свой
Сообщений: 1 113
Регистрация: 9-10-06
Из: Днепропетровск
Пользователь №: 21 125



Цитата(globalist @ May 6 2007, 23:15) *
Посмотрите здесь:
Подфорум Wireless/Optic

Просто не хочется плодить новые ветки к тому что уже есть.

Ага понятно, спасибо.


--------------------
Slaves are those of this world
Given freedom to lay chains upon The Master
The wolf is no longer free
Release the chains and come for me
Go to the top of the page
 
+Quote Post
Xenia
сообщение Aug 9 2014, 18:31
Сообщение #4


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Подскажите, кто твердо помнит, какие уровни надо подать на линии "рукопожатия", чтобы в дальнейшем модуль BlueTooth не отказывался общаться с МК по USART в обе стороны. При этом МК в рукопожатии не нуждается, а модуль BlueTooth этого требует.

Известно, что линии RXD и TXD уже запаяны крест на накрест (RXD модуля с TXD МК, а TXD модуля с RXD МК), и потому к ним вопросов нет. А вопрос возникает в отношении остальных линий (DTR, RTS, CTS, DSR) модуля BlueTooth, которые присоединены к обычному порту МК (CTS напрямую, а остальные через резисторы 220 ом).

Код
Модуль                    Микроконтроллер:
BlueTooth:
Reset ------- 220 --------- PORT PIN0
TXD --------- 220 --------- USART RXD (PIN2)
RXD ----------------------- USART TXD (PIN3)                      
DTR --------- 220 --------- PORT PIN4
RTS --------- 220 --------- PORT PIN5
CTS ----------------------- PORT PIN6
DSR --------- 220 --------- PORT PIN7
(пины считаются от нуля: PIN0-PIN7)

Вопрос:
1. Какие пины порта следует программировать на ввод, а какие на вывод?
2. Какие уровни (высокие или низкие) следует вывести на этот порт, чтобы модуль почувствовал себя в связке и не молчал в ответ на обращения к нему?

Просьба: Ответить без умстовований на тему расшифровки аббревиатур и использования терминов "активных и пассивных линий". Таких умствований в интернете полным-полно, но все дружно помалкивают по поводу того, высокий уровень или низкий следует на них подавать. И совсем был бы кайф, если бы кто-то без рассуждений назвал две цифры (вместо вопросительных знаков) для этого случая:
PORT.DIR = 0x?9;
PORT.OUT = 0x?1;
отдавая себе отчет в том, что ошибка может стоить мне порчи как МК, так и BT-модуля (на линии CTS нет ограничивающего ток резистора).

Принципальную схему BT-модуля прилагаю, только она вряд ли может оказаться здесь полезной.
http://77.72.19.18/Temp/MOD-BT-schematic.png
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Aug 10 2014, 09:27
Сообщение #5


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Код
#define BTPORT PORTA
#define BTPORT_DDR DDRA

#define _BV(n) (1<<n)
uint8_t BTport_dir = _BV(PIN0)//Rst
            | _BV(PIN3)   //myTxD->RxD
            | _BV(PIN6)   // myRTS->CTS
            | _BV(PIN4); // myDTR->DTR

uint8_t BTport_ini = _BV(PIN6) | _BV(PIN4); // rst=0; txd/rxd=alt.driven; myRTS=off; myDTR=off

BTPORT = BTport_ini;
BTPORT_DDR = BTport_dir;


Так, что ли?
Это если путаницы нету в реф.доках, они такое полюбляют...

Сообщение отредактировал _Pasha - Aug 10 2014, 09:28
Go to the top of the page
 
+Quote Post
Xenia
сообщение Aug 10 2014, 16:39
Сообщение #6


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(_Pasha @ Aug 10 2014, 13:27) *
[code]
| _BV(PIN4); // myDTR->DTR
Так, что ли?
Это если путаницы нету в реф.доках, они такое полюбляют...


Источник не вызывает доверия, т.к. соединение
myDTR->DTR
явно ошибочное - одноименные линии между контроллером и модулем не соединяются никогда!

В норме DTR - выходная линия контроллера, которая должна приниматься модулем на контакт DSR.

По общим соображениям (стандарт RS-232), у контроллера на выход должны быть направлены линии TXD, RTS, DTR, а со стороны модуля им соответствуют RXD, CTS, DSR, соответственно.

Следующая несуразица:
uint8_t BTport_ini = _BV(PIN6) | _BV(PIN4); // rst=0; txd/rxd=alt.driven; myRTS=off; myDTR=off
- выдача низкого уровеня на Reset.
Этого в принципе делать нельзя, т.к. такие действия ставят внутренний контроллер модуля в стояние сброса:
Цитата: "Device Reset. This exit mode is selected by either using the RESET_N line (reset active low)"
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Aug 11 2014, 14:50
Сообщение #7


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(Xenia @ Aug 10 2014, 19:39) *
Этого в принципе делать нельзя, т.к. такие действия ставят внутренний контроллер модуля в стояние сброса:
Цитата: "Device Reset. This exit mode is selected by either using the RESET_N line (reset active low)"

С последующей установкой в "1", а как иначе? Все равно при инициализации ставится сразу на сброс а затем после паузы устанавливается в "1".
Про DTR вроде все правильно. Пусть еще кто-то скажет/рассудит.

Сообщение отредактировал _Pasha - Aug 11 2014, 14:52
Go to the top of the page
 
+Quote Post
Xenia
сообщение Aug 11 2014, 19:14
Сообщение #8


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(_Pasha @ Aug 11 2014, 18:50) *
С последующей установкой в "1", а как иначе? Все равно при инициализации ставится сразу на сброс а затем после паузы устанавливается в "1".


А вот и нет! В единичку однако не ставится.
Здесь (PIN0 упомянут):
Код
uint8_t BTport_dir = _BV(PIN0)    // Rst
            | _BV(PIN3)   // myTxD->RxD
            | _BV(PIN6)   // myRTS->CTS
            | _BV(PIN4); // myDTR->DTR
BTPORT_DDR = BTport_dir;
выход на Reset окрывают, но при выдаче значения единичку туда не записывают (PIN0 не упомянут):
Код
uint8_t BTport_ini = _BV(PIN6) | _BV(PIN4); // rst=0; txd/rxd=alt.driven; myRTS=off; myDTR=off
BTPORT = BTport_ini;
При таком програмировании порта на линию RST поступит низкий уровень, переводящий МК модуля в состояние непрерывного сброса.

Да и вообще, на мой взгляд, все биты порта в этом примере записаны шиворот на выворот, т.к. там не только модуль на ресет ставят, но "off" вроде бы должен соответствовать высокому уровню, а не низкому. По крайней мере, я читала, что у UART'а высокий уровень соотвествует отрицательному напряжению в стандарте RS-232, а низкий - положительному напряжению в стандарте RS-232. Т.е. и тут полярности перепутаны. Из-за чего картина в целом выглядит удручающей своей запутанностью.

У меня даже возникло побуждение запрограммировать полный перебор всех возможных вариантов (кроме линий TX и RX, с которыми всё ясно) в режиме по 200 мс на каждый вариант. За 200 мс порты, глядишь, не сгорят, а модуль должен успеть ответить на запрос (согласно инструкции, он отвечает по-человечески "OK", когда выполняет команду, или отвечает "ERROR" с номером ошибки. В любом случае за это время должен успеть подать признаки жизни).
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Aug 12 2014, 04:36
Сообщение #9


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Ксения, такое впечатление, что мы на разных планетах. laughing.gif
Ну да ладно, не впервой.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th July 2025 - 03:08
Рейтинг@Mail.ru


Страница сгенерированна за 0.01888 секунд с 7
ELECTRONIX ©2004-2016