작성자 없음
작성자 정보가 삭제된 글입니다.
해결된 질문
작성
·
109
0
void send_port(uint8_t X, uint8_t port)
{
send(X);
send(port);
HAL_GPIO_WritePin(FND_RCLK_GPIO_Port, FND_RCLK_Pin, LOW);
HAL_GPIO_WritePin(FND_RCLK_GPIO_Port, FND_RCLK_Pin, HIGH);
}
이렇게 코드를 보면 X, port 를 send하고
RCK 라이징 엣지를 만들어서 최종적으로 출력 하는구나
를 알 수 있는데
만약 이런 코드 없이 데이터시트를 보고 코드를 만든다고 할 때
X와 port를 함께 send하는것,
X, port 순으로 send 해야 한다는 것,
위치(port)는 0b0001, 0b0010, 0b0100, 0b1000
으로 설정한다는 것
들은 어떻게 알 수 있나요?
데이터시트를 통해서 이런 정보까지는 얻을 수 없는 것 같아서요..
답변 2
0
일단 spi 통신이나 이런 개념에 대해서 알고 있어야 하고요..
위에 port에 해당하는 신호,
아래가 X에 해당하는 신호입니다.
이건 그냥 정말 심플하게 논리적으로 가만히 생각해보면 답이나와요.
port에 신호가 가면 그때 실제로 불이 들어 옵니다.
x에 신호를 주면 port신호를 줄 때 어떤 지점의 불을 킬지 설정을 하는 것입니다.
그리니깐, x를 먼저 보내서 어디에 불을 킬지 정하고,
port의 신호를 줘야 설정된 대로 불이 들어 오겠죠.
근데 위에 회로도를 보면, x가 공통으로 연결이 되어 있어요.
그래서 어쩔수 없이 순간적으로 껏다 켰다 하는 겁니다.
그리고, 위에 x와 port에 신호를 주려면 각각 gpio를 1:1로 연결을 해야 합니다.
그럼 진짜 많은 gpio선이 필요하니깐
그래서 그것을 대신하는 쉬프트 레지스터를 쓰는 것입니다.
그러면 gpio핀을 훨씬 덜 써도 되는 거죠.
어째든 fnd에 각각의 핀은 gpio든, 쉬프트레지스터의 핀이든, 1:1로 연결은 되어야해요.
그리고 쉬프트레지스터의 데이터 시트는 어떻게 해야 원하는 곳의 핀에 신호를 줄 수 있을까를 보기 위해서 보는 겁니다.
근데 그 방법이 SPI 통신인거예요.
제가 드린 이야기를 곰곰히 생각해보면 정말 단순한 원리라는 것을 알 수 있을 거예요.
0
안녕하세요, 인프런 AI 인턴입니다. gerhrtjr님.
질문하신 FND (7세그먼트 디스플레이) 제어와 관련된 정보를 데이터시트에서 어떻게 찾아내는지에 대한 답변을 드리겠습니다. 비슷한 주제에 대해 다뤘던 기존 질문과 답변이 몇 가지 있습니다.
이 질문에서는 GPIO를 직접 제어하고, 특정 주소 번지에서 동작이 달라지는 이유에 대해 다룹니다. GPIO 제어에 대한 기본 이해를 돕기 위해 참고하시기 좋습니다.
이 질문에서는 FND 제어 시 디버깅이 멈추는 문제와 관련된 내용을 다룹니다. FND와 관련된 문제 해결의 접근 방식을 이해하는 데 도움이 될 것입니다.
이 질문에서는 FND 제어 중 발생하는 다양한 에러와 문제 해결 방법에 대해 다룹니다. 특히, FND의 다중 디지트 제어에 대한 노하우를 얻을 수 있습니다.
마지막으로, 이 질문에서는 FND 제어 시 하드웨어 칩셋의 차이로 인해 발생하는 문제 및 해결 방법에 대해 자세히 설명하고 있습니다. 특정 칩셋의 데이터시트를 분석하고 문제를 해결한 과정이 질문자님의 궁금증을 해결하는 데 큰 도움이 될 것입니다.
이와 함께, 데이터시트를 통해 필요한 정보를 찾는 방법에 대해 간략히 설명드리면:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.