본문 바로가기

임베디드 쌩초보 공부36

TI C2000 시리즈 DMA 6개의 DMA 채널이 존재하고 모두 독립적으로 configure하여 사용. 6개 채널중 5개는 우선순위가 동등한데, 채널1번만 우선순위를 높게 설정이 가능함 각 채널마다 DMA Transfer를 trigger하는 소스를 설정하게 돼있음. (ex. ADC 인터럽트 시그널) (혹은 GPIO로 부터 트리거 받을 수도 있음) 이러한 페리펄럴으로부터 트리거 받는 것 외에 SW적으로 트리거하는 것도 가능함 DMACHSRC 레지스터에서 트리거소스를 선택. 2023. 3. 18.
TI C2000 MCU 개발환경 개요 TI는 STM , 인피니언, NXP 같은 반도체회사이고 얘네가 만드는 수 많은 MCU 제품군중에 하나가 C2000 시리즈이다. C2000 시리즈에 속하는MCU도 종류가 굉장히 다양하다. 암튼 개발환경은 크게 3가지가 필요하다. 컴파일러 및 IDE = CCS(Code Composer Studio) TI 에서 제공하는 Sw 라이브러리들 (C2000Ware 라고 부른다.) SysConfig - MCU와 관련된 이런저런 셋팅을 GUI 로 셋팅하면 Code Gen 해준다. 생성된 Code는 주로 C2000ware에 구현되어있는 함수들을 사용한다. CCS, C2000Ware, Sysconfig 모두 TI 사 홈페이지에서 다운로드가 가능하다.※ 참고로 c2000ware 에서 제공되는 함수와 sysconfig 툴 사용.. 2023. 3. 17.
TI MCU C2000 시리즈 AURIX와 비교 TI 사의 32 bit mcu인 c2000 시리즈와 인피니언의 Aurix를 몇가지 관점에서 비교해보자. PWM 채널간 타이밍을 동기화 시켜야 하는 경우가 있는데 Aurix의 경우 pwm 채널마다 번호가 있는데 직전 채널이 직후 채널을 동기화 시키는 방식이다. 그래서 만약 채널 3개를 동기화한다면 atom ch0 ~ ch2 이런식으로 할당해서 써야함. 근데 c2000은 모든 채널간에 자유롭게 동기화가 가능하다. ex)채널 1 8 12 이렇게 무작위하게도 동기화 가능함 pwm 포트 핀. aurix의 경우 하나의 pwm 채널이 다수개의 mcu port pin과 연결이 가능해서 그 중에 하나 골라쓰는 방식인데 c2000은 그냥 아예 핀 하나에 고정이 돼있음. pwm으로 adc 트리거하기. aurix는 pwm 채.. 2023. 3. 14.
ADC 기능 개념 완벽 정리- 임베디드 기초 개요 ADC는 Analogue to Digital Converter의 약자이다. 아날로그 신호를 디지털로 변환 한다는 의미이다. 여기서 아날로그 신호는 전압을 의미하고, 이 전압의 크기를 측정해서 숫자로 바꿔주기 때문에 이것을 adc라고 한다. 간단히 말해서 전압을 측정해서 숫자로 보여주는 기능이 adc다. 어떤 신호의 전압을 측정하는 것인가? mcu에는 여러개의 핀이 달려있는데 이 중에서 아날로그 핀 또는 아날로그 채널 이라고 불리는 핀들이 있다. 이 핀으로 입력되는 전압이 몇 볼트인지 측정해서 숫자로 알려주는 기능이 adc 기능이다. 유의할 점은 mcu에 달려있는 모든 핀이 전부 adc conversion 가능하지 않고 정해진 핀들만 가능하다는 점이다. mcu마다 adc 측정이 가능한 핀의 갯수가 다.. 2022. 8. 4.
stm32. cube mx spi통신 MOSI MISO CS CLK spi transmit 할 때 spi 페리펄럴에 의해서 칩셀렉트핀을 컨트롤 할 수도 있고. 혹은 sw적으로 gpio핀 제어를 통해서 컨트롤 할 수도 있다. stm32에서는 하드웨어적인 칩셀렉트핀 설정을 NSS라 부른다. 2022. 1. 25.
STM32 pwm input측정하기 Tim (타이머)의 pwm input 모드를 사용한다. 원리는 이러하다. 1)타이머 내부의 카운트 레지스터가 지정된 클락속도로 1씩 증가하고 있다. 2)특정 이벤트 발생시 타이머의 카운트 값을 캡쳐하는 공간이 2개 있다 3)특정 이벤트를 rising edge 혹은 falling edge로 적절히 셋팅한다. 4) 캡쳐된 카운트 값 중 하나는 pwm period 다른 하나는 pwm duty 를 의미하게 된다. 이 때, 측정하려는 pwm 신호가 left aligned인지 right aligned인지 그리고 pwm polarity가 high인지 low인지(pwm duty 신호가 high인지 low인지) 에 따라서 앞의 3번에서 말한 이벤트 설정이 달라지게 된다. 5) 다음 그림을 통해 동작의 개요을 설명한다. 2022. 1. 11.
stm32. adc 채널 여러개 측정 ㅡ dma 인터럽트 2022. 1. 4.
STM32 Adc 개요 & Adc 채널 여러개 측정 2021.12.26 - [임베디드 쌩초보 공부/STM32] - STM32 ADC Conversion 위 글에서 Adc Channel 한개에 대해서 Polling 방식으로 conversion 하는 방법에 대해 알아보았다 근데 밑바탕이 되는 배경지식 이런거 하나도 없이 그냥 최대한 간단하게만 설명했었다. 이번에는 좀 더 배경지식에 대해 상세히 알아보고, 또 adc channel이 한개가 아니라 여러개의 channel을 컨버전 하는 것에 대해서도 알아보자. MCU마다 ADC Converter 갯수가 다르다. 일단 우리보드에는 ADC1 한개 밖에 없다. 이 ADC1에는 총 19개의 채널을 연결하여 사용할 수 있다. ADC1_In1, ADC1_In2 , .... ADC1_In15 이런식으로 명칭한다. 16개의 E.. 2021. 12. 27.
STM32 ADC Conversion 우리 보드 MCU에서 사용가능한 adc 채널은 16개 있는거 같은데, 보드에 우리가 자유롭게 활용가능하게 외부 커넥터에 연결된 핀은 위의 6개 뿐인것 같다. 이 글에서는 일단 A0핀을 사용하는것을 전제로 진행한다. PC5 에 해당되는 ADC채널은 "ADC1_IN14" 채널이다. 이것은 보드 데이터시트의 table13. B-L4S5I-IOT01A Discovery kit for the IoT node I/O assignment 를 보면 나온다. 아래 그림처럼 cubeMx에서 PC5번 핀의 용도를 ADC1_IN14로 지정해주자. 아래 그림처럼 ADC1 모듈의 채널14에 대해서 설정을 해주자. 일단은 single-ended로 고른다. 설정사항을 저장하고 code gen한다. codegen을 하면 이런저런 변화.. 2021. 12. 26.