인프런 커뮤니티 질문&답변

작성자 없음

작성자 정보가 삭제된 글입니다.

[임베디드 입문용] 임베디드 개발은 실제로 이렇게 해요.

FND제어 (실무 노하우) 3

FND send_port에 대하여..

해결된 질문

작성

·

64

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

ojtube5님의 프로필 이미지
ojtube5
지식공유자

일단 spi 통신이나 이런 개념에 대해서 알고 있어야 하고요..

image.png


위에 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세그먼트 디스플레이) 제어와 관련된 정보를 데이터시트에서 어떻게 찾아내는지에 대한 답변을 드리겠습니다. 비슷한 주제에 대해 다뤘던 기존 질문과 답변이 몇 가지 있습니다.

1. GPIO 라이브러리없이 LED ON/OFF하기-주소번지 다른이유?

이 질문에서는 GPIO를 직접 제어하고, 특정 주소 번지에서 동작이 달라지는 이유에 대해 다룹니다. GPIO 제어에 대한 기본 이해를 돕기 위해 참고하시기 좋습니다.

2. fnd 관련 질문 있습니다.

이 질문에서는 FND 제어 시 디버깅이 멈추는 문제와 관련된 내용을 다룹니다. FND와 관련된 문제 해결의 접근 방식을 이해하는 데 도움이 될 것입니다.

3. FND를 제어하자 3 실무 노하우

이 질문에서는 FND 제어 중 발생하는 다양한 에러와 문제 해결 방법에 대해 다룹니다. 특히, FND의 다중 디지트 제어에 대한 노하우를 얻을 수 있습니다.

4. FND digit2 digit4 등 사용시 정상적으로 출력되지 않는 문제 해결법

마지막으로, 이 질문에서는 FND 제어 시 하드웨어 칩셋의 차이로 인해 발생하는 문제 및 해결 방법에 대해 자세히 설명하고 있습니다. 특정 칩셋의 데이터시트를 분석하고 문제를 해결한 과정이 질문자님의 궁금증을 해결하는 데 큰 도움이 될 것입니다.


이와 함께, 데이터시트를 통해 필요한 정보를 찾는 방법에 대해 간략히 설명드리면:

  1. 셰프트 레지스터 데이터시트: FND에서 주로 사용하는 셰프트 레지스터 (예: 74HC595)의 데이터시트를 찾습니다. 여기서 제어 핀 (SCLK, RCLK, SER 등)과 동작 원리에 대해 이해합니다.
  2. 타이밍 다이어그램: 데이터시트에는 일반적으로 타이밍 다이어그램이 포함되어 있습니다. 이 다이어그램을 통해 신호의 순서와 타이밍을 파악할 수 있습니다.
  3. 기능 설명: 데이터시트에서는 각 핀의 기능, 초기값, 동작 조건 등에 대해 자세히 설명합니다. 이를 통해 어떤 신호가 어떤 역할을 하는지 파악할 수 있습니다.
  4. 예제 회로: 종종 데이터시트 말미에는 예제 회로 (Application Circuit)가 포함되어 있습니다. 이러한 회로를 참고하면 실전에서 어떻게 구성하고 제어해야 하는지를 이해하는데 도움이 됩니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기