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

 
 
> AVR + RS485
*Smarty*
сообщение Jan 26 2006, 07:09
Сообщение #1





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



Кто-нибудь подключал RS485 к USART AVR-а? Я использую MAX1480, линии RX иTX к USART, а переключение прием/передача просто свободной ногой... но что-то не катит...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
*Smarty*
сообщение Jan 26 2006, 08:38
Сообщение #2





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



в компе стоит карта, с ней работаешь как с COM, а на выходе RS485
Go to the top of the page
 
+Quote Post
defunct
сообщение Jan 26 2006, 09:49
Сообщение #3


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(*Smarty* @ Jan 26 2006, 10:38) *
в компе стоит карта, с ней работаешь как с COM, а на выходе RS485


при запихивании очередного байта в UDR - взводим управляющий пин, по TX int - сбрасываем.
на max'е соединить пины notRE и DE.
Go to the top of the page
 
+Quote Post
andrvisht
сообщение Jan 26 2006, 09:51
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 298
Регистрация: 29-08-05
Пользователь №: 8 064



Цитата(*Smarty* @ Jan 26 2006, 11:56) *
/* Initialize UART */
void InitUART(void)// unsigned char baudrate )
{
UBRR0L = 64; //set baud rate lo
UBRR0H = 0x00; //set baud rate hi
UCSR0A = 0x00;
UCSR0B = 0b00001000;
}

Судя по порту E речь идет об m128
тогда проинициализируй UCSR0C там по умолчанию 5 битная вроде стоит.
Еще желательно переде передачей делать паузу, для устаканивания, иначе могут быть ошибки, ведь вашему компу надо засинхриться.
Вы в CV вроде пишите, или ICC.
Вот для IAR
Код
void USART_Init(void)
{
  UCSR0A = (_U2X<<U2X0); // Doble Speed, Multi-Processor Communication Mode Disable
  UCSR0B = 0x00;  // Rx, Tx, Data Register Empty Interrupts Disable, Rx, Tx Disabled, 8 bit
  UCSR0C = (1<<UCSZ01)|(1<<UCSZ00); // Asynchronous Operation, Parity Mode Disabled, 1 Stop, 8 bit
  __out_word(UBRR0,_UBRR);
  LED_Conn_Dir = 1;
  Tx_Rx_485_Dir = 1;
  RxData(MAX_BYTE_RX,RxFirst); // Инициализация на прием
}
Go to the top of the page
 
+Quote Post



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

 


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


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