PIC 마이크로 컨트롤러

PIC microcontrollers
DIP 및 QFN 패키지의 PIC 마이크로 컨트롤러
메트릭 눈금자 옆에 있는 16비트 28핀 PDIP PIC24 마이크로컨트롤러
PIC12C508 8비트 완전 정적 EEPROM/EPROM/ROM 기반 CMOS 마이크로 컨트롤러의 다이(1200나노미터 프로세스 사용)
1200나노미터 공정을 사용하여 마이크로칩 테크놀로지에 의해 제조된 PIC16C505 CMOSROM 기반의 8비트 마이크로 컨트롤러의 다이

PIC(일반적으로 "픽"으로 발음됨)는 General Instrument의 Microelectronics Division에서 개발한 PIC1650에서[1][2][3] 파생된 Microchip Technology에서 만든 마이크로 컨트롤러 제품군입니다.PIC라는 이름은 처음에는 Peripheral Interface Controller로 [4]불리며 현재는 Programmable Intelligent [5]Computer로 확장되어 있습니다.이 제품군의 첫 번째 부품은 1976년에 출시되었습니다. 2013년까지 이 회사는 다양한 임베디드 시스템에 사용되는 120억 개 이상의 개별 부품을 출하했습니다.

PIC는 시판되는 최초의 싱글칩 16비트 마이크로프로세서General Instrument CP1600과 함께 사용되도록 설계되었습니다.CP1600에는 복잡한 버스가 있어 인터페이스하기 어려웠습니다.PIC는 프로그램 스토리지용 ROM, 임시 데이터 처리용 RAM, 전송을 제어하기 위한 단순한 CPU를 제공하는 부속 장치로 도입되었습니다.이것이 상당한 힘을 제공했지만 GI의 마케팅은 제한적이었고 CP1600은 성공하지 못했습니다.1985년 칩 사업부를 분사해 마이크로칩을 설립했을 때 CP1600의 판매는 거의 중단되었다.이때쯤 PIC는 자체 주요 시장을 형성했고, 새로운 회사의 주요 제품 중 하나가 되었다.

초기 모델에는 코드 스토리지용 마스크 ROM만 탑재되어 있었지만, 그 스피노프를 통해 EPROM과 EEPROM사용하도록 업그레이드되어 최종 사용자의 프로그래밍이 훨씬 쉬워졌습니다.현재의 모든 모델은 프로그램 저장에 플래시 메모리를 사용하며, 새로운 모델에서는 PIC가 자체 재프로그래밍을 할 수 있습니다.이후 회선이 크게 변화하여 메모리는 8비트, 16비트, 최신 모델에서는 32비트 폭의 메모리를 사용할 수 있게 되었습니다.프로그램 명령은 PIC 패밀리에 따라 비트 카운트가 다르며 12, 14, 16 또는 24비트 길이일 수 있습니다.명령 집합은 모델에 따라 다르며, 보다 강력한 칩이 디지털 신호 처리 기능을 위한 명령을 추가합니다.PIC 디바이스의 하드웨어 실장은 6핀 SMD, 8핀 DIP 칩부터 144핀 SMD 칩까지 다양하며, 전용 I/O , ADC 및 DAC 모듈, 통신 포트(UART, I2C, CAN, 심지어 USB 등 다양한 유형의 저전력 및 고속이 존재합니다.

제조업체는 MPLAB X, 어셈블러 및 C/C++ 컴파일러로 알려진 개발용 컴퓨터 소프트웨어 및 MPLABPICKit 시리즈로 프로그래머/디버거 하드웨어를 제공합니다.서드파티제 및 일부 오픈소스 툴도 이용할 수 있습니다.일부 부품은 인서킷 프로그래밍 기능을 갖추고 있습니다.저비용 개발 프로그래머는 물론 대량 생산 프로그래머도 이용할 수 있습니다.

PIC 디바이스는 저비용, 폭넓은 가용성, 대규모 사용자 기반, 광범위한 애플리케이션 노트 모음, 저비용 또는 무료 개발 도구의 가용성, 시리얼 프로그래밍 및 재프로그래밍 가능한 플래시 메모리 기능으로 인해 산업 개발자와 취미 활동가 모두에게 인기가 있습니다.

역사

오리지널 컨셉

다양한 구형(EPROM) PIC 마이크로 컨트롤러

원래 PIC는 General Instrument의 새로운 CP1600 16비트 중앙 처리 장치(CPU)와 함께 사용되도록 설계되었습니다.16비트 데이터 버스와 주소 버스를 당시 표준 40핀 Dual Inline Package(DIP; 듀얼 인라인 패키지) 칩에 장착하기 위해 2개의 버스는 동일한 세트의 16개의 연결 핀을 공유했습니다.CPU와 통신하기 위해 디바이스는 CPU의 다른 핀을 감시하고 버스상의 데이터가 주소인지 데이터인지를 판단해야 했습니다.한 번에 이들 중 하나만 표시되므로 디바이스는 주소 모드가 되기 위해 버스를 감시하고 해당 주소가 메모리 맵 입출력 범위의 일부인지 확인하고 해당 주소를 "래치"한 후 데이터 모드가 켜질 때까지 기다렸다가 값을 읽어야 했습니다.게다가 1600에서는, 통신하려고 하는 디바이스를 선택하기 위해서, 복수의 외부 핀을 사용하고 있기 때문에, 인터페이스는 한층 더 복잡해졌습니다.

1600 에의 인터페이스 디바이스는 복잡할 가능성이 있기 때문에, GI 는 필요한 모든 회로를 내장한 일련의 서포트 칩도 발매했습니다.여기에는 키보드 드라이버, 스토리지용 카세트 데크 인터페이스 및 다수의 유사한 시스템이 포함되어 있습니다.보다 복잡한 시스템의 경우 GI는 1975년에 8비트 PIC를 도입했습니다.디바이스는 PIC를 사용하여 호스트 컴퓨터의 CP1600과의 모든 인터페이스를 처리할 뿐만 아니라 연결된 실제 디바이스를 처리하기 위해 자체 내부 프로세서를 사용할 수도 있습니다.를 들어, 플로피 디스크 드라이브는 한쪽이 CPU와 통신하는 PIC, 다른 한쪽이 플로피 디스크 컨트롤러로 구현될 수 있습니다.오늘날 마이크로컨트롤러라고 불리고 있는 이 생각에 따라 PIC에는 사용자의 디바이스 컨트롤러 코드로 기입되는 소량의 읽기 전용 메모리(ROM)와 버퍼링 및 데이터 처리를 위한 별도의 RAM이 포함되어 있습니다.이들은 개별적으로 연결되어 있어 PIC는 코드와 데이터를 별도의 내부 경로로 관리하는 하버드 아키텍처 시스템이 되었습니다.

이론적으로 1600개의 CPU와 PIC 디바이스 컨트롤러의 조합은 매우 고성능의 디바이스 제어 시스템을 제공했습니다.이것은 메인프레임 컴퓨터에서 볼 수 있는 채널 컨트롤러와 동일한 전력과 퍼포먼스입니다.예를 들어 플로피 컨트롤러에서는 단일 PIC가 드라이브를 제어하고 성능을 향상시키기 위해 적절한 양의 버퍼링을 제공한 다음 직접 메모리 액세스(DMA) 또는 CPU 내의 비교적 단순한 코드를 사용하여 호스트 컴퓨터 간에 데이터를 전송할 수 있습니다.이 접근방식의 단점은 비용입니다.키보드와 같은 저속 디바이스에서는 PIC가 필요하지 않지만 대부분의 태스크에서는 완전한 시스템을 구축하기 위해 1개 이상의 PIC가 필요합니다.

General Instrument는 디자인 컨셉에 여러 가지 매력적인 특징이 있었지만, 1600을 강하게 마케팅하지 않았고, 대규모 고객만을 상대하는 것을 선호하며 저가 시장을 무시했습니다.이로 인해 시스템의 도입이 거의 이루어지지 않았고, 인텔리비전은 약 300만 유닛으로 유일하게 널리 사용되었습니다.1985년 GI가 칩 사업부를 분사해 마이크로칩 테크놀로지를 설립하면서 CP1600의 생산은 종료됐다.그러나 이때까지 PIC는 다양한 역할을 하는 고객들로 구성된 큰 시장을 형성했고 PIC는 새로운 회사의 주요 제품 중 하나가 되었습니다.

1600년 이후

1985년 제너럴 인스트루먼트는 마이크로 일렉트로닉스 사업부를 매각했고, 새 소유주들은 거의 모든 것을 취소했는데, 이때는 대부분 구식이었습니다.단, PIC는 내부 EPROM을 사용하여 업그레이드되어 프로그램 가능한 채널컨트롤러가 생성되었습니다.동시에 영국의 Plesey는 GI 설계에 근거해 PIC1650과 PIC1655의 번호를 붙인 NMOS 프로세서를 출시했습니다.이는 사용자 마스크 프로그래밍 가능 또는 자동 다이얼러와 키보드 [6]인터페이스용으로 미리 프로그래밍된 버전을 사용하는 것과 같은 명령 세트를 사용합니다.

1998년에 Microchip은 성공적인 시리얼 프로그램 가능 PIC16C84의 플래시 프로그램 가능 및 삭제 가능한 버전인 PIC 16F84를 발표했습니다.2001년에 Microchip은 더 많은 플래시 프로그래밍 가능 장치를 선보였으며, 2002년부터 본격 생산을 시작했습니다.[1]

현재, 다양한 온보드 주변기기(시리얼 통신 모듈, UART, 모터 제어 커널 등)와 256 워드부터 64,000 워드까지('워드'는 하나의 어셈블리 언어 명령으로, 특정 PIC 마이크로 패밀리에 따라 길이가 다릅니다).

PIC 및 PICmicro는 현재 Microchip Technology의 등록 상표입니다.General Instruments의 초기 PIC1640 및 PIC1650 장치의 약자는 "Programmable Interface Controller"[4]였지만, 일반적으로 PIC는 Peripheral Interface Controller의 약자로 생각됩니다.이 약어는 "Programmable Intelligent Computer"[5]로 빠르게 대체되었습니다.

1993년에 도입된 마이크로칩 16C84(PIC16x84)는 온칩 EEPROM 메모리를 탑재한 최초의[7] 마이크로칩 CPU입니다.

2013년까지 마이크로칩은 매년 [8]10억 개 이상의 PIC 마이크로컨트롤러를 출하하고 있었습니다.

디바이스 패밀리

PIC 마이크로칩은 하버드 아키텍처로 설계되어 다양한 디바이스 패밀리로 제공됩니다.베이스라인 및 미드레인지 패밀리는 8비트 와이드 데이터 메모리를 사용하고 하이엔드 패밀리는 16비트 데이터 메모리를 사용합니다.최신 시리즈인 PIC32MZ는 32비트 MIPS 기반의 마이크로 컨트롤러입니다.명령어는 12비트(PIC10 및 PIC12), 14비트(PIC16) 및 24비트(PIC24 및 dsPIC)의 사이즈가 있습니다.기계 명령의 바이너리 표현은 패밀리에 따라 다르며 PIC 명령 목록에 표시됩니다.

이러한 패밀리에서 디바이스는 PICnCxx(CMOS) 또는 PICnFxx(플래시)로 지정됩니다."C" 기기는 일반적으로 "새로운 개발에 적합하지 않음"으로 분류됩니다(마이크로칩에 의해 적극적으로 홍보되지 않음)."C" 장치의 프로그램 메모리는 OTP, ROM 또는 EEPROM으로 다양하게 표현되며, 2016년 10월 현재 "생산 중"으로 분류된 유일한 OTP 제품은 pic16입니다.HV540. 석영 창(삭제용)이 있는 "C" 디바이스는 일반적으로 더 이상 사용할 수 없습니다.

PIC10 및 PIC12

이들 디바이스는 12비트의 와이드 코드메모리, 32바이트의 레지스터 파일 및 2레벨의 작은 콜스택을 갖추고 있습니다.PIC10 시리즈 및 일부 PIC12 및 PIC16 디바이스로 표시됩니다.베이스라인 디바이스는 6핀~40핀 패키지로 이용할 수 있습니다.

일반적으로 레지스터 파일의 처음 7~9바이트는 특수 목적 레지스터이며 나머지 바이트는 범용 RAM입니다.포인터는 레지스터 쌍을 사용하여 구현됩니다.FSR(파일 선택 레지스터)에 주소를 쓴 후 INDF(간접 f) 레지스터는 주소 지정된 레지스터의 에일리어스가 됩니다.뱅크 RAM이 구현되어 있는 경우 뱅크 번호는 FSR의 상위 3비트에 의해 선택됩니다.이는 레지스터 번호 16~31에 영향을 줍니다.레지스터 0~15는 글로벌하며 뱅크 선택 비트의 영향을 받지 않습니다.

레지스터 공간(5비트)이 매우 한정되어 있기 때문에 읽기 어려운 4개의 레지스터에는 주소가 할당되지 않고 특별한 지시에 의해 쓰여졌습니다.OPTION그리고.TRIS).

ROM 주소 공간은 512 wand 입니다.각 512 워드의 페이지 전반에만 주소를 지정할 수 있습니다.즉, CALL 명령에서는 주소의 하위9비트가 지정되지만, 그 주소의 하위8비트만이 명령의 파라미터가 됩니다만, 9번째 비트(비트8)는 CALL 명령 자체에 의해 암묵적으로 0으로 지정됩니다.

룩업 테이블은 계산 결과를 사용하여 구현됩니다.GOTO(PCL 레지스터에 대한 할당)의 표에 기입한다.RETLW명령. RETLW는 명령으로 인코딩된 8비트 즉시 상수를 W 레지스터에 반환합니다.

이 "기준 코어"는 인터럽트를 지원하지 않으므로 모든 I/O폴링해야 합니다.인터럽트 지원과 4레벨 콜스택을 갖춘 '확장 베이스라인' 변종이 있습니다.

PIC10F32x 디바이스는 256 또는 512 워드의 미드레인지 14비트 와이드 코드 메모리, 64 바이트의 SRAM 레지스터 파일 및 8 레벨의 딥 하드웨어 스택을 갖추고 있습니다.이러한 디바이스는 6핀 SMD 및8핀 DIP 패키지로 이용 가능합니다(2핀 미사용).1개의 입력과 3개의 I/O 핀을 사용할 수 있습니다.복잡한 인터럽트 세트를 사용할 수 있습니다.클럭은 소프트웨어 및 31kHz 저전력 소스를 통해 선택할 수 있는 16MHz의 내부 교정된 고주파 발진기입니다.

PIC16

마이크로칩 PIC16C58a
SOIC 소켓의 PIC16LF870

이들 디바이스는 14비트의 와이드 코드메모리와 개량된8 레벨 딥 콜스택을 갖추고 있습니다.명령어 세트는 베이스라인 디바이스와 거의 차이가 없지만 2개의 추가 opcode 비트를 통해 128개의 레지스터와 2048개의 코드를 직접 수신처로 지정할 수 있습니다.몇 가지 기타 명령과 8비트 리터럴 명령인 덧셈과 뺄셈이 있습니다.미드레인지 코어는 PIC12 및 PIC16 라벨이 붙은 대부분의 디바이스에서 사용할 수 있습니다.

레지스터 공간의 처음 32바이트는 특수 목적 레지스터에 할당되고 나머지 96바이트는 범용 RAM에 사용됩니다.뱅크된 RAM을 사용하는 경우 상위 16개의 레지스터(0x70–0x7F)가 글로벌하고 RAM 뱅크 선택 비트를 유지하는 상태 레지스터를 포함한 가장 중요한 특수 목적 레지스터의 일부도 글로벌합니다.(다른 글로벌 레지스터는 FSR 및 INDF, 프로그램 카운터 PCL의 하위8비트, PC 하이 프리로드 레지스터 PCLATH 및 마스터 인터럽트 제어 레지스터 INTCON입니다).

PCLATH 레지스터는 PCL 레지스터에 쓰기에 의해 제공되는 8비트 또는 PCL 레지스터에 의해 제공되는 11비트의 경우 상위 명령 주소 비트를 제공합니다.GOTO또는CALL사용 가능한 ROM 공간에 대처하기에는 불충분합니다.

PIC17

17 시리즈는 인기를 끌지 못하고 PIC18 아키텍처로 대체되었습니다(단, 아래 클론 참조).17 시리즈는 새로운 설계에는 권장되지 않으며, 이용 가능한 사용자만 사용할 수 있습니다.

이전 코어에 비해 개선된 점은 16비트의 와이드 오퍼코드(많은 새로운 명령어를 사용할 수 있음)와 16레벨의 딥 콜스택입니다.PIC17 디바이스는 40~68핀의 패키지로 제작되었습니다.

17 시리즈에서는 다음과 같은 중요한 [9]신기능이 도입되었습니다.

  • 메모리 맵 어큐뮬레이터
  • 코드 메모리에 대한 읽기 액세스(테이블 읽기)
  • 이동을 등록하는 직접 레지스터(어큐뮬레이터를 통해 레지스터를 이동하는 데 필요한 코어)
  • 코드 공간을 확장하기 위한 외부 프로그램 메모리
  • 8비트×8비트 하드웨어 멀티플라이어
  • 두 번째 간접 레지스터 쌍
  • 상태 레지스터(ALUSTA)의 제어 비트에 의해 제어되는 자동 증감 주소 지정

RAM 공간이 256바이트(특수 기능 레지스터 26바이트, 범용 RAM 232바이트)로 제한되고 더 많은 기능을 지원하는 모델에서는 뱅크 스위칭이 불편하다는 것이 중요한 제한이었습니다.

PIC18

2000년에 마이크로칩은 PIC18 아키텍처를 도입했습니다.17시리즈와는 달리, 현재 제조되고 있는 디바이스의 종류가 다수 있어, 매우 인기가 있는 것이 판명되었습니다.어셈블리에 프로그래밍되지 않은 경우가 많았던 이전 장치와 달리 C는 주요 개발 [10]언어가 되었습니다.

18시리즈는 17시리즈의 기능과 명령의 대부분을 계승하고 있으며, 다음과 같은 중요한 신기능이 다수 추가되어 있습니다.

  • 콜 스택의 폭은 21비트이며 깊이(31레벨)가 훨씬 깊다.
  • 콜 스택은 읽고 쓸 수 있다(TOSH:TOSH:TOSL 레지스터)
  • 조건부 분기 명령
  • 인덱스 어드레싱 모드(PLUSW)
  • FSR 레지스터를 12비트로 확장하여 데이터 주소 공간 전체를 선형으로 주소 지정할 수 있습니다.
  • 다른 FSR 레지스터 추가(숫자 최대 3)

RAM 공간은 12비트이며, 각 명령에서 4비트 뱅크 선택 레지스터와 8비트 오프셋을 사용하여 주소 지정됩니다.각 명령의 추가 "액세스" 비트는 뱅크 0(a=0)과 BSR에 의해 선택된 뱅크(a=1) 사이에서 선택한다.

STATUS, WREG 및 BSR 레지스터에도 1레벨 스택을 사용할 수 있습니다.이러한 파일은 인터럽트 때마다 저장되며 반환 시 복원될 수 있습니다.인터럽트가 비활성화되어 있는 경우 s 비트를 설정함으로써 서브루틴 콜/리턴에서도 인터럽트를 사용할 수 있습니다(명령어에 ", FAST" 추가).

자동 증감 기능은 제어 비트를 삭제하고 FSR마다 4개의 새로운 간접 레지스터를 추가함으로써 개선되었습니다.액세스 하고 있는 간접 파일레지스터에 따라서는, FSR 의 포스트 디크리먼트, 포스트 인크리먼트, 프리 인크리먼트, 또는 FSR 에 W 를 추가하는 것에 의해서 유효 주소를 형성할 수 있습니다.

보다 고도의 PIC18 디바이스에서는, 「확장 모드」를 사용할 수 있기 때문에, 어드레싱은 컴파일 된 코드에 보다 유리합니다.

  • 새로운 오프셋어드레싱 모드입니다액세스 뱅크에 대해서 상대적인 주소의 일부가 FSR2 레지스터에 대해서 해석됩니다.
  • FSR 레지스터를 조작하는 것으로 유명한 몇 가지 새로운 명령 추가.

PIC18 디바이스는 아직 개발(2021년)되어 있어 CIP(Core Independent Peripherals)를 탑재하고 있습니다.

PIC24 및 dsPIC

2001년 마이크로칩은 dsPIC 칩 [11]시리즈를 선보였고, 2004년 말에 양산에 들어갔습니다.이들은 마이크로칩 최초의 16비트 마이크로컨트롤러입니다.PIC24 디바이스는 범용 마이크로 컨트롤러로 설계되어 있습니다.dsPIC 디바이스에는 디지털 신호 처리 기능도 포함되어 있습니다.

이전 PIC 아키텍처와 비슷하지만 다음과 같은 대폭적인 [12]확장 기능이 있습니다.

  • 모든 레지스터의 폭은 16비트입니다.
  • 프로그램 카운터는 22비트(비트 22:1, 비트 0은 항상 0)
  • 명령어의 폭은 24비트입니다.
  • 데이터 주소 공간을 64KiB로 확장
  • 첫 번째 2 KiB는 주변기기 제어 레지스터용으로 예약되어 있습니다.
  • RAM이 62KiB를 초과하지 않는 한 데이터 뱅크 전환은 불필요합니다.
  • 13비트(8KiB)까지 확장되는 'f 오퍼랜드' 다이렉트어드레싱
  • 레지스터-레지스터 조작에 사용할 수 있는 16 W 레지스터.
    (단, foperand에서의 동작은 항상 W0을 참조합니다).
  • 명령어는 바이트 및 (16비트) 워드 형식으로 제공됩니다.
  • 스택은 RAM(W15를 스택 포인터로 사용)에 있으며 하드웨어 스택은 없습니다.
  • W14는 프레임 포인터입니다.
  • ROM에 저장된 데이터에 직접 액세스할 수 있습니다("프로그램 공간 가시성")
  • 다른 인터럽트 소스에 대해 벡터링된 인터럽트

기능에는 다음과 같은 것이 있습니다.

  • (16×16)비트 싱글 사이클 곱셈 및 기타 디지털 신호 처리 작업
  • 하드웨어 다중 누적(MAC)
  • 하드웨어 분할 지원(32/16비트 분할의 경우 19 사이클)
  • 배럴 시프트 - 축전지 및 범용 레지스터 모두용
  • 비트 반전
  • 루프 인덱싱에 대한 하드웨어 지원
  • 페리페럴 다이렉트 메모리 액세스

dsPIC는 GCC의 변형인 Microchip의 XC16 컴파일러(구 C30)를 사용하여 C에서 프로그래밍할 수 있습니다.

명령 ROM의 폭은 24비트입니다.소프트웨어는 16비트 워드로 ROM에 액세스 할 수 있습니다.여기서 짝수 워드는 각 명령의 최하위 16비트를 보관 유지하고 홀수 워드는 최상위 8비트를 보관합니다.홀수 단어의 상위 절반은 0으로 읽힌다.프로그램 카운터의 폭은 23비트이지만 최하위 비트는 항상 0이므로 22비트가 수정 가능합니다.

명령은 주로 두 가지 종류가 있으며, 가장 중요한 작업(추가, xor, 교대 등)은 두 가지 형식을 모두 허용합니다.

첫 번째는 지정된 f 레지스터(즉 RAM의 첫 번째 8K)와 단일 어큐뮬레이터 W0 사이의 연산을 통해 결과에 따라 업데이트되는 수신처 선택 비트를 선택하는 전형적인 PIC 명령과 같습니다(W 레지스터는 메모리 매핑됩니다).따라서 피연산자는 임의의 W 레지스터가 될 수 있습니다.)

두 번째 형태는 보다 일반적인 것으로, 16 W 레지스터 중 하나일 수 있는 3개의 오퍼랜드가 허용됩니다.행선지와 송신원 중 하나에서는, 주소 지정 모드도 서포트하고 있기 때문에, 오퍼랜드가 W레지스터에 의해서 지시되는 메모리내에 있는 것이 가능하게 됩니다.

PIC32M MIPS 기반 회선

PIC32MX

2007년 11월에 마이크로칩은 MIPS32 M4K [13]Core를 기반으로 한 32비트 마이크로 컨트롤러의 PIC32MX 패밀리를 발표했습니다.디바이스는 GCC 컴파일러의 일종인 PIC32 MCU용 마이크로칩 MPLAB C 컴파일러를 사용하여 프로그래밍할 수 있습니다.현재 생산 중인 최초의 18개 모델(PIC32MX3xx 및 PIC32MX4xx)은 핀 투 핀 호환성이 있으며 공통 라이브러리, 소프트웨어 및 하드웨어 도구를 사용할 수 있는 PIC24FxxGA0x 시리즈(16비트) 디바이스와 동일한 주변기기를 공유합니다.현재는 소형 QFN 패키지의 28핀부터 이더넷, CAN 및 USB OTG를 갖춘 고성능 디바이스까지 미드레인지 32비트 마이크로 컨트롤러의 풀 패밀리를 이용할 수 있습니다.

PIC32 아키텍처는 마이크로칩 포트폴리오에 다음과 같은 많은 신기능을 도입했습니다.

  • 최고 실행 속도 80 MIPS (80 MHz에서 120 +[14] Drystone MIPS)
  • 최대 플래시 메모리: 512kB
  • 클럭 사이클 실행당 1개의 명령
  • 첫 번째 캐시된 프로세서
  • RAM에서 실행 가능
  • 풀 스피드 호스트/듀얼 롤 및 OTG USB 기능
  • 완전한 JTAG 및 2선식 프로그래밍 및 디버깅
  • 실시간 추적

PIC32MZ

2013년 11월, Microchip은 MIPS M14K 코어를 기반으로 한 마이크로 컨트롤러 PIC32MZ 시리즈를 발표했습니다.PIC32MZ 시리즈에는 다음이 포함됩니다.[15][16]

  • 252MHz 코어 속도, 415DMIPS
  • 최대 2MB 플래시 및 512KB RAM
  • 고속 USB, 암호화 엔진, SQI 등 새로운 주변기기

2015년에 마이크로칩은 업데이트된 MIPS M5150 Warrior M-class 프로세서를 사용하여 [17][18]PIC32MZ EF 패밀리를 출시했습니다.

2017년에 마이크로칩은 내장 그래픽 컨트롤러, 그래픽 프로세서 및 32MB의 DDR2 [19][20]DRAM을 탑재한 PIC32MZ DA 패밀리를 발표했습니다.

PIC32MM

2016년 6월 Microchip은 저전력 및 저비용 애플리케이션에 [21]특화된 PIC32MM 제품군을 발표했습니다.PIC32MM은 코어 비의존형 주변기기, 최대 500nA의 sleep 모드 및 4x4mm [22]패키지를 갖추고 있습니다.PIC32MM 마이크로컨트롤러는 32비트 MIPS32 프로세서인 MIPS Technologies M4K를 사용합니다.소비전력이 매우 낮고 25MHz로 제한됩니다.주요 장점은 MIPS의 16비트 명령을 지원하여 프로그램 크기를 훨씬 더 콤팩트하게 만드는 것입니다(약 40 。

PIC32MK

마이크로칩은 모터 제어, 산업 제어, 산업용 사물 인터넷([23]IIoT) 및 멀티 채널 CAN 애플리케이션에 특화된 PIC32MK 제품군을 2017년에 발표했습니다.

핵심 아키텍처

PIC 아키텍처의 특징은 다음과 같습니다.

  • 코드와 데이터 공간을 구분합니다(Harvard 아키텍처).
    • PIC32 제외:MIPS M4K 아키텍처의 개별 데이터 및 명령 경로는 시스템 버스 매트릭스 모듈에 의해 단일 공통 주소 공간에 효과적으로 통합됩니다.
  • 소수의 고정 길이 명령
  • 대부분의 명령은 단일 사이클(2클럭 사이클 또는 8비트 모델에서는 4클럭 사이클)로 브랜치 및 스킵에서 지연 사이클이 1회입니다.
  • (소스 오퍼랜드로서) 사용(즉, opcode에 부호화되지 않음)을 암시하는 1개의 어큐뮬레이터(W0)
  • 모든 RAM 위치는 연산 및 기타 [24]함수의 소스 및/또는 대상으로 레지스터 역할을 합니다.
  • 반환 주소를 저장하는 하드웨어 스택
  • 뱅킹을 통해 확장되는 소량의 주소 지정 가능 데이터 공간(패밀리에 따라 32, 128 또는 256바이트)
  • 데이터 공간에 매핑된 CPU, 포트 및 페리페럴 레지스터
  • ALU 상태 플래그가 데이터 공간에 매핑됩니다.
  • 프로그램 카운터는 데이터 공간에 매핑되어 쓰기 가능합니다(간접 점프를 구현하기 위해 사용됨).

RAM은 메모리와 레지스터의 양쪽 모두의 작업을 수행하고 RAM은 보통 레지스터 파일 또는 단순히 레지스터라고 불리기 때문에 메모리 공간과 레지스터 공간은 구분되지 않습니다.

데이터 공간(RAM)

PIC에는 범용 RAM으로 기능하는 레지스터 세트가 있습니다.온칩 하드웨어 자원을 위한 특수 목적 제어 레지스터도 데이터 공간에 매핑된다.메모리의 어드레서빌리티는 디바이스 시리즈에 따라 다르며, 모든 PIC 디바이스 유형에는 어드레싱을 추가 메모리로 확장하는 뱅킹메커니즘이 있습니다(단, 일부 디바이스 모델에는 뱅크가1개만 실장되어 있습니다).이후의 일련의 디바이스에는, 선택한 뱅크에 관계없이, 주소 지정 가능한 공간 전체를 커버할 수 있는 이동 명령이 있습니다.이전 장치에서는 레지스터 이동을 어큐뮬레이터를 통해 수행해야 합니다.

간접 어드레싱을 실장하기 위해서, 「파일 선택 레지스터」(FSR)와 「간접 레지스터」(INDF)가 사용됩니다.레지스터 번호는 FSR에 기입됩니다.그 후 INDF에 대한 읽기 또는 쓰기는 실제로 FSR에 의해 지시된 레지스터와의 사이에 이루어집니다.나중의 디바이스는, 차례차례 격납된 데이터에의 액세스의 효율을 높이기 위해서, 사후 및 사전 증감에 의해서, 이 개념을 확장합니다.이것에 의해, FSR 를 거의 스택 포인터(SP)와 같이 취급할 수도 있습니다.

핀 수가 많은 일부 PIC18 디바이스를 제외하고 외부 데이터 메모리는 직접 주소를 지정할 수 없습니다.단, 일반 I/O 포트를 사용하여 외부 메모리 및 기타 주변기기에 액세스하기 위한 병렬 버스 또는 시리얼 인터페이스를 구현할 수 있습니다(서브루틴을 사용). 단, 이러한 프로그램된 메모리 액세스는 PIC MCU의 네이티브메모리 액세스보다 (물론) 훨씬 느리다는 점에 주의해 주십시오.

코드 스페이스

코드 공간은 일반적으로 온칩 ROM, EPROM 또는 플래시 ROM으로 구현됩니다.일반적으로 외장 메모리인터페이스가 없기 때문에 외장 메모리에 코드를 저장하는 프로비저닝은 없습니다.단, PIC17은 예외이며 핀 수가 많은 PIC18 [25]디바이스를 선택합니다.

단어 크기

모든 PIC는 8비트 청크로 데이터를 처리(및 주소 지정)합니다.단, 코드 공간의 어드레스성 단위는 일반적으로 데이터 공간과 동일하지 않습니다.예를 들어 베이스라인(PIC12) 패밀리 및 미드레인지(PIC16) 패밀리의 PIC는 명령 폭과 같은 워드 사이즈로 주소 지정 가능한 프로그램 메모리(각각 12비트 또는 14비트)를 가진다.이와는 대조적으로 PIC18 시리즈에서는 프로그램 메모리는 명령 폭 16비트와 다른 8비트 증분(바이트) 단위로 어드레스 된다.

알기 쉽게 하기 위해 프로그램 메모리 용량은 보통 바이트가 아닌 (단일 워드) 명령 수로 표시됩니다.

스택

PIC에는 리턴 주소를 저장하기 위해 사용되는 하드웨어 콜스택이 있습니다.하드웨어 스택은 이전 디바이스에서는 소프트웨어에 액세스할 수 없었지만 18 시리즈디바이스에서는 변경되었습니다.

초기 시리즈에서는 범용 파라미터 스택에 대한 하드웨어 지원이 부족했지만 18 시리즈에서는 대폭 개선되어 18 시리즈 아키텍처가 고급 언어 컴파일러에 보다 친숙해졌습니다.

명령 집합

PIC의 순서는 로우엔드 PIC의 경우 약 35가지에서 하이엔드 PIC의 경우 80가지 이상의 순서로 다양합니다.명령어 집합에는 레지스터, 어큐뮬레이터와 리터럴 상수 또는 어큐뮬레이터와 레지스터에 대한 다양한 조작과 조건부 실행 및 프로그램 분기를 수행하는 명령이 포함됩니다.

비트 설정 및 테스트와 같은 일부 연산은 번호가 매겨진 레지스터에서 수행할 수 있지만, 바이오퍼랜드 연산에는 항상 W(어큐뮬레이터)가 포함되어 결과를 W 또는 다른 피연산자 레지스터에 다시 씁니다.상수를 로드하려면 W에 로드해야 다른 레지스터로 이동할 수 있습니다.오래된 코어에서는 모든 레지스터가 W를 통과하기 위해 이동해야 했지만 "하이엔드" 코어에서는 이것이 변경되었습니다.

PIC 코어에는 조건부 실행 및 분기에 사용되는 건너뛰기 명령이 있습니다.건너뛰기 명령은 "비트 설정일 경우 건너뛰기" 및 "비트 설정되지 않은 경우 건너뛰기"입니다.PIC18 이전의 코어에는 무조건적인 분기 명령만 있었기 때문에 조건부 점프는 조건부 건너뛰기(반대 조건 포함)에 이어 무조건적인 분기로 구현됩니다.스킵은 명령 직후의 단일 실행 조건에도 도움이 됩니다.지시사항을 건너뛸 수 있습니다.예를 들어 명령 시퀀스 "A의 경우 건너뛰기, B의 경우 건너뛰기, C의 경우 건너뛰기"는 A가 참이거나 B가 거짓이면 C를 실행합니다.

18시리즈는 섀도 레지스터를 구현했습니다.섀도 레지스터는 인터럽트 중에 여러 개의 중요한 레지스터를 저장하여 인터럽트를 수리할 때 프로세서 상태를 자동으로 저장하기 위한 하드웨어 지원을 제공합니다.

일반적으로 PIC 명령어는 5가지 클래스로 나뉩니다.

  1. 8비트 즉시("리터럴") 피연산자에 의한 작업 레지스터(WREG)에서의 동작.예.movlw(리터럴을 WREG로 이동),andlw(및 리터럴과 WREG).PIC 고유의 명령 중 하나는retlw는 즉시 WREG에 로드하여 반환됩니다.이것은 계산된 브랜치와 함께 룩업테이블을 생성하기 위해 사용됩니다.
  2. WREG 및 인덱스 레지스터를 사용한 조작.결과는 작업 레지스터에 쓸 수 있습니다)에 쓸 수 있습니다).addwf reg,w또는 선택한 레지스터(예:addwf reg,f).
  3. 비트 조작레지스터 번호와 비트 번호를 사용하여 비트 설정 또는 클리어, 세트/클리어 테스트 및 건너뛰기의 4가지 작업 중 하나를 수행합니다.후자는 조건부 분기를 수행하기 위해 사용됩니다.일반적인 ALU 상태 플래그는 번호부 레지스터에서 사용할 수 있으므로 "브런치 온 캐리 클리어"와 같은 작업이 가능합니다.
  4. 제어 전송앞서 설명한 건너뛰기 명령 외에 다음 두 가지 명령만 있습니다.goto그리고.call.
  5. 서브루틴으로부터의 복귀 등, 몇개의 제로 오퍼랜드 명령과sleep저전력 모드로 들어갑니다.

성능

아키텍처의 결정은 비용 대비 속도의 극대화를 지향합니다.PIC 아키텍처는 최초의 스칼라 CPU[citation needed] 설계 중 하나이며, 여전히 가장 단순하고 저렴한 설계 중 하나입니다.명령과 데이터가 서로 다른 소스에서 나오는 Harvard 아키텍처는 타이밍과 마이크로 회로 설계를 크게 간소화하여 클럭 속도, 가격 및 전력 소비에 도움이 됩니다.

PIC 명령 세트는 프로그램 공간에서 빠른 조회 테이블을 구현하는 데 적합합니다.이러한 검색에는 1개의 명령과2개의 명령 사이클이 필요합니다.이러한 방법으로 많은 기능을 모델링할 수 있습니다.최적화는 PIC의 비교적 큰 프로그램 공간(16F690의 4096 × 14비트 워드)과 내장 상수를 허용하는 명령 세트의 설계에 의해 촉진됩니다.예를 들어 브랜치 명령의 타깃은 W에 의해 인덱스화되어 이름 그대로 실행된다.즉, W에 리터럴을 붙여 반환한다.

인터럽트 지연은 3개의 명령 사이클로 일정합니다.외부 인터럽트는 4클럭의 명령 사이클과 동기화해야 합니다.그렇지 않으면 1개의 명령 사이클 지터가 발생할 수 있습니다.내부 인터럽트가 이미 동기화되어 있습니다.인터럽트 지연이 일정하기 때문에 PIC는 인터럽트에 의한 저지터 타이밍 시퀀스를 실현할 수 있습니다.그 예로는 비디오 동기 펄스 발생기가 있습니다.최신 PIC 모델에서는 동기 인터럽트 레이텐시가 3, 4 사이클이기 때문에 더 이상 해당되지 않습니다.

이점

  • 학습해야 할 작은 지침 세트
  • RISC 아키텍처
  • 속도 선택 가능한 내장 오실레이터
  • 간단한 엔트리 레벨, 인서킷 프로그래밍 및 인서킷 디버깅 PICkit 유닛을 50달러 미만으로 이용 가능
  • 저렴한 마이크로 컨트롤러
  • I²C, SPI, USB, UART, A/D, 프로그램 가능한 비교기, PWM, LIN, CAN, PSP, 이더넷[26] 등 다양한 인터페이스
  • DIL 패키지의 프로세서를 사용할 수 있기 때문에 취미용으로 사용하기 쉽게 되어 있습니다.

제한 사항

  • 어큐뮬레이터 1개
  • 많은 디바이스의 RAM 전체에 액세스하려면 Register-Bank 스위칭이 필요합니다.
  • 연산과 레지스터는 직교하지 않습니다. RAM 및/또는 즉시 상수를 지정할 수 있는 명령과 축전지만 사용할 수 있는 명령도 있습니다.

PIC18 시리즈에서는 다음과 같은 스택 제한이 해결되었지만 이전 코어에 적용됩니다.

  • 하드웨어 콜스택은 주소를 지정할 수 없기 때문에 프리엠프티브태스크 스위칭을 구현할 수 없습니다.
  • 소프트웨어 구현된 스택은 효율적이지 않기 때문에 재입력 코드를 생성하고 로컬 변수를 지원하는 것이 어렵습니다.

페이지 형식의 프로그램메모리의 경우는, CALL 및 GOTO용의 페이지 사이즈와 계산된 GOTO용의 페이지 사이즈(통상, 테이블 룩업에 사용됩니다)의 2개가 있습니다.예를 들어 PIC16에서는 CALL과 GOTO는 11비트의 어드레싱을 가지고 있기 때문에 페이지 사이즈는 2048 명령어입니다.PCL에 추가하는 계산 GOTO의 경우 페이지 크기는 256개의 명령어입니다.어느 경우든 상위 주소 비트는 PCLATH 레지스터에 의해 제공됩니다.이 레지스터는 페이지 간에 컨트롤이 전송될 때마다 변경해야 합니다.PCLATH는 인터럽트 [27]핸들러에서도 유지되어야 합니다.

컴파일러 개발

시판용 컴파일러가 몇 개 있습니다만, 2008년에 Microchip은 18F 24F 및 30/33F 프로세서 라인용 독자적인 C 컴파일러인 C18과 C30을 발매했습니다.

2013년 현재 마이크로칩은 MPLAB X에 사용할 수 있는 XC 시리즈 컴파일러를 제공하고 있습니다.마이크로칩은 최종적으로 C18과 같은 오래된 컴파일러를 단계적으로 폐기하고 새로운 [28]설계에 XC 시리즈 컴파일러를 사용할 것을 권장합니다.

PIC 어셈블리 언어 코드의 RISC 명령어 세트로 인해 흐름 전체를 이해하기 어려울 수 있습니다.간단한 매크로를 적절히 사용하면 PIC 어셈블리 언어의 가독성이 향상될 수 있습니다.예를 들어 원래의 Parallax PIC 어셈블러(SPASM)에는 매크로가 있어 W를 숨기고 PIC를 2주소 머신처럼 보이게 합니다.다음과 같은 매크로 명령이 있습니다.mov b, a(데이터를 주소 a에서 주소 b로 이동) 및add b, a(주소 a의 데이터를 주소 b의 데이터에 추가합니다).또한 다음과 같은 3개의 오퍼랜드 분기 매크로 명령을 제공하여 건너뛰기 명령을 숨깁니다.cjne a, b, dest(a와 b를 조합하고, 같지 않은 경우는 행선지로 점프합니다).

하드웨어 기능

일반적으로 PIC 디바이스의 특징은 다음과 같습니다.

변종

시리즈 내에서는 칩에 탑재된 하드웨어 자원에 따라 다음과 같은 디바이스의 종류가 다양합니다.

트렌드

EPROM 스토리지를 탑재한 1세대 PIC는 플래시 메모리를 탑재한 칩으로 거의 완전히 대체되었습니다.마찬가지로 PIC1650의 원래 12비트 명령어세트와 그 직계 하위 명령어세트는 14비트 및 16비트 명령어세트로 대체되었습니다.마이크로칩은 레거시 지원 또는 볼륨 주문용으로 일부 EPROM 기반 PIC의 OTP(일회성 프로그램 가능) 및 윈도우(UV 삭제 가능) 버전을 여전히 판매하고 있습니다.마이크로칩 웹사이트에는 OTP로서 전기적으로 소거할 수 없는 PIC가 나열되어 있습니다.이 칩은 UV 소거가 가능한 윈도우 버전을 주문할 수 있습니다.

부품 번호

PICMicro 부품 번호의 F는 일반적으로 PICMicro가 플래시 메모리를 사용하고 있으며 전자적으로 소거할 수 있음을 나타냅니다.반대로 C는 일반적으로 금형을 자외선에 노출해야만 지울 수 있음을 의미합니다(창이 있는 패키지 스타일을 사용하는 경우에만 가능).이 규칙의 예외는 EEPROM을 사용하기 때문에 전기적 소거가 가능한 PIC16C84입니다.

이름에 L이 있으면 부품이 낮은 전압으로 작동하며, 종종 주파수 제한이 적용됩니다.[29]3 - 3.6V의 엄격한 범위에서 저전압 작동을 위해 특별히 설계된 부품은 부품 번호에 J로 표시됩니다.이러한 부품은 최대 5V의 [29]입력으로 허용되므로 고유 I/O 허용성이 있습니다.

개발 도구

마이크로칩은 어셈블러, 링커, 소프트웨어 시뮬레이터 및 디버거를 포함하는 MPLAB X라는 프리웨어 IDE 패키지를 제공합니다.또한 MPLAB X와 깔끔하게 통합된 PIC10, PIC12, PIC16, PIC18, PIC24, PIC32 및 dsPIC용 C 컴파일러도 판매합니다.C 컴파일러의 무료 버전도 모든 기능과 함께 사용할 수 있습니다.그러나 무료 버전의 경우 60일 [30]후에 최적화가 비활성화됩니다.

여러 서드파티에서 PIC용 C 언어 컴파일러를 개발하고 있습니다.이 컴파일러의 대부분은 MPLAB에 통합되어 독자적인 IDE를 갖추고 있습니다.PICB용 풀기능 컴파일러입니다.PIC 마이크로컨트롤러를 프로그래밍하기 위한 ASIC 언어는 meLabs, Inc.에서 이용할 수 있습니다.Mikroelktronika는 C, BASIC 및 Pascal 프로그래밍 언어로 PIC 컴파일러를 제공합니다.

그래픽 프로그래밍 언어인 Flowcode는 8비트 및 16비트 PIC 장치를 프로그래밍하고 PIC 호환 C 코드를 생성할 수 있습니다.무료 데모부터 보다 완전한 프로페셔널 에디션까지 다양한 버전으로 존재합니다.

Proteus Design Suite는 일반적인 8비트 및 16비트 PIC 디바이스의 대부분을 PIC에 접속되어 있는 다른 회로와 함께 시뮬레이션할 수 있습니다.시뮬레이션할 프로그램은 Proteus 자체, MPLAB 또는 기타 개발 [31]도구 내에서 개발할 수 있습니다.

디바이스 프로그래머

마이크로컨트롤러 마이크로칩 "PIC" 패밀리용 2003년식 프로그래머입니다.RS 232 케이블로 PC 호환 개발 소프트웨어에 접속합니다.2003년에 이 유닛의 가격은 300 캐나다달러(당시 약 200달러)였습니다.

프로그래머」라고 불리는 디바이스는, 종래, 프로그램 코드를 타겟 PIC 에 삽입하기 위해서 사용됩니다.현재 마이크로칩이 판매하는 대부분의 PIC는 ICSP(In Circuit Serial Programming) 및/또는 LVP(Low Voltage Programming) 기능을 갖추고 있어 타깃 회로에 있는 동안 PIC를 프로그래밍할 수 있습니다.

마이크로칩은 MPLABPICKit 시리즈로 프로그래머/디버거를 제공합니다.MPLAB ICD4 및 MPLAB REAL ICE는 현재 프로페셔널 엔지니어링용 프로그래머 및 디버거이며, PICKit 3은 취미 생활자와 학생을 위한 저비용 프로그래머/디버거 라인입니다.

부트 로드

하이엔드 플래시 베이스의 PIC의 상당수는, 부트 로드라고 불리는 프로세스인 자기 프로그램메모리에 쓸 수도 있습니다.데모 보드는 RS-232USB 등의 인터페이스를 통해 사용자 프로그램을 로드할 수 있도록 공장 출하 시 프로그래밍된 소형 부트로더와 함께 제공되므로 프로그래머 장치가 필요하지 않습니다.

또는 사용자가 ICSP를 사용하여 PIC에 로드할 수 있는 부트로더 펌웨어도 있습니다.PIC에 부트로더를 프로그래밍한 후 RS232 또는 USB를 사용하여 특수 컴퓨터 소프트웨어와 함께 장치를 다시 프로그래밍할 수 있습니다.

ICSP에 비해 부트로더의 장점은 프로그래밍 속도가 빨라지고 프로그래밍 후 즉시 프로그램이 실행되며 동일한 케이블을 사용하여 디버깅 및 프로그래밍할 수 있다는 것입니다.

서드파티

호스트 컴퓨터에서 코드를 직접 다운로드할 수 있도록 ICSP에 의존하는 매우 단순한 설계부터 여러 공급 전압으로 장치를 검증할 수 있는 지능형 프로그래머까지 많은 PIC 마이크로 컨트롤러용 프로그래머가 있습니다.이러한 복잡한 프로그래머의 대부분은 사전에 프로그래밍된 PIC 자체를 사용하여 프로그래밍할 PIC에 프로그래밍 명령을 전송합니다.인서킷 프로그래밍을 지원하지 않는 초기 PIC 모델(대부분 EPROM 유형)을 프로그래밍하려면 지능형 프로그래머 유형이 필요합니다.

서드파티제의 프로그래머는, 독자적인 조립 계획으로부터, 자기 조립 키트, 및 완전하게 테스트 끝난 즉시 사용 가능한 유닛에 이르기까지 다양합니다.저레벨의 프로그래밍 시그널링(일반적으로 시리얼 포트 또는 병렬 포트에 접속하여 몇 개의 컴포넌트로 구성됨)을 PC가 필요로 하는 심플한 설계인 반면 프로그래밍 로직을 내장한 설계(일반적으로 시리얼 또는 USB 접속을 사용하여 고속이며 PIC 자체를 사용하여 구축되는 경우가 많다)도 있습니다.(관리할 수 있습니다.

디버깅

인서킷 디버깅

새로운 모든 PIC 디바이스는 CPU 코어에 내장된ICD(In-Circuit Debugging) 인터페이스를 갖추고 있어 MPLAB IDE와 연계하여 프로그램을 인터랙티브 디버깅할 수 있습니다.MPLAB ICDMPLAB REAL ICE 디버거는 ICSP 인터페이스를 사용하여 이 인터페이스와 통신할 수 있습니다.

단, 이 디버깅시스템에는 브레이크 포인트카운트 제한(오래된 디바이스에서는 1개, 새로운 디바이스에서는 3개), 일부 I/O 손실(디버깅 전용 회선이 있는 일부 표면 마운트 44핀 PIC 제외) 및 일부 온칩 기능의 손실이 있습니다.

일부 디바이스는 비용 또는 핀 부족으로 온칩 디버깅을 지원하지 않습니다.일부 대형 칩에는 디버깅모듈이 없습니다.이러한 디바이스를 디버깅하려면 전용 포트를 제공하는 도터보드에 탑재된 특별한 ICD 버전의 칩이 필요합니다.이러한 디버깅 칩 중 일부는 도터보드에서 선택 가능한 점퍼를 사용함으로써 여러 종류의 칩으로 동작할 수 있습니다.이것에 의해, 모든 온칩 주변 장치를 탑재하고 있는 것은 아닌, 대체로 같은 아키텍처를 1개의 ICD칩으로 교환할 수 있습니다.예를 들어, 12F690-ICD는 6개의 다른 부품 중 하나로 기능합니다.각 부품에는 1개, 5개 [32]중 일부 또는 모든 것이 탑재되어 있습니다.

인서킷 에뮬레이터

마이크로칩은 MPLAB ICE2000(병렬 인터페이스, USB 컨버터 사용 가능), 최신 MPLAB ICE4000(USB 2.0 연결), 그리고 최근 REAL ICE(USB 2.0 연결)의 3가지 완전한 회로에뮬레이터를 제공합니다.이러한 모든 도구는 일반적으로 타깃에서 실행되는 코드의 소스 수준 대화식 디버깅에 MPLAB IDE와 함께 사용됩니다.

운영 체제

PIC 프로젝트에서는 태스크 스케줄링 및 우선순위 부여에 FreeRTOS, AVIX RTOS, uRTOS, Salvo RTOS 등의 실시간 운영체제를 사용할 수 있습니다.

Serge Vakulenko의 오픈 소스 프로젝트는 2.11BSD를 RetroBSD라는 이름으로 PIC32 아키텍처에 적응시킵니다.이것에 의해, 온보드 개발 환경을 포함한 친숙한 Unix 타입의 operating system이 온보드 하드웨어의 [33]제약 범위내에서 마이크로 컨트롤러에 도입됩니다.

클론

시차

ParallaxParallax SX로 알려진 일련의 PIC마이크로 유사 마이크로 컨트롤러를 생산했습니다.현재 단종되었습니다.SX 마이크로컨트롤러는 BASIC 스탬프의 원래 버전에서 사용되는 PIC 마이크로컨트롤러와 구조적으로 유사하도록 설계되어 그 제품의 몇 가지 후속 버전에서 PIC를 대체했습니다.

Parallax의 SX는 12비트 명령어를 사용하는 8비트 RISC 마이크로컨트롤러로 75MHz(75MIPS)로 빠르게 작동합니다.여기에는 최대 4096개의 12비트 워드의 플래시 메모리와 최대 262바이트의 랜덤액세스 메모리, 8비트 카운터 및 기타 지원 로직이 포함됩니다.I²CSPI 인터페이스, UART, 주파수 발생기, 측정 카운터 PWM 및 시그마-델타 A/D 변환기를 에뮬레이트하는 소프트웨어 라이브러리 모듈이 있습니다.다른 인터페이스는 비교적 쓰기 쉬우며 기존 모듈을 변경하여 새로운 기능을 얻을 수 있습니다.

PKK 밀란드르

1886VE2U

러시아 PKK 밀란드르는 1886년 [34]시리즈로 PIC17 아키텍처를 사용하여 마이크로컨트롤러를 생산합니다.[35] [36] [37] 프로그램 메모리는 1886VE2U(러시아어: 1886е22 8)에서는 최대 64kB의 플래시 메모리 또는 1886VE5U(1886в55u)에서는 8kB의 EEPROM으로 구성됩니다.1886VE5U (1886в55)) ~ 1886VE7U (1886в77))는 군사 온도 범위 -60°C ~ +125°C에 대해 규정되어 있다.다양한 부품의 하드웨어 인터페이스에는 USB, CAN, I2C, SPI 및 A/D 및 D/A 컨버터가 포함됩니다.1886VE3U(1886VE3U)에는 GOST 28147-89에 따른 암호화 기능을 위한 하드웨어 액셀러레이터가 포함되어 있습니다.1886VE8U(1886в88))와 1886VE10U(1886в1010u)[38]라는 명칭의 방사선 경화 칩도 있습니다.

ELAN 마이크로일렉트로닉스

대만의 ELAN Microelectronics사는 PIC16 아키텍처를 기반으로 13비트 명령과 더 작은(6비트) RAM 주소 [39]공간을 갖춘 마이크로 컨트롤러 제품군을 만들고 있습니다.

홀텍 반도체

Holtek Semiconductor는 PIC16과 매우 유사한 14비트 명령 세트를 갖춘 매우 저렴한 마이크로 컨트롤러[40](수량[41] 8.5센트)를 다수 생산합니다.

아시아의 다른 제조사

저가 가전제품에서 볼 수 있는 아시아 제조사의 초저가 OTP 마이크로컨트롤러의 대부분은 PIC 아키텍처 또는 수정된 형태를 기반으로 합니다.대부분의 클론은 베이스라인 부품(PIC16C5x/PIC12C50x)만을 대상으로 합니다.마이크로칩은 특히 복사가 [42][43]터무니없을 때 일부 제조업체를 고소하려고 시도했지만 [44][45][better source needed]성공하지 못했습니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ http://ww1.microchip.com/downloads/en/DeviceDoc/39630C.pdf[베어 URL PDF]
  2. ^ "Archived copy" (PDF). Archived from the original (PDF) on 2012-03-23. Retrieved 2011-06-29.{{cite web}}: CS1 maint: 제목으로 아카이브된 복사(링크)
  3. ^ "PICmicro 패밀리 트리", PIC16F 세미나 프레젠테이션: CS1 유지 보수: 제목으로 아카이브된 복사 (링크)
  4. ^ a b "MOS DATA 1976", General Instrument 1976 Databook
  5. ^ a b General Instrument Corporation의 "1977년 데이터 카탈로그", Micro Electronics: CS1 유지보수: 제목으로 아카이브된 복사 (링크)
  6. ^ Plessey 위성 케이블 TV 집적회로 핸드북 1986년 5월
  7. ^ "Chip Hall of Fame: Microchip Technology PIC 16C84 Microcontroller". IEEE. 30 June 2017. Retrieved September 16, 2018.
  8. ^ Lawson, Eric (May 16, 2013). "Microchip Technology Delivers 12 Billionth PIC® Microcontroller to Leading Motor Manufacturer, Nidec Corporation". Microchip press release. Archived from the original on July 21, 2013. Retrieved December 21, 2017. Microchip delivered this 12 billionth MCU approximately 10 months after delivering its 11 billionth.
  9. ^ "PIC17C4x microcontroller data sheet" (PDF). Microchip Technology. 1996. DS30412C. Retrieved 2016-08-16.
  10. ^ "Microchip PIC micros and C - source and sample code". www.microchipc.com. Retrieved 7 April 2018.
  11. ^ "404 Microchip Technology". {{cite web}}:Cite는 일반 제목(도움말)을 사용합니다.
  12. ^ "PIC24H Family Overview" (PDF). Retrieved 23 September 2007.
  13. ^ "Archived copy". Archived from the original on 2009-02-02. Retrieved 2009-01-21.{{cite web}}: CS1 maint: 제목으로 아카이브된 복사(링크)
  14. ^ "32-bit PIC MCUs". Retrieved 13 October 2010.
  15. ^ "32-Bit MCUs - Microchip Technology". www.microchip.com. Retrieved 7 April 2018.
  16. ^ "Error 404 - Page not Found - Microchip Technology Inc". www.microchip.com. Retrieved 7 April 2018. {{cite web}}:Cite는 일반 제목(도움말)을 사용합니다.
  17. ^ "Welcome to the Imagination Blog". imgtec.com. Retrieved 7 April 2018.
  18. ^ "PIC32MZ EF Microchip Technology".
  19. ^ "Error 404 - Page not Found - Microchip Technology Inc". www.microchip.com. Retrieved 7 April 2018. {{cite web}}:Cite는 일반 제목(도움말)을 사용합니다.
  20. ^ "Error 404 - Page not Found - Microchip Technology Inc". www.microchip.com. Retrieved 7 April 2018. {{cite web}}:Cite는 일반 제목(도움말)을 사용합니다.
  21. ^ "Microchip Launches Lowest Power, Cost-Effective PIC32 Family - Microchip Technology". www.microchip.com. Retrieved 7 April 2018.
  22. ^ http://www.microchip.com/promo/pic32mm
  23. ^ "Error 404 - Page not Found - Microchip Technology Inc". www.microchip.com. Retrieved 7 April 2018. {{cite web}}:Cite는 일반 제목(도움말)을 사용합니다.
  24. ^ http://ww1.microchip.com/downloads/en/DeviceDoc/35007b.pdf[베어 URL PDF]
  25. ^ Rovnak, Tim (2003). "AN869: External Memory Interfacing Techniques for the PIC18F8XXX" (PDF). Microchip Technology. DS00869B. Retrieved 24 August 2009.
  26. ^ "Error 404 - Page not Found - Microchip Technology Inc". www.microchip.com. Retrieved 7 April 2018. {{cite web}}:Cite는 일반 제목(도움말)을 사용합니다.
  27. ^ "Slowing 208.80.153.50,10-192-48-43&c=1&t=43197.5553483796". massmind.org. Retrieved 7 April 2018.
  28. ^ "MPLAB® XC: Compiler Solutions". microchip.com. Retrieved 7 April 2018.
  29. ^ a b "3V Design Center". Retrieved 2 August 2011.
  30. ^ "MPLAB XC8 Compiler for PIC10/12/16/18 MCUs".
  31. ^ "How to Simulate PIC Microcontroller in Proteus Design Suite 8 - Circuits Gallery". 2013-08-02. Retrieved 2016-07-12.
  32. ^ 마이크로칩 문서 번호 DS51292R
  33. ^ "start - RetroBSD". retrobsd.org. Retrieved 7 April 2018.
  34. ^ "Milandr K1886VE: The PIC That Went to Russia". The CPU Shack. 10 March 2016. Retrieved 21 July 2016.
  35. ^ "Высокопроизводительные 8-ми разрядные КМОП микроконтроллеры 1886ВЕ1 и 1886ВЕ2. Перечень отличий от ближайшего функционального аналога PIC17C756A" [High-performance 8-bit CMOS microcontrollers 1886VE1 and 1886VE2. List of differences from the nearest functional analog PIC17C756A.] (PDF) (in Russian). Moscow: PKK Milandr. 7 September 2006. Archived from the original (PDF) on 5 February 2017. Retrieved 23 October 2017.
  36. ^ "Каталог продукции группы компаний "Миландр" 2017" [Product catalog of the Milandr Group 2017] (PDF) (in Russian). Moscow: PKK Milandr. Archived from the original (PDF) on 27 October 2017. Retrieved 18 April 2018.
  37. ^ "1886ая серия" [1886 series] (in Russian). Retrieved 21 July 2016.
  38. ^ "Part II: How to "open" microchip and what's inside? Z80, Multiclet, MSP430, PIC and more". ZeptoBars. 21 February 2013. Retrieved 11 April 2017.
  39. ^ "義隆電子股份有限公司義隆電子,再創未來!".
  40. ^ Carlson, Jay (15 September 2017). "Holtek HT-66". The Amazing $1 Microcontroller. Retrieved 8 July 2019.
  41. ^ Aufranc, Jean-Luc (3 August 2016). "What's the Cheapest MCU? My Try: Holtek HT48R002 8-bit MCU Selling for $0.085". CNX Software blog. Retrieved 8 July 2019.
  42. ^ "Microchip Technology files copyright infringement suit against MICON Design Technology CO. LTD" (PDF) (Press release). 29 January 1999. Retrieved 23 October 2017.
  43. ^ "Microchip Technology takes legal action against Shanghai Haier Integrated Circuit" (PDF) (Press release). 5 July 2007. Retrieved 23 October 2017.
  44. ^ Fuller, Brian (1 May 2013). "Fight Chinese Counterfeiting? Forget It". Electronics Business News.
  45. ^ "Haier Integrated chip to win the patent battle against US microchip". sb2a0 electronic components (blog). 18 May 2015. Retrieved 8 July 2019.

추가 정보

  • 마이크로컨트롤러의 이론과 응용, PIC18F, 제2판, M. Rafiquzaman, Wiley, 544페이지, 2018년, ISBN 978-119448419.
  • PIC18F 프로세서를 사용한 마이크로 컨트롤러 시스템 설계(Nicolas K).Haddad; IGI Global; 428페이지; 2017; ISBN 978-1683180005.
  • C의 PIC 마이크로컨트롤러 프로젝트: 베이직에서 어드밴스 (PIC18F용), 제2판, Dogan Ibrahim, Newnes; 660페이지, 2014년, ISBN 978-0080999241. (제1판)
  • 마이크로컨트롤러 프로그래밍: 마이크로칩 PIC, 산체스와 캔턴, CRC Press, 824페이지, 2006년, ISBN 978-0849371899. (제1판)
  • PIC 마이크로컨트롤러 프로젝트북, John Iovine, TAB; 272페이지, 2000, ISBN 978-0071354790. (제1판)

외부 링크