WIZnet Developer Forum

W7500 사용자입니다 uart문의드립니다

현재 w7500 사용중이며 mbed 컴파일러 사용중입니다

uart2(U_TXD2,U_RXD2)를 사용하고 싶은데 엠베드에서는 지원을 안하는 것인가요?

다른 부분은 모두 사용가능하며 keil 컴파일러에 올라온 예제는 사용가능합니다

#include “mbed.h”

Serial device(PC_10, PC_11); // tx, rx

int main() {
device.baud(19200);
device.printf(“Hello World\n”);
}

잘못된 부분이 있는건가 궁금합니다

그리고 rx인터럽트 관련된 mbed 예제도 궁금합니다

현재 mbed에서#include "W7500x_uart.h"을 인클루드하여 uart를 사용하면 사용은 가능합니다

그런데 tcp/ip와 spi 통신과 함께 사용하면 rx 인터럽트가 1~6의 데이터를 날렸을때 마지막에 한번만 인터럽트가 발생합니다

문제가 무엇인지 해결 부탁드립니다

			int pi=0;
			while((UART2->STATE & S_UART_INT_RX) !=0)
			{
				uart_bur[pi]=(S_UartGetc());
				pi++;
				
			}
			
			for(int k=0;k<pi;k++)
			{
				S_UartPutc(uart_bur[k]);
				
			}

안녕하세요

uart2 를 사용하고 싶은데 엠베드에서 지원이 안된다는 말씀은

USB 를 통해 uart 통신을 했을때 uart2 로는 시리얼터미널창에 아무런 반응이 없다는 말씀이신가요?

만약 그렇다면 밑에 스케메틱을 참고해주세요

http://wizwiki.net/wiki/lib/exe/fetch.php?media=products:wizwiki_w7500:wizwiki_w7500_v1.1.pdf

스케메틱을 보시면 CMSIS-DAP 과 W7500 의 uart1 이 연결되어 있습니다.

UART1로는 USB 를 통해 tx/rx 가 가능하지만 다른 uart 를 사용하시면 보드에서 직접 와이어링하셔서 확인하셔야 합니다.

그리고 tcp 와 spi 를 함께 사용했을때 rx 인터럽드가 마지막에만 발생하신다고 하셨는데

부분만 봐서는 확실히 답변드리기가 힘들어서 코드 전체를 볼 수 있을까요??

감사합니다.

지금 저희가 w7500으로 설계한 보드를 이용하여 사용중이고요.
Suart를 사용하려고 하는 것입니다.
연결도 이상없이 잘되어 있는게 keil 예제를 돌려보면 이상없이 232통신이 잘됩니다만
mbed에서는 핀넘버를 바꿔줘도 동작을 하지 않습니다.

인터럽트는 데이터를 hex 0x11,0x22,0x33,0x44,0x55,0x66를 보냈을 경우에

while((UART2->STATE & S_UART_INT_RX) !=0)
{
uart_bur[pi]=(S_UartGetc());
pi++;
S_UartPutc(pi);
}

for(int k=0;k<pi;k++)
{
S_UartPutc(uart_bur[k]);

}
출력이 0x11,0x22,0x33,0x44,0x55,0x66이 나와야 하나 SPI와TCP를 같이 사용하면 출력이 0x66 즉 마지막 값만 나옵니다

SPI와 TCP를 제거한후 하면 모두 읽어 들이기는하나 인터럽트가 0x11일때 0x22일때 0x33일때 그리고 0x44,0x55,0x66은 한번에 읽어 드려 집니다

답변 부탁드립니다

안녕하세요

mbed code 버전을 확인해 주시기 바랍니다.

예전 버전의 경우 UART2를 지원하지 않습니다.

최신버전의 mbed code를 사용해보세요.

인터럽트 문제의 경우 SPI와 TCP/IP를 같이사용하면 나타나는 증상이라고 하셨는데

어떤 예제를 사용하셨는지 알려주시기 바랍니다.

감사합니다 :slight_smile:

Copyright © 2017 WIZnet Co., Ltd. All Rights Reserved.