BASIC4MCU | 통신 | 485통신 | 5. 1바이트 송신 테스트
페이지 정보
작성자 키트 작성일2017-08-31 17:49 조회2,634회 댓글0건본문
K128LCD 키트에 있는 485 포트를 사용해서 실험 했습니다.
//
#include
#include
//
#define TX_EN PORTB.6
//
interrupt [USART1_RXC] void usart1_rx_isr(void){
char ch;
ch=UDR1;
}
//
//
void TX1_CH(char ch){ TX_EN=1; UDR1=ch; while(!(UCSR1A&0x40)); UCSR1A|=0x40; TX_EN=0; }
//
void main(void){
char i=0;
DDRB.6=1; //TX_EN
UCSR1B=0x98; UBRR1L=8; // 115200
SREG=0x80;
while(1){
TX1_CH(i++);
delay_us(87);
}
}//
일부러 고속인 115200 보레이트로 구동했습니다.
A상(6번핀)의 신호 파형
B상(7번핀)의 신호 파형
2번 & 3번핀(TX_E)의 파형
10K 풀다운 저항인데도 거의 0V까지 내려갑니다.
K128LCD 키트에서 사용한 75176B는 앞장에서 설명한 IC와는 다른 제조사 입니다.
이 한가지 특성만 보고서 좋다 나쁘다라고 말 할 수 없겠죠
중요한 것은 "제조사마다 특성이 다를 수 있다" 라는 점입니다.
//
RS-232와 거의 유사한 코드이고 차이점은 TX-E 신호 처리입니다.
void TX1_CH(char ch){ TX_EN=1; UDR1=ch; while(!(UCSR1A&0x40)); UCSR1A|=0x40; TX_EN=0; }
RXCn TXCn UDREn FEn DORn UPEn U2Xn MPCMn UCSRnA
• Bit 6 – TXCn: USART Transmit Complete
This flag bit is set when the entire frame in the Transmit Shift Register has been shifted out and
there are no new data currently present in the transmit buffer (UDRn). The TXCn flag bit is automatically
cleared when a transmit complete interrupt is executed, or it can be cleared by writing
a one to its bit location. The TXCn flag can generate a Transmit Complete interrupt (see description
of the TXCIEn bit).
스톱비트까지 모두 전송되면 TXCn 비트가 set 됩니다.
반드시 UCSR1A|=0x40; TXCn 비트 크리어 시켜줘야 합니다.
수고하셨습니다. ^^
댓글 0
조회수 2,634등록된 댓글이 없습니다.