WIZnet Developer Forum

[W7500P]ADC 설정시 High 설정

ADC 예제인 Illumination_RGBLED를 사용하여 테스트를 하고 있는데
ADC_Init(); 설정을 하면 PC15번 핀이 High로 올라갑니다.
ADC 핀중에 PC10, PC11을 UART로 사용하는 부분을 제외하고는 사용하고 있지 않습니다.

ADC를 사용하려면 다른 주의 사항이 있는지요?

안녕하세요

ADC예제에서 사용하고 계시는채널은 몇번채널인가요?
PC15번핀이 High된것은 어떻게 확인하신건지 문의드립니다.

안녕하세요.
0번채널입니다.
오실로스코프로 찍어본 상태입니다.
ADC 설정을 하지 않으면 전압 기준 10k, 10k를 달았을 때 3.3V의 중간인 약1.65V가 나오는데 ADC 설정을 하고 나면 ADC 핀쪽에서 3.3V의 출력이 나옵니다.(부품을 떼어내고 핀만 확인해도 동일 출력 - ADC_Init 설정하면 발생)
어떠한 때에 이러한 문제가 발생하는지요?

안녕하세요

ADC 0번채널이 PC15번 PIN입니다.
ADC init후 Analog값을 입력받기위해 전압이 바뀐것으로 추측됩니다만 이것이 문제가 되나요?
해당핀에 analog 센서를 달아 정상동작한다면 문제 없을것으로 보입니다.

안녕하세요.
측정만 된다면 전압이 바뀐거는 상관없겠지만 입력을 받는 PC15번 핀이 3.3V로 변해 있으니 들어오는 데이터가 모두 최대값인 4095가 됩니다. 때문에 전혀 유용한 데이터가 아니게 되는데 뭔가 제가 잘못했을 것 같은데 어느 부분이랑 연계가 되어 동작하는 지 알고 싶습니다.

혹시 해결되셨나요??
ADC Init이라고 하신부분은 저희 쪽 Reference code에는 사용하지 않고 있는데,
이부분이 GPIO Config함수를 사용한것일까요? 해당 핀을 ADC로 사용하시려면 GPIO pad 를 AF0으로 해주셔야 ADC를 사용할수 있게 됩니다.
아래의 그림은 ADC 예제중 ADC_Polling 에서 발췌한 부분입니다.

Find fileCopy path


감사합니다.
irina

안녕하세요.

W7500P 라이브러리에서 말씀주신 설정의 enum과 구조체가 없는데

    PAD_AFConfig(PAD_PC, GPIO_Pin_15, PAD_AF0); 

/* Configure Led pin as output */
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_15;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF;

GPIO_Init(GPIOC, &GPIO_InitStruct);	

이런식으로 설정하면 될까요?

typedef enum
{
GPIO_PuPd_UP = Px_PCR_PUPD_UP,
GPIO_PuPd_DOWN = Px_PCR_PUPD_DOWN,
GPIO_DS = Px_PCR_DS_HIGH,
GPIO_IE = Px_PCR_IE,
GPIO_SUMMIT = Px_PCR_CS_SUMMIT
}GPIOPad_TypeDef;

#define IS_GPIO_PUPU(PUPD) (((PUPD) == GPIO_PuPd_UP) || ((PUPD) == GPIO_PuPd_DOWN))

typedef struct
{
uint32_t GPIO_Pin;
GPIOMode_TypeDef GPIO_Mode;
GPIOPad_TypeDef GPIO_Pad;
}GPIO_InitTypeDef;