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

 
 
> Настройка USART
Rinin
сообщение Aug 3 2008, 13:18
Сообщение #1





Группа: Новичок
Сообщений: 11
Регистрация: 3-08-08
Пользователь №: 39 398



Пытаюсь передать через USART хоть один байт. С другой стороны ловлю их HyperTerminal'ом Пробовал принимать терминалом данные с GPS - работает нормально. Для простоты отключил внешний резонатор, сделал простенькую программку. С той стороны жду сигналов на скорости 1200, без проверки четности, 8 бит, один стоповый бит. В окне терминала пустота.

Соответственно вот код для AVR Studio
Код
#include <avr/io.h>
   #include <avr/delay.h>
   #define F_CPU 1000000UL  

void USART_Transmit (unsigned char data)
   {
     while ( !(UCSR0A & (1<<UDRE0)) )
      ;
     UDR0 = data;    
   }

void USART_Init (unsigned int baud)
   {
         UBRR0H = (unsigned char)(baud>>8);
     UBRR0L = (unsigned char)(baud);

     UCSR0B = (1<<RXEN0)|(1<<TXEN0);
     UCSR0C = (1<<UCSZ00)|(1<<UCSZ01);
   }


void Beep (unsigned int time)
   {
     PORTC = 0xff;
     _delay_ms(time);
     PORTC = 0x00;
     _delay_ms(time);
   }
  
int main(void)          
{
   DDRC = 0xff;
   PORTC = 0x00;
   USART_Init (51);
  
   while (1)    
   {  
     USART_Transmit ('1');
     Beep (100);
   }
}


Который день пытаюсь хоть что научить его отправлять или принимать - но безуспешно.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 7)
Ivan A-R
сообщение Aug 3 2008, 14:53
Сообщение #2


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

Группа: Участник
Сообщений: 92
Регистрация: 21-06-07
Из: Saint-Petersburg
Пользователь №: 28 607



Проверить есть ли сигнал на ноге контроллера. Если нет, то искать где накосячили с инициализацией (читать даташиту, ага). Если есть, то искать где накосячили в сопряжении с RS232 или со скоростью (опять читать даташиту, ага).
Go to the top of the page
 
+Quote Post
EmbedElektrik
сообщение Aug 3 2008, 15:17
Сообщение #3


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

Группа: Свой
Сообщений: 121
Регистрация: 30-07-08
Из: Тверь, Россия
Пользователь №: 39 321



Я бы сначала проверил фузы - правильно ли установлена частота - должна быть 1 МГц для твоей инициализации. На порте С то есть сигнал? На разъеме ком порта соедини 2и 3й контакты - тогда в терминале при наборе символов будет эхо - можно проверить кабель.
Go to the top of the page
 
+Quote Post
_Ivan_33
сообщение Aug 3 2008, 15:43
Сообщение #4


fpga designer
****

Группа: Свой
Сообщений: 613
Регистрация: 20-04-08
Из: Зеленоград
Пользователь №: 36 928



а без внешнего резонатора оно работать не будет!


--------------------
Go to the top of the page
 
+Quote Post
Rinin
сообщение Aug 3 2008, 15:48
Сообщение #5





Группа: Новичок
Сообщений: 11
Регистрация: 3-08-08
Пользователь №: 39 398



Я всё это время пытался что-то передавать несогласованными по уровню сигналами. Логично что на компе всегда было отсутствие питания. Спасибо, что указали на очевидную ошибку, а то я бы и дальше с кодом возился.

Без внешнего резонатора оно вполне работает. На выходе напряжение есть. А резонатор я потому и отключил чтоб с фьюзами не возиться.

Сообщение отредактировал Rinin - Aug 3 2008, 15:51
Go to the top of the page
 
+Quote Post
SysRq
сообщение Aug 3 2008, 17:01
Сообщение #6


Чайник, 1 литр
****

Группа: Свой
Сообщений: 655
Регистрация: 17-05-06
Из: Moscow
Пользователь №: 17 168



Вообще и в коде есть серьезная ошибка: функция _delay_ms (WinAVR ведь?) должна получать в качестве аргумента константу и только, иначе работать будет не верно. См. delay.h.
Go to the top of the page
 
+Quote Post
Rinin
сообщение Aug 3 2008, 17:49
Сообщение #7





Группа: Новичок
Сообщений: 11
Регистрация: 3-08-08
Пользователь №: 39 398



Использовал в _delay_ms переменную (которая действительно менялась), не помню насколько криво, но работало. Впрочем запомню, если будут с ней проблемы - пойму откуда.

Пока что цель - спаять таки перевод сигналов и прогнать по паре байт туда и обратно. Если кто-нибудь кинет в меня каким-нить доком по этому вопросу (согласованию уровней) - буду благодарен, хотя тут вроде информации и так хватает.

Сообщение отредактировал Rinin - Aug 3 2008, 17:55
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Aug 3 2008, 19:29
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Чтобы не заморачиваться с согласованием примените что-нибудь типа ADM207 или max232 или ft232rl (сразу на USB). Скачайте даташиты на данные микрухи - и схема включения у вас в руках.
Go to the top of the page
 
+Quote Post

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

 


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


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