w7500 SPI 통신 질문입니다.
MCU & Boards
No replies yet. Be the first to reply.
Join the discussion.
MCU & Boards
No replies yet. Be the first to reply.
Join the discussion.
Share projects and connect with makers.
Joined before the site update? first.
New to WIZnet Makers?
We sent a verification link to your address. Open it to activate your account, then log in.
Accounts from this email provider are reviewed by an administrator after verification. Approval usually takes one business day.
Already have an account?
Enter your email address. If it belongs to an account, we'll send a link to set a new password. Members who joined before the site update use this to set their password.
If an account uses that address, we sent a link to set a new password. The link works once and expires in 30 minutes.
Know your password?
Need an account?
RE: w7500 SPI 통신 질문입니다.
by justinkim ·
안녕하세요
SSP1을 사용하고자 하시면 처음 셋팅을 하셔야하는 것이
아래와 같이 StructInit을 해주시고
SSP_StructInit(&SSP1_InitStructure);
SSP1_InitStructure.SSP_SerialClockRate = 0x00;
SSP1_InitStructure.SSP_FrameFormat = SSP_FrameFormat_MO;
SSP1_InitStructure.SSP_CPHA = SSP_CPHA_1Edge;
SSP1_InitStructure.SSP_CPOL = SSP_CPOL_Low;
SSP1_InitStructure.SSP_DataSize = SSP_DataSize_8b;
SSP1_InitStructure.SSP_SOD = SSP_SOD_RESET;
SSP1_InitStructure.SSP_Mode = SSP_Mode_Master;
SSP1_InitStructure.SSP_NSS = SSP_NSS_Hard;
SSP1_InitStructure.SSP_LBM = SSP_LBM_RESET;
SSP1_InitStructure.SSP_SSE = SSP_SSE_SET;
SSP1_InitStructure.SSP_BaudRatePrescaler = SSP_BaudRatePrescaler_2;
아래와 같이 Struct를 이용해 SSP를 Init해주시면 됩니다.
SSP_Init(SSP1,&SSP1_InitStructure);
default pin을 사용 할 시에는 위의 작업만 해주시면 사용이 가능하구요
2nd function이나 3rd Function의 SSP를 사용하고자 하시면 추가적으로 PAD_AFConfig함수를 이용해 해당 pin의 Function을 변경해주시면 됩니다.
ex) PAD_AFConfig(PAD_PA,GPIO_Pin_14 , PAD_AF2); // PA_14핀을 MOSI1(3rd function)으로 PAD_AFConfig
MOSI/MISO/SCLK/SSEL pin은 Master나 Slave 관계없이 사용하시면됩니다.
해당 핀을 연결하시고 SSP_SendData 함수를 이용해 Data를 보낼 수 있고 SSP_ReceiveData함수를 이용해 Data를 받을 수 있습니다.
자세한 정보는 wizwiki.net을 참조해주시기 바랍니다.
추가 질문 있으면 질문 해주시구요 ^^
감사합니다.
RE: w7500 SPI 통신 질문입니다.
by WONHEELEE ·
빠른답변 너무 감사드립니다
그렇다면 W7500 에서는 SPI를 사용하는 개념이, SSP0/SSP1 을 enable 시키는 방법으로 사용하는 거라고 말씀하셨는데
enable 시키고 (SD예제에서) SD_Init 처럼
SSP_StructInit(&SSP1_InitStructure);
SSP1_InitStructure.SSP_SerialClockRate = 0x00;
SSP1_InitStructure.SSP_FrameFormat = SSP_FrameFormat_MO;
SSP1_InitStructure.SSP_CPHA = SSP_CPHA_2Edge;//SSP_CPHA_1Edge;
SSP1_InitStructure.SSP_CPOL = SSP_CPOL_High;//SSP_CPOL_Low;
SSP1_InitStructure.SSP_DataSize = SSP_DataSize_8b;
SSP1_InitStructure.SSP_SOD = SSP_SOD_RESET;
SSP1_InitStructure.SSP_Mode = SSP_Mode_Master;
SSP1_InitStructure.SSP_NSS = SSP_NSS_Hard;
SSP1_InitStructure.SSP_LBM = SSP_LBM_RESET;
SSP1_InitStructure.SSP_SSE = SSP_SSE_SET;
SSP1_InitStructure.SSP_BaudRatePrescaler = SSP_BaudRatePrescaler_254;
SSP_Init(SSP1,&SSP1_InitStructure);
이렇게 setting 하고 enable 시키면 통신을 위한 준비는 끝이난건가요 ?
그리고 이 설정만으로 MOSI/MISO/SCLK/SSEL 이게 설정이 된건가요 ? (default pin을 사용해도 무관하기에 PAD_AFConfig는 안해도 될것같습니다.)
그리고 제가 하고자 하는게 MBI5025 라는 IC에 16bit data를 보내고 싶은데,
W7500을 SSP0(임의 설정)로 master 로 설정하고 data를 보내기만 하면 되나요 ?
I2C 에서는 slave의 주소나 slave 에대한 정보를 따로 셋팅해주어야 하잖아요 !
W7500 SPI는 그냥 일방적으로 보내기만 하면 되는건가요 ~ ?
RE: w7500 SPI 통신 질문입니다.
by justinkim ·
SPI통신은 Master가 CS신호로 Slave를 선택하기 때문에 CS핀을 연결하셔서 1->0으로 떨어뜨려 주셔야합니다~
그렇게되면 해당 Slave가 선택되었다고 생각해 통신을 하게됩니다.
감사합니다.