Без описания |
Поиск в теме | Версия для печати |
rgsv |
Отправлено: 11 Декабря, 2012 - 13:04:25
|
Капитан
Сообщений всего: 52
Дата рег-ции: Сент. 2012
|
В электронике пока очень слаб, но кое что начинаю понимать.
Получил модули.
Не смотря на то что пишут что Rx Tx вроде как толерантны к 5в. Решил всё таки пустить сигнал через преобразователь уровней.
Вот схема:
Так как в протеусе не нашёл преобразователя 78l33( а как сделать не знаю).
При моделировании использовал входное напряжение 9в вместо 5в и 7805 вместо 78l33.
В девайсе стоит 78l33 и вход соответственно 5в.
При эмуляции в протеусе , всё работает.
Сделал плату фоторезистом одностороннюю(чтобы не на лажать с дорогами ). Детали точно на своих местах 10 раз проверил.
Что имею. Даю напряжение. Диод статуса мигает. Девайс видится компом.
Подключение происходит , при подключении загорается диод связи. При передаче байта, диод статуса помаргивает. Всё Вроде здорово.
Теперь беда.
Подключаю Rx И Tx к мк.
CODE:
void USART_Init(void)
{
memset(usart_buff,0,USART_SIZE);
usart_cnt =0;
UBRRH = 0;
UBRRL = 25;
UCSRB = (1<<RXCIE)|(1<<RXEN)|(1<<TXEN);
UCSRC = (1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);
sei();
}
void USART_SendChar(unsigned char sym)
{
while(!(UCSRA & (1<<UDRE)));
UDR = sym;
}
void USART_SendString(unsigned char* str )
{
size_t l = strlen( (char*)str );
for (size_t i = 0; i < l; i++ )
USART_SendChar( str[i] );
}
int dbg=0;
ISR( USART_RXC_vect )
{
unsigned char ch = UDR;
LcdGotoXYFont(dbg,1);
dbg++;
LcdChr(FONT_1X,ch);
}
В общем понятно, всё что получаем в прерывании , выводим на LCD.
Эксперимент 1.
При передаче байта с компа , как я уже говорил, мигает диод. Но на экран выводится почему то 4 байта мусора , причём того что передавали , среди них нет. Соответственно если передать два байта, выводится 8 байт мусора.
Эксперимент 2. Отключаю HC-05 , закорачиваю Rx и Tx контроллера через резистор.
Шлю строку с контроллера USART_SendString("AT/r/n " ) .
Получаю соответствующий вывод на экране, то есть с usart на стороне контроллера всё в порядке.
Эксперимент 3.
Подключаю HC-05
Перевожу HC-05 , в режим AT. Установив ногу контроллера в 1 , к которой подключено управление. На соответствующем выводе HC-05 3,29 вольта(проверил тестером). Светодиод отреагировал равномерным миганием.
Подаю
USART_SendString("AT/r/n" ) .
А в ответ тишина. Нет реакции вообще на AT команды.
В общем не знаю что делать . Корифеи , прорвете пожалуйста , может всё таки со схемой что не так или с кодом. |
|
|
rgsv |
Отправлено: 11 Декабря, 2012 - 15:32:51
|
Капитан
Сообщений всего: 52
Дата рег-ции: Сент. 2012
|
elmot пишет:Ставь 9600. Мало что у кетайцев написано.
Я с обеими работал.
Спасибо! Обязательно попробую!
Кстати как плата , нет серьёзных замечаний? Это мой первый опыт,
Протеус - фоторезист- травление - смд пайка.
До этого паял только выводные элементы на макетной плате.
Сам вижу что , защитный диод надо было поставить , забыл. Дорожки сначала должны были быть толщиной как ободок, но та версия не удачно засветиласть или протравилась , в обще на дорожках получились дыры. Пришлось ширину увеличить.
А как с согласованием уровней ? Вроде путём всё?(Отредактировано автором: 11 Декабря, 2012 - 15:39:33) |
|
|
|
Поиск в теме | Версия для печати |
Страниц (2): [1] 2 » |
« Электронная мастерская » |
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
|
|
|
|
|