태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

TMS320F28004x 연속 포스팅 시리즈 2번째

 

기존 1편 보러가기:  https://cafe.naver.com/timcu/2184

 

 

이번 포스팅에서는 TI의 새로운 Piccolo F28004x MCU(DSP)와 기존 28x 칩의 차이점을 설명해 보고자 합니다. 아래 그림은 TI의 28x 제품 라인 중 보급형(Entry) 라인에 속하는 Piccolo™ 계열 제품들의 포트폴리오 입니다. 오른쪽에서 왼쪽으로 갈수록 상위 계열 제품이고, 이번 포스팅의 주인공인 TMS320F28004x 는 왼쪽에서 2번째에 "New! TMS320F28004x MCUs" 로 나와 있어 가장 최근에 출시된 것을 알 수 있습니다.

 

 

 

 

 

 

 

아래 표는 위 포트폴리오 중에서 TMS320F28004x와 좌우에 있는 TMS320F2807x, TMS320F2806x 계열 칩의 대표(최상위) 제품들 스펙을 비교한 표 입니다. 각 제품에서 다른 제품보다 유리한 스펙은 굵은글씨와 회색 음영처리를 했습니다. 여기서 TMS320F280049와 TMS320F28069와 비교해서 살펴보면, USB 미지원을 제외한 모든 면에서 TMS320F280049가 더 우수한 스펙을 가지고 있고, 거기에 가격 또한 더 저렴합니다. 따라서 TMS320F280049와 TMS320F28069를 비교하는 것은 큰 의미가 없기에, 이번 포스팅에서는 Piccolo 최상위 칩인 TMS320F28075(이후 F28075)을 대상으로 TMS320280049(이후 F280049)와 비교해 보도록 하겠습니다.

 

 

 

 

 

 

프로세서와 가속기능

포트폴리오상에서 F28075는 Piccolo 계열 최상위 칩이지만, 출시순서 상으로는 F280049가 나중에 나온 가장 최근에 출시된 칩이기에 F280049는 상위 제품인 F28075 보다 우수한 면을 많이 가지고 있습니다. 먼저 코어 성능과 관련해서는 다음과 같습니다.

 

 

 

FPU: 부동소수(Floating-point)연산을 하드웨어 적으로 처리해주는 유닛,

         * FPU32는 단정도(32bit Single-Precision) 소수연산을 지원함.

VCU:  Viterbi, Complex math, CRC 연산을 하드웨어 적으로 처리해주는 유닛

TMU: 삼각함수 관련 연산(sin, cos, atan, div, sqrt 등)을 하드웨어 적으로 처리해주는 유닛

CLA: CPU 독립적인 알고리즘 처리가 가능한 병렬 코어

         * Type 번호가 높을수록 기존 Type 보다 좀더 개선된 회로임

DMA: 데이터 이동에 관한 연산처리를 CPU 대신 처리해주는 별도의 컨트롤러

 

 

칩의 구동속도(클럭)은 F28075가 F280049 보다 20MHz 정도 더 빠르지만, 그외에 특성은 동일하거나 오히려 F280049가 우수한 것을 알 수 있습니다. 특히 F280049는 F28075는 지원하지 않는 VCU를 지원하고, CLA의 경우 기존 Type 1보다 발전된 Type 2 회로가 탑재되어 있습니다. 여기서 CLA Type 2에서 개선된 점은 다음과 같습니다.

 

CLA Type 2의 개선점

백그라운드 태스크(Background Task) 운용이 가능해짐

- 백그라운드 태스크는 일단 한번 트리거 되면, CLA가 직접 정지시키거나 칩이 리셋 될 때까지 계속 실행됨.

- 나머지 태스크 들이 트리거 되면, 백그라운드 태스크를 잠시 중단시키고 실행됨.

- 필요한 경우 백그라운드 태스크의 일부를 중단됨 없이 운용할 수 있음.

- 통신이나 클린업(Clean-up) 루틴 같은 연속적인 실행이 필요한 함수로 사용할 수 있음.

 

CLA 코드 디버깅시 브레이크 포인트 사용가능

- 기존 CLA Type 0, 1 에서는 사용할 수 없었던, 소프트웨어 브레이크 포인트 사용이 가능해짐.

- 하드웨어 브레이크 포인트 또한 2개 지원

 

 

 

 

 

 

메모리 맵

다음은 메모리 맵에 대해서 살펴 보겠습니다. 일단 메모리 용량의 경우 내부 Flash 용량은 F28075가 F20049보다 2배더 많지만, 내부 RAM 용량은 두 칩 모두 동일합니다.

 

 

 

전체적으로 F280049와 F28075는 유사한 메모리 구조를 가지고 있지만, 다음과 같은 차이점이 있습니다.

 

 

메모리 맵 변경점

 

F28075의 D0, D1 RAM 영역은 F280049에서 LS6, LS7 RAM 영역으로 대체됨

- CLA에 메모리 추가할당이 가능해짐.

 

F28075의 GS0 ~ GS7 RAM 영역은 F280049에서 GS0 ~ GS3 RAM 영역으로 결합됨

- 블록 수는 줄었으나, 전체 용량은 같음

 

F2807x의 단일 뱅크 Flash 영역은 F280049에서 듀얼 뱅크 Flash 영역으로 변경됨

- 전체 용량은 단일 뱅크인 F28075가 더 많음(512KB).

- F280049는 듀얼 뱅크로 각 뱅크당 128KB 용량을 가짐(총256KB).

 

 

 

 

 

부트 모드

다음은 F280049의 부트 모드 입니다. 28x 칩의 부트모드는 과거 F281x, F280x, F2833x, C2834x 와 같은 Delfino 계열칩 에서는 특정 핀들의 High/Low 상태에 따라서 직접적으로 결정 됐었습니다. 하지만, Piccolo 계열에서는 에뮬레이터의 연결유무에 따라서  "에뮬레이션" 부트모드와 "스탠드-얼론" 부트모드로 나뉘어 지고, 각 모드에서 또다시 특정 메모리 번지의 값과 특정 핀의 상태에서 따라서 세부 부트모드를 선택할 수 있게 변경 되었습니다. F280049는 여기서 한층 더 개선되어 세부 부트모드를 설정하는 핀을 선택, 축소 혹은 완전히 제거하는 것도 가능해 졌습니다.

 

아래 그림은 스탠드 얼론 부트모드에서 세부 부트 모드가 결정되는 예시 입니다. BMSP0,1,2 값과 BOOTDEF의 설정에 따라서 부트모드를 사용자가 직접 디자인할 수 있도록 되어 있습니다. 이는 기존엔 없었던 F280049 칩만 가지고 있는 특징입니다. 이 때문에 F280049는 부트 모드 설정에 관해서 보다 유연한 대응이 가능해 졌습니다.

 

 

 

 

 

 

 

 

 

시스템 주변회로

다음은 시스템 관련 주변회로 들의 차이점들 입니다. F280049에서 노란색 음영 표시는 F28075 보다 개선/추가된 특징이고, 회색 음영 표시는 F28075 보다 감소되거나 삭제된 특징입니다.

 

 

 

 

X-Bar Routing: 최신 28x 칩인 F2837x, F2807x, F28004x 시리즈에 도입된 회로로 일부 주변회로의 입출력 신호를 미리 지정된 기능 핀이 아닌, 사용자 선택한 핀을 통해서 유연하게 연결될 수 있게 해주는 회로. Input X-Bar, Output X-Bar, PWM X-Bar 3가지가 있음.

EMIF: External Memory InterFace 임.  F280049의 경우 EMIF 회로가 없음.

 

 

시스템 측면에서 F280049의 개선된 점을 정리하면 다음과 같습니다.

 

시스템 주변회로 개선점

 

와치독 회로 개선

- 기존 와치독 회로는 무조건 OSC 클럭에서 512분주된 클럭을 사용했으나, F280049에서는 와치독 회로가 사용하는 클걱의 분주비를 사용자가 직접 설정할 수 있음.

 

Input X-Bar 회로 개선

- 기존에 없었던 추가 입력단 2개 추가. (input15, input16)

   * F28075의 경우 input14번 까지만 사용가능

- eCAP1 ~ 6의 입력 신호를 Input X-Bar 1~16 중에서 선택할 수 있음.

- eCAP1 ~ 6는 Input X-Bar 외에도 별도의 MUX를 통해 128개 소스 중에서 입력신호를 선택할 수 있음.

   * F28075의 경우 Input X-Bar 7~12에만 고정적으로 연결됐었음.

 

Output X-Bar 회로 개선

- CLAHALT(CLA 정지) 신호 출력이 가능해짐.

 

PWM X-Bar 회로 개선

- CLAHALT(CLA 정지) 신호 입력이 가능해짐.

- Input X-Bar 7 ~ 14 연결이 가능해짐.

 

저전력 모드 변경점

- F28075에 있었던 Hibernate 모드가 삭제됨.

- F280049는 언제든지 소프트웨어 적으로 외부 클럭소스를 Power-down 시킬 수 있음.

 

CPU / CLA / DMA 접근 중재

- 기존 F2807x는 주변회로에 대한 CLA와 DMA의 동시접근 중재가 불가했음.

- F280049에서는 주변회로에 대한 CLA와 DMA의 동시접근 중재가 가능해져, CLA도 DMA를 활용이 가능해짐.

 

 

 

 

 

아날로그 주변회로

다음은 아날로그 주변회로의 차이점을 정리한 것입니다. 아날로그 주변회로에 대해서는 F280049가 F28075에 비해서 모든 면에서 개선된 것을 볼 수 있습니다. 여기서 Number of ADCs의 숫자는 ADC 채널 수가 아닙니다. ADC 모듈 숫자를 의미합니다. 28x ADC 모듈 1개는 기본적으로 16채널을 처리할 수 있습니다. 이것이 3개라면, 총 48채널 처리가 가능합니다. 하지만, 실제로 외부 인출된 핀수는 F28075의 경우 17채널이고, F280049의 경우 21채널 입니다.

 

 

 

CMPSS: 2개의 비교기(Comparator)로 구성된 회로로 각 비교기의 " - " 입력단에는 DAC 가 연결되어 있어서 자체적으로 기준신호를 생성도 가능함. 칩의 내부 혹은 외부에서 신호를 입력 받아, 비교출력 신호를 내부적인 이벤트 신호 혹은 외부로 출력으로 사용할 수 있음.

PGA: Programmable Gain Amplifier로 입력 신호를 증폭시킬 수 있는 내장 OP-AMP 회로임. 소프트웨어 적으로 증폭비(Gain)을 조절할 수 있고, 내장 가변저항과 외부 커패시터를 연결하여 RC 필터를 구성할 수 있음.

 

 

F280049의 아날로그 주변회로 개선점들은 다음과 같습니다.

 

F280049의 아날로그 회로 개선점

 

ADC 외부 입력 채널 증가

- F28075는 17채널, F280049는 21채널 외부인출

 

아날로그 레퍼런스 소스 추가

- F28075는 외부 레퍼런스만 사용가능했으나, F280049는 내부/외부 레퍼런스 둘다 사용가능

 

CMPSS 회로 개선

- F28009에는 ePWM 회로의 카운터 주기값 경계에서 기존 또는 임박한 트립 조건을 제거하거나 리셋할 수 있는 PWM Blanking 기능이 추가됨.

- "+" , "-" 입력신호를 MUX회로를 통해서 좀더 유연하게 선택할 수 있음.

 

DAC 회로 개선

- F28075에 있던 출력단 Pull-Down 저항이 삭제됨.

- DAC 내부 레퍼런스로 2.5V 혹은 3.3V 옵션을 선택할 수 있음.

- 외부 부하 구동 능력이 증가됨.

 

PGA 회로 추가

- F28075에는 없는 PGA 회로가 추가되어, 외부 신호를 증폭 / 필터링 하여 ADC에 입력할 수 있음.

- 별도의 ADC 입력 회로를 꾸밀 필요 없이 PGA 회로도 대체 가능함.

 

Analog Subsystem Interconnect

- ADC / DAC / CPMSS / PGA 들간의 내부 그룹핑 연결 구조로 핀 선택의 유연성이 증가함.

 

 

 

 

 

 

제어용 주변회로

다음은 제어용 주변회로 들의 차이점들을 살펴보겠습니다. 제어용 주변회로는 ePWM 회로를 제외하면 모든 회로에서 F280049가 F28075보다 개선된것을 볼 수 있습니다. 주변회로 이름 앞에 eCAP / ePWM / eQEP 등 "e" 가 접두사로 붙어 있는 것은 제조사(TI)에 해당 회로가 기존 회로보다 향상된(Enhanced) 회로임을 표시하기 위한 것 입니다.

 

 

 

eCAP: 외부 입력 펄스의 시간정보를 측정하는 회로임. 펄스의 주기와 듀티비를 측정할 수 있음.

HRCAP: High-Resolution CAP 회로로 용도는 eCAP과 동일하지만, 훨씬 정밀한 측정이 가능함.

HRPWM: High-Resolution PWM 회로로 높은 캐리어 주파수에서 훨씬 정밀한 PWM 파형 출력이 가능함.

eQEP: 모터의 엔코더 신호를 입력 받아서 모터의 회전정보를 측정해주는 회로임.

SDFM: Sigma-Delta Filter Module 로 독립적인 delta-sigma (ΔΣ) 비트 스트림을 수신 처리하는 회로임.

         주로 모터 제어에서 전류 측정 및 레졸버 위치 디코딩 용도로 사용함.

 

 

각 제어용 주변회로의 개선점 들은 다음과 같습니다.

 

F280049의 제어용 주변회로 개선점

 

ePWM 회로

- 잠금 레지스터 추가.

 

eCAP Type1 회로

- eCAP회로를 HRCAP 회로로 확장하는 기능이 추가됨.

 

eQEP Type1 회로

- 산업용 드라이버 어플리케이션 지원용 QMA(QEP Mode Adapter)회로가 추가됨.

 

SDFM Type1 회로

- 모든 데이터 필터들에 16 level x 32bit FIFO 가 추가됨.

- 각각의 데이터 필터는 각각의 개별적인 인터럽트가 할당됨.

 

 

 

 

 

통신 회로

마지막으로 통신 회로에 대한 차이점입니다. 아래 그림과 같이 F280049는 F28075에 비해서 SCI / SPI 의 채널 수가 줄고, USB 통신을 지원하지 않지만, 개선된 I2C 회로와 LIN / PMBuS / FSI 통신 회로가 새롭게 추가 된 것을 볼 수 있습니다.

 


CAN: 비동기식 직렬 통신으로 자동차 전장용, 각종 산업용 제어기용 중장거리 통신에 사용됨.

I2C: 동기식 직렬 통신으로 근거리 간의 칩간 통신에 사용됨.

SCI: 비동기식 직렬 통신으로 RS-232 / RS-422 / RS-485 등 중장거리 UART 통신에 사용됨.

SPI: 동기식 직렬 통신으로 근거리 간의 고속 칩간 통신에 사용됨.

LIN: 비동기식 직렬 통신으로 CAN과 유사하게 자동자 전장용 중거리 통신에 사용됨.

PMBus: I2C를 기반으로 하는 Power Management 용 통신 방식

FSI: 동기식 직렬 통신으로 절연 디바이스 간의 고속 통신 용도로 사용됨.

 

 

 

F280049의 통신회로와 기존 F28075의 차이점은 다음과 같습니다.

 

F280049의 통신회로 차이점

 

SPI

- 25MHz 까지의 High Speed 모드 추가됨.

 

LIN

- LIN 2.1 프로토콜 스펙과 호환되도록 개선됨.

   * 기존 LIN 통신을 탑재했던 F2803x는 LIN 2.0 프로코콜을 지원 했었음.

 

I2C

- XRDY 송신 인터럽트 타이밍 사양 개선

 

PMBus

- 28x 칩 최초로 도입됨.

- 100KHz , 400KHz, 1000KHz 비트 레이트 지원

 

FSI

- 28x 칩 최초로 도입됨.

- 최대 50MHz 전송 클럭

- double data rate (100Mbps @ 50Mhz clock)

- 독립적인 송수신 모듈

- 8bit 하드웨어 CRC & 체커

 

 

 

마무리

여기까지의 내용에서 확인할 수 있듯이, TI의 새로운 Piccolo MCU(DSP)인 F280049칩은 보다 상위 칩인 F28075 보다 여러가지 면에서 개선되고 발전된 것을 알 수 있습니다. 거기다 단가 마저도 F28075의 절반 수준으로 저렴하기 때문에 28x 계열 전체 칩을 통틀어도 가장 가성비가 좋은 칩이라고 할 수 있습니다. 

 

또한 지금까지의 비교자료에는 나오지 않은 내용이지만, F280049는 소비 전력마저도 상위 계열은 물론 하위 계열(F2803x)보다도 낮기 때문에, 칩자체의 발열도 기존의 다른 28x 계열 대비 아주 낮은 수준으로 유지됩니다.

 

현재시점에서 TI의 28x 칩을 선택해야 한다면, 높은 연산 성능 / 많은 메모리 용량 / 큰 규모의 개발이 필요한 경우라면, Delfino 계열의 TMS320F28377D 혹은 TMS320F28377S 칩이 권장되지만, 그 외의 경우라면 TMS320F280049 칩을 추천해 드립니다.

 

 

 

 

참고자료

Technical Introduction for the New C2000 TMS320F28004x Device Family (링크)

The TMS320F28004x MCU: A Comparison to the TMS320F2806x and TMS320F2803x MCUs (링크)

A Technical Introduction to the TMS320F28004x Microcontroller  (링크)

 

 

 

 

 

 

 

Posted by syncworks

댓글을 달아 주세요