페이지

글목록

2016년 6월 3일 금요일

[PSOC] PSOC4 SPI 핀 <-> GPIO 핀

SPI 기능으로 설정된 핀을 잠시 GPIO 기능의 핀으로 바꿨다가 다시 SPI로 되돌리는 테스트를 했습니다.

이런 경우는 보통 드문데, 핀이 모자라서 하게 되었습니다.

SPI TopDesign 탭의 내용은 다음과 같습니다.




SPI -> GPIO 동작 방법은 다음과 같습니다.
1. SPI component STOP.
2. SPI 핀 모드를 GPIO 출력인 경우 Strong Drive 로 설정
3. SPI핀 기능을 GPIO 핀으로 변경
4. GPIO 기능 처럼 핀을 프로그램에서 사용.
    SPIFLASH_Stop();
    SPIFLASH_miso_m_SetDriveMode(SPIFLASH_miso_m_DM_STRONG);
    
    SPIFLASH_SET_HSIOM_SEL(*(reg32 *)SPIFLASH_miso_m__0__HSIOM, SPIFLASH_miso_m__0__HSIOM_MASK,
                                   SPIFLASH_miso_m__0__HSIOM_SHIFT, SPIFLASH_HSIOM_GPIO_SEL);

        SPIFLASH_miso_m_Write(1); CyDelayUs(1);
        SPIFLASH_miso_m_Write(0); CyDelayUs(1);
        SPIFLASH_miso_m_Write(1); CyDelayUs(1);

GPIO -> SPI 동작 방법은 다음과 같습니다.
1. SPI핀 기능을 GPIO 핀으로 변경
2. SPI component START.
    SPIFLASH_SET_HSIOM_SEL(*(reg32 *)SPIFLASH_miso_m__0__HSIOM, SPIFLASH_miso_m__0__HSIOM_MASK,
                                   SPIFLASH_miso_m__0__HSIOM_SHIFT, SPIFLASH_HSIOM_SPI_SEL);
    SPIFLASH_Start();

댓글 없음:

댓글 쓰기