Embedded Systems PDF

Document Details

CuteWatermelonTourmaline

Uploaded by CuteWatermelonTourmaline

Kangwon National University

Tags

embedded systems electronics programming engineering

Summary

This document provides a lecture or presentation on embedded systems, focusing on the topics of potentiometers and CDS. The content covers fundamental concepts and demonstrates code examples used for SPI communication. It is suitable for undergraduate-level electronics or engineering students.

Full Transcript

임베디드 시스템 Embedded Systems Potentiometer | CDS SPI (1/2) SPI(Serial Peripheral Interface) 시리얼 통신의 일종으로 주변 기기와의 데이터 교환을 위한 방식 전이중 통신이며 동기식 방식 I2C 방식보다는 빠르나 마스터 장치는 하나만 사용할 수 있다. SCLK(SCL): Clock 신호를 발생시키는 핀 M...

임베디드 시스템 Embedded Systems Potentiometer | CDS SPI (1/2) SPI(Serial Peripheral Interface) 시리얼 통신의 일종으로 주변 기기와의 데이터 교환을 위한 방식 전이중 통신이며 동기식 방식 I2C 방식보다는 빠르나 마스터 장치는 하나만 사용할 수 있다. SCLK(SCL): Clock 신호를 발생시키는 핀 MOSI(Master Output Slave Input): Master -> Slave MISO(Master Input Slave Output): Slave -> Master SS(Slave Select): Slave를 선택하기 위한 핀 I2C에서 사용하는 slave address를 사용하지 않음 SPI (2/2) SPI 통신 원리 Potentiometer(1/4) ADC(Analog-to-Digital Converter) 연속적인 값을 가지는 아날로그 신호를 디지털 신호로 변환하는 장치 다음과 같은 절차를 통해 변환된다. 표본화(Sampling) 아날로그 입력 시 일정 시간 간격으로 표본을 추출한 것 일정 시간 간격이 짧을수록 아날로그 입력 신호에 근접한 모양의 표본 추출 가능 단위 : SPS (Sample Per Second / Sampling Rate) 양자화(Quantization) 시간에 따른 신호의 세기를 이산화 시켜 표시하는 것 이산화 값의 범위가 클수록 정밀도가 높으며 이것을 해상도(Resolution)이라 한다. 8bit ( 0~ 255), 10bit ( 0 ~ 1023 ) 부호화(Coding) 표본화 된 데이터를 디지털 값으로 맵핑(mapping)하여 사용하는 것 Potentiometer(2/4) MCP3008 IC 아날로그 데이터를 SPI방식으로 입력 받는 집적회로 Potentiometer(3/4) 가변저항(Potentiometer) 전자회로의 저항 값을 정해진 범위 내에서 임의로 바꿀 수 있는 저항 Potentiometer(4/4) #include #include #include int spiSetup(void){ #include if( wiringPiSPISetup (SPI_CE_CHANNEL, SPI_SPEED) == -1 ){ #include fprintf (stderr, "wiringPiSPISetup Failed ! ERROR : %s\n", #define CHAN_CONFIG_SINGLE 8 //- 싱글 채널 설정 값 strerror (errno)); #define SPI_SPEED 1000000 //- 1MHz return 1; #define SPI_CE_CHANNEL 1 //- SPI와 연결된 CE 채널 } #define SPI_ADC_POTEN_CHANNEL 1 //- Potentionmeter 연결 채널 } #define CS_MCP3208 11 //- MCP3208 연결 핀 //- 채널 1번에서 측정된 ADC센서 읽어오기 ---------------------------- int spiSetup(void); ---------------- int readAnalogData(int adcChannel); int readAnalogData(int adcChannel){ int main(void){ int adcValue = 0; if( wiringPiSetup() == -1){ unsigned char buffer = {0}; printf("Setup Fail ~!!"); //- MCP3008의 8개 채널 중 하나인지 체크 return -1; if(adcChannel7) return -1; } //- SPI 통신 버퍼 설정 //- SPI통신 초기화 buffer = 0x01; spiSetup(); buffer = (CHAN_CONFIG_SINGLE+adcChannel)

Use Quizgecko on...
Browser
Browser