본문 바로가기

임베디드 개발/TMS320F2838x (C28x)73

TMS320F28388D ] ADC (ePWM 타이머를 사용한 Interrupt 방식) //// Included Files//#include "driverlib.h"#include "device.h"#include "board.h"//// Defines//#define RESULTS_BUFFER_SIZE 256//// Globals//uint16_t myADC0Results[RESULTS_BUFFER_SIZE]; // Buffer for resultsuint16_t index; // Index into result buffervolatile uint16_t bufferFull; // Flag to indicate buffer is full//// Function Pr.. 2022. 9. 13.
TI ] SysConfig 와 CCS 의 유용한 기능 1. pinmux.csv .syscfg 파일이 있는 프로젝트를 빌드하면 실행파일이 나오는 폴더 안의 syscfg 폴더 안 pinmux.csv 파일이 있다. 열어보면 아래와 같이 pinMux 세팅을 한눈에 볼수 있다. 해당 핀으로 사용가능한 기능, 현재 사용중인 모드 등을 볼 수 있고 엑셀의 필터기능을 사용하면 더 유용하게 쓸 수 있다. 2. Compare 소스파일을 누르고 오른쪽클릭 Compare With Local History 를 선택하면 아래와 같이 Revision History가 나오고 해당 시간을 클릭하면 어떤걸 수정했는지 확인할 수 있다. 파일 두 개를 선택하고 Compare Each Other 하는 것도 가능하다. 3. Outline CCS에서 Outline이 뜨지 않을때, 해당부분을 체크 .. 2022. 9. 12.
TMS320F28388D ] Watch Expressions (Continuous Refresh) STM32에서 Live Expression 과 같이 전역변수를 디버깅하며 실시간으로 관찰할 수 있는 기능이다. 첫번째 방법 보려고 하는 변수를 Expression 에 추가 Continuous Refresh 클릭 점 세개 누르고 Continuous Refresh Interval 클릭 최소 100ms 간격으로 refresh 되게 할 수 있다. 두번째 방법 Continuous Refresh 는 해제하고 해당 변수의 데이터가 변한 뒤 부분에 Breakpoint를 건다. (오른쪽 클릭 또는 파란 라인을 더블클릭해서 토글시킬 수 있다) 참고. Hardware Breakpoint는 CPU의 디버그 레지스터를 이용하는 방법으로 INT1을 사용한다. 속도는 빠르지만 설정할 수 있는 브레이크 포인트 개수에 한계가 있다. .. 2022. 9. 10.
TMS320F28388D ] External Interrupt 외부 인터럽트 데이터 시트 116페이지에 나와있듯이 외부 인터럽트는 5개 까지 지원된다. syscfg 설정 LED GPIO Output 설정 버튼 GPIO Input 설정 참고로 Qualification Mode는 디폴트가 Synchronization to SYSCLKOUT Only 이다. 그냥 단순히 SYSCLK에 동기화해서 들어오는 신호를 입력받겠다는 것이다. 여기서 Input Qualification 이란 (Technical Reference Guide 1639페이지 부터) 디지털 신호는 일반적으로 아날로그 신호보다 노이즈에 대한 내성이 더 강하므로 왜곡이 거의 없다고 볼 수 있는데 위의 그림처럼 (A)와 같은 노이즈가 발생하면 매우 곤란하다. 이런 경우에 Input Qualification 이 쓰일 수 있다. .. 2022. 9. 8.
TMS320F28388D ] SCI (UART) 통신하기 - 수신 인터럽트를 통한 에코백 설정은 이전 글에서 이어진다. 2022.09.07 - [DSP, MCU/TMS320F2838x (C28x)] - TMS320F28388D ] SCI (UART) 통신하기 - 송신 TMS320F28388D ] SCI (UART) 통신하기 - 송신 SCI : Serial Commnucation Interface 직렬 통신 인터페이스로 UART보다 광범위한 개념으로 쓰이지만 주로 UART 용도로 쓴다. 새 프로젝트를 만드는 것보다 .syscfg 가 있는 예제파일을 불러와 시작하는 것이 eteo.tistory.com interrupt를 수행하는 함수를 Interrupt Handler 또는 ISR (Interrupt Service Routine) 이라고 표현한다. 그리고 핸들러 함수를 만들때는 앞에 __inter.. 2022. 9. 8.
TMS320F28388D ] SCI (UART) 통신하기 - 송신 SCI : Serial Commnucation Interface 직렬 통신 인터페이스로 UART보다 광범위한 개념으로 쓰이지만 그중에 주로 UART 용도로 쓴다. 새 프로젝트를 만드는 것보다 .syscfg 가 있는 예제파일을 불러와 시작하는 것이 좋다. 프로젝트를 복붙해 sci_test 라는 프로젝트를 하나 만들고 .syscfg 파일을 더블클릭해 sysconfig tool 로 들어간다. 형관펜으로 표시한 버튼을 누르면 데이터시트 11페이지에도 있는 핀 다이어그램을 볼 수 있다. F2838x는 176-pin QFP 와 337-pin BGA 패키지가 있는데 내가 사용하는 모델은 337-pin BGA이다. 그리고 그 옆의 Show Generated Files 를 누르고 File name 을 클릭하면 sysco.. 2022. 9. 7.
TMS320F28388D ] 프로젝트 복사하기 Copy와 Paste로 복붙한다. 프로젝트명을 적어 복사한다. F2키를 눌러 .c 파일과 .syscfg 파일도 프로젝트명과 동일하게 바꾼다. 이전 빌드로 생긴 CPUx_RAM 또는 CPUx_FLASH 폴더는 지워준다. 링커 설정에 아래와 같이 되어 있기 때문에 빌드하면 생성되는 실행파일(.out)포함 출력물도 프로젝트명으로 생긴다. 참고로 STM32에선 .elf 로 생성됐었다. 필요한 경우 Debug Configuration 을 수정하고 디버그한다. 2022. 9. 7.
TMS320F2838x ] PIE Vector Table TI 의 PIE Vector table 행이 그룹이고 열이 채널이며 숫자가 낮을수록 더 높은 우선순위를 갖는다. 즉 여러 인터럽트가 펜딩 상태일 때 낮은 숫자 그룹의 낮은 채널 인터럽트가 먼저 실행된다. 테크니컬 레퍼런스 매뉴얼 153-158 페이지 더 자세한 내용을 확인할 수 있다. https://www.ti.com/lit/ug/spruii0d/spruii0d.pdf?ts=1662539879473 2022. 9. 7.
CMD 파일 (linker command files) 작성 팁 공식 홈페이지의 작성 팁 : https://software-dl.ti.com/ccs/esd/documents/sdto_cgt_Linker-Command-File-Primer.html#barely-beyond-basics TI Linker Command File Primer software-dl.ti.com 하기 자료 출처 : http://mcublog.co.kr/ (timcu) TI MCU 카페 mcublog.co.kr TI DSP 개발에 관련하여 CMD 파일의 작성법에 대해 아는 사람은 알고 모르는 사람은 모르는 몇 가지 간단한 팁을 알려드리겠습니다. CMD 파일은 보통 아래와 같이 MEMORY{}에서 사용하는 DSP의 메모리 영역을 정의하고, SECTION{}에서 섹션들을 MEMORY{}에서 정의된 .. 2022. 9. 7.
DSP ] C28x 계열 Data Types 출처 : https://www.ti.com/lit/ug/spru514p/spru514p.pdf 이 코어는 고속연산과 자료 저장의 효율성을 위해서 기본 word단위를 16비트로 사용하고 있기 때문에 자료형 선정 시 주의가 필요하다. char 가 16비트, int 가 16비트, long이 32비트 실수 자료형은 float 와 double 둘다 32비트이다 리틀엔디안 방식이라 예를들어 0x12345678 을 저장하면 메모리에 0x56781234 로 저장된다. 2022. 9. 6.
JTAG 에뮬레이터를 연결해서 사용하기 On Board USB JTAG 에뮬레이션 회로를 사용하지 않고 14핀 JTAG 인터페이스 통해 에뮬레이터를 사용하기. 사용할 에뮬레이터는 Blackhawk USB560 v2 System Trace CCS 설치파일을 다시 실행해서 Blackhawk Debug Probes 설치 14-Pin TI Adapter Pinout 보통 방향 잘못꼽는것을 막기 위해 여기서 NC (Not/Connected)부분은 핀헤더가 부러져있거나 막혀있다. 케이블을 연결하고 설치하면 장치 관리자에서 잡힌다. 싱크웍스 DOCK 보드 내장 JTAG 회로 비활성화 프로젝트 Properties에서 Connection 선택 2022. 9. 5.
TMS320F28388D ] 예제파일 불러오는방법 (LED Blink) C2000ware 설치 Texas Instruments 사가 개발자들을 대상으로 칩에 대해 제공하는 각종 자료들(데이터시트, 칩 매뉴얼, 기본 예제 및 소스, 라이브러리 등)이 담긴 C2000ware 를 다운로드해 설치한다. (설치 folder path : C:\ti\c2000) https://www.ti.com/tool/C2000WARE 첫번째 방법 Project explorer 에서 import - CCS Projects Browse 클릭 - C2000ware가 설치된 폴더 안의 driverlib - 디바이스명 폴더를 선택한다. 참고로 driverlib 폴더에는 HAL(Hardware Abstraction Layer) driver를 사용한 예제, device_support 폴더에는 레지스터를 조작해 .. 2022. 9. 3.
TI ] CCS (Code Composer Studio) 설치하기 + 새 프로젝트 만들기 이글은 TMS320F2838x 를 바탕으로 쓰여졌습니다. 먼저 TI 사의 DSP를 사용하기 위한 툴인 CCS를 설치한다. https://www.ti.com/tool/download/CCSTUDIO Rdcommended 인 커스텀 설치 선택 해당되는 제품군을 선택 Debug probes 선택. 필요하면 나중에 추가설치 할 수 있다. CCS를 사용하면 내장 JTAG 에뮬레이터(=Debug Probe)를 위한 FTDI Driver가 같이 설치되기 때문에 5핀 케이블로 PC와 연결을 하면 다음과 같이 장치 관리자에 뜬다. CCS 실행 실행 후 첫 화면 New CCS Project 만들기 먼저 타겟보드를 선택하고 Connection에서 맞는 Debug Probe를 선택한다. 옆의 Verify를 누르면 스캔 테스트.. 2022. 9. 3.