hotchpotch/wikipedia-multilingual-ir-pairs huggingface dataset:
송태섭 인물
농구 부원. 고등학교에서도 농구를 계속할까 헤매고 있었지만 아야코(이한나)에 한 눈에 반해 농구부에 입부하였다. 여성에게 전혀 인기있지 않고 많은 여성에게 계속 차여 있는 날, 타교의 여자 학생에게 차인 것을 우연히 목격하고 있던 사쿠라기 군단에 바보 취급 당한다. 많은 여성에게 고백하고 있는 것도 아야코에게의 미련을 끊기 때문에라는 묘사가 있다. 농구부에 복귀한 날, 아야코가 사쿠라기와 함께 걷고 있는 장면을 보자마자 사쿠라기와 아야코의 관계를 의심해 대싸움이 된다. 그 후도 체육관에서 눈에도 멈추지 않는 연속기술(이시이의 말)이나, 서로 뺨을 맞거나 하는 등 사쿠라기와는 문자 그대로 핵탄두에 핵탄두를 부딪친 상태(시오자키의 말)가 되었다. 그러나, 모두 여운이 없게 짝사랑의 상대에게 뒤돌아 봐 주지 않는 사이이기 때문에 사쿠라기와 의기 투합해, 다음날에는 연습에 사이좋게 어깨를 끼고 체육관에 나타났다. 사쿠라기에게서는 「료짱」이라고 불리고 있다(처음은 「료타군」이었다). 시합중에 사쿠라기가 핸드 터치하는 회수가 가장 많은 멤버이다. 문제아 군단으로 예외 없이 성적은 나쁘다. 하지만 아야코에 보이면 대단한 지력을 발휘한다. 또, 싸움의 실력은 상당히 강하고, 또 그룹의 리더를 분별할 수도 있는 것 같고, 미쓰이 등 불량 그룹이라는 싸움에서는 보스 미쓰이만을 집요하게 공격하고 있거나 사쿠라기 군단에 바보 취급 당했을 때도 곧바로 미토가 리더라고 인식하고 있었다. 다른 스타팅 멤버에 비하면 개인적인 에피소드가 약간 적고, 사쿠라기들이 입부할 때까지의 1년간 어떠한 활약을 해왔는지 등 불명한 점도 많다. 사쿠라기가 농구부에 들어갈 때까지는 미쓰이 등과의 싸움이 원인으로 입원하고 있었다. 소학교로부터 PG로, 다오카 감독에게서는 가나가와현 내에서도 다섯 손가락에 들어오는 가드로 꼽히는 실력자. 료난의 다오카 감독의 스카우트 제의를 거절하고 안자이 감독을 좇아 쇼호쿠에 들어간다. 속공을 비롯한 게임 메이크를 중심으로, 몸집이 작은 신체를 살린 스피드 플레이가 특색으로, 그 스피드는 타교의 플레이어로부터도 주목을 받지만 쇼요전에서는 신장차이에 괴로워했다. 또, 점프력도 있어, 10cm정도의 신장차이이면 슛 블록 하는 것은 어렵지 않다. 쇼요전 이후의 전 시합에 풀 출장한 유일한 선수이다. 중거리로부터의 점프 슛이나 자유투는 골칫거리. 귀의 피어스가 트레이드마크. 애니메이션에서는 왼팔에 흰색 리스트밴드를 두 개, 원작에서는 적과 흑의 리스트밴드를 두 개 장착하고 있다. 초반으로는 다른 스타팅 멤버에 비하면 활약의 장면이 약간 적고, 또 신장이 작기 때문에 팀의 위크포인트로서 다루어지는 것도 많았다. 정신적으로 약한 면도 있어, 산노우전의 전야에는 산노우의 비디오를 보고 위축되어 아야코의 앞에서 무기력인 발언을 했다. 그러나, 가이난전에서는 하나미치와의 리바운드 분쟁을 억제한 다카사고의 볼을 털어 하나미치의 덩크를 어시스트 하고, 료난전에서는 센도의 불의를 다해 다짐의 슛을 결정해 산노우전에서는 종반에 대해 게임의 흐름이나 상대의 심리 상황을 적확하게 판단해, 또 전의를 상실하고 있는 팀메이트를 질타해 붕괴 직전의 팀을 지지하는 등, 마키에게 인정되는만큼 PG로서 큰 성장을 보였다. 또, PG로서의 실력, 만일의 경우의 정신력은 신뢰가 높고, 산노우전에서는 쇼호쿠가 붕괴하는 중 안자이로부터 특공대장으로서 볼 운반을 맡는다. 아야코로부터 손바닥에「No. 1 가드」라고 매직으로 쓰여져 그 후 산노우에서도 최강의 사와기타와 후카쓰의 더블 팀을 드리블로 방치로 해, 루가와에게 기술 있는 패스를 내는 장면은 명장면이다. 사쿠라기에게 사기의 테크닉인 페이크를 가르쳤던 것도 미야기이다. 야스다와는 같은 중학교 출신으로 구면의 사이. 또, 루가와가 스타팅 멤버 중에서 가장 부담없이 이야기할 수 있는 인물이기도 했다. 아카기와 고구레의 은퇴 후, 쇼호쿠고 농구부의 신캡틴으로 취임. 농구를 계속하는 미쓰이를 「눈 위의 혹」이라고 발언한다. 리더십의 방법책에 영향을 받아 현재는 아카기 이상의 무서운 캡틴으로 울리고 있다. 주간 영 점프 특별독절 「피어스」에서 소학교 6학년 때의 아야코라고 생각되는 인물이 료타와 함께 그려지고 있어 난외에도 「아야코와 료타의 비밀」이라고 하는 기술이 있기 때문에 이 2명이 과거에 만나고 있던 일을 읽어낼 수 있다. 이 이야기속에서 료타가 몸에 걸치고 있는 피어스가 원래 아야코의 것이며, 아야코와 처음으로 만났을 때에 붙인 일이 그려져 있다. 소학교 3학년 때에 형을 바다에서 잃었다. 그 때에 함께 낚시를 데려 가서 주지 않았던 것에 화가 나 입에 담은 「바보 형!! 더 이상 돌아오지 말아라!!」라고 하는 말이 마지막 말이 되었기 때문에 매우 후회하고 있다.
펑추이판
펑추이판(풍쉬범,중국어 간체자: 冯淬帆, 정체자: 馮淬帆 Stanley Fung Shui-fan, 1944년 6월 1일 ~ 2025년 10월 31일)은 홍콩의 영화 배우이다.
조사리 (배우)
조사리(曹査里, 1950년 3월 24일 ~ )은 홍콩 출신의 영화 배우이자 영화 제작자이다.
풍극안
풍극안(馮克安; 1949년 9월 18일~2016년 3월 2일)은 홍콩의 영화 배우이자 영화 제작자다.
우마 (배우)
우마(午馬, 오마, 본명 펑훙위안(馮宏源, 풍굉원), 1942년 9월 22일~2014년 2월 4일)는 중화인민공화국 본토 태생으로 홍콩에서 주로 활약했던 중화민국 타이완 영화배우, 영화감독, 무술가, 영화연출가, 영화 기획가, 영화 무술감독이다.
정대만
미쓰이 히사시(三井 寿,みつい ひさし)는 이노우에 다케히코의 만화 작품 및 그것을 원작으로 하는 애니메이션 슬램 덩크에 등장하는 가공의 인물. 애니메이션으로의 성우는 일본은 오키아유 료타로,한국은 이정구(비디오판 초기), 박상일(비디오판 중기), 박상훈(비디오판 후기), 구자형(SBS판)이다.
정대만 인물
이 팀의 3주장 다케이시 중학(유니폼의 색은 흰색)때, 동중학을 가나가와현 대회 우승으로 이끌고, 또 동대회의 MVP를 획득한 천재 슈터. 대회 결승에서 우승에의 원동력이 된 안선생님의 「포기하면 거기서 시합 종료」라고 하는 말에 감명을 받아 안자이에게의 보은을 맹세코 북산에 들어간다. 입학 조속히 발군의 센스로 이미 에이스가 기대되지만, 연습 시합으로 좌슬의 상처를 입어 버리고, 거기에 동급생의 라이벌 채치수가 보인 활약을 보고 좌절한다. 진심으로 정말로 농구를 좋아하고, 입원 중에도 병원을 빠져 나가 농구를 하기도 했다. 스스로를 에이스나 슈퍼스타 등으로 칭하는 자신가로 과거는 조금 자만하고 있던 부분도 있어, 중학생 시절 MVP를 획득할 정도의 자타 모두 인정하는 천재였던 고로 프라이드가 높고, 좌절에 의한 영향으로 악의 길에 들어가 버린다. 2년간이나 자포자기인 생활을 불량 동료와 보내, 북산의 농구부에 대해 앙심을 품게 된다(다만, 농구의 미련이기 때문에인지 한번도 담배는 피우지 않았다). 인연이 생긴 송태섭와 강백호에게 복수를 걸쳐 불량 동료와 함께 농구부 괴멸을 시도하지만, 사쿠라기 군단의 활약에 의해 지는 일을 당하고, 또 준호의 입으로부터 그의 과거가 밝혀진다. 그의 본심을 깨달은 이영걸에게 「농구부로 돌아오고 싶지…」라고 지적되는 것도, 영걸을 때려 더욱 말리러 들어간 준호의 「또 함께 하자」라는 권유에도 귀를 기울이지 않고 폭언을 토해 준호의 분노를 사버린다. 그 후도 자포자기가 되어 날뛰지만, 거기에 한 때의 은인인 안선생님이 나타나 다 버리지 못하고 있던 농구에의 생각이 넘쳐 나와 해, 그 더없는 마음을 「안선생님, 선생님…농구가 하고 싶습니다…」라고 눈물을 흘리며 고백한다. 이 장면은 지금 작품, 소년 만화에 대해도 굴지의 명씬이다. 그 후, 늘리고 있던 장발을 잘라 수치도 세상소문도 버리고 농구부에 복귀한다. 그 이후, 부동의 스타팅 멤버로서 정착한다. 이러한 경위로부터 안선생님의 일을 진심으로 존경하고 있어, 안선생님에 대해 강백호가 무례한 태도를 취하거나 거만함을 말했을 때에는 누구보다 빨리 반응하고, 또, 안선생님의 판단이나 지시에는 전체 폭의 신뢰를 두고 있다. 덧붙여서 송태섭와의 싸움시에 받았다고 생각되는 상처가 좌악에 있어, 접힌 앞니 몇 개도 의치를 꽂고 있다. 또, 한 때 불량했기 때문에 부모에게서는 신뢰 받지 않은 모습이다. 사쿠라기에게서는 「밋치」라고 불리고 있다. 홋타나 그 동료, 또 중학생 시절의 팀메이트에게서는 「3」이라고 불려 존경받고 있다. 채치수와는 「사이가 좋지 않다」라고 평 되는 북산 멤버이지만, 강백호, 송태섭과는 산왕전에서 모두 포즈를 결정하는 등 묘하게 기분이 맞는 곳도 보인다. 농구 선수로서 천성의 소질을 가지지만, 2년의 공백기가 영향을 주어 체력에 큰 불안이 있다. 그 때문에 시합 종반에는 피로해 버리고 있는 것이 많아, 현 예선으로 상양전까지의 5시합과 능남전은 풀 출장하고 있지 않다. 또, 슛의 결정율도 시합에 의해 얼룩짐이 있다. 그러나, 완전하게 죽은 몸이 된 나중에 확실히 좀비와 같이 부활하고 믿을 수 없는 빅 플레이를 연발하고 시합을 뒤집는 것이 많이 있기 때문에 올라가는 상대에게 있어서는 매우 귀찮고, 한편 기분 나쁜 존재이다. 쓸데 없는 2년간을 보냈다고 하는 후회로부터 중학생 시절의 자신을 미화해 현재의 자신을 탓하는 경향에 있어, 능남전에서는 스태미너 끊어져로 쓰러진 후, 「왜 나는 저런 쓸데 없는 시간을…」이라고 울면서 후회하고 있는 장면이 있다. 다른 북산 스타팅 멤버에 비해 특히 높은 신체 능력이 있는 것은 아니지만, 중학 MVP의 칭호도 다테가 아니고, 산왕의 도진우감독이 칭찬했을 정도의 아름다운 슛 폼, 1학년 대 2·3 학년의 미니 게임에 대하고 센터로서 혼자서 강백호를 완전하게 막은 것, 시합의 흐름을 읽는 감각이나, 산왕전의 4포인트 플레이로 대표되듯이, 채치수를 가지고「역시 농구 센스 발군」이라고 말하게 하는 만큼으로, 틀림없이 쇼호쿠 No. 1의 농구 센스의 소유자. 현재로의 기술은 본인에게 있어서는 부족하지만, 이미 중학의 무렵을 웃돌고 있다고 여겨진다. 작중의 시합에서도 상양전, 그리고 마지막 시합인 산왕전에서는 키맨으로서 활약해, 모두 대차를 낼 수 있었던 상황으로부터 크게 점수 차를 줄였다. 체력이 없기 때문에 3P슈터로서 활약하는 장면이 눈에 띄지만, 중학 MVP 플레이어로서의 농구 센스는 아웃사이드로부터의 슛 이외의 장면에서도 여기저기 엿보인다(레이 업 슛·디펜스·패스 센스 등). 또, 농구부 복귀 이후의 묘사에서는 적지만, 미들 레인지로부터의 점프 슛의 타점은 높고, 보통 정도의 선수에서는 블록이 닿지 않는 만큼이다. IH 후는 채치수와 준호가 은퇴하는 가운데 부에 남아 겨울의 선발 대회에의 출장을 목표로 하면서 대학의 농구 추천 입학을 목표로 해 밤낮을 가리지 않고 연습한다. 공부면은 2년간의 어리석은 짓이 원인으로 좋지 않았던 것 같다. 영광·좌절·부활을 보여 준 인물인 것과 동시에, 작중 가장 인간미 있는 존재이며, 「나는 체념의 나쁜 남자」「이 소리가 나를 소생하게 한다, 몇 번이라도」 등 명대사도 많아 주간 소년 점프로 행해진 2번째의 인기 투표에서는 2위가 되었다(1회에서는 정대만은 미등장이었다). 작자 이노우에 다케히코에 의하면 당초는 정대만을 단순한 불량역으로 끝낼 예정이었지만, 체육관에서의 싸움의 장면이 예상외로 오래 끌어, 그 사이에 정대만에 감정이입했기 때문에 급거 예정을 변경해 북산 멤버에 가세하게 되었다고 한다. 또, 그러한 경위가 있기 때문에 정대만의 인기가 이 정도 높아진 것은 의외였다고 말한다. 물론 주인공은 아니지만, 지금도 등장 인물에서는 1, 2위를 다툴 정도로 남녀 묻지 않고 인기가 있는 캐릭터이다.
정대만 가족
부모님과 함께 사는 것으로 묘사되지만, 불량배로 지낸 일 때문에 부모님과의 사이는 그닥 좋지 않은 듯 하다. 인터하이를 앞두고 재시험을 위해 아카기의 집에서 공부를 할 때 부모님과 통화하는 모습이 잠깐 나왔다.
장오랑
장오랑(張午郎 , 1954년 ~ )은 홍콩 출신의 영화 배우이자 영화 제작자이다.
PIC 마이크로컨트롤러
PIC는 마이크로칩 테크놀로지에서 제조하는 마이크로컨트롤러 제품군으로, 원래 제너럴 인스트루먼트의 마이크로일렉트로닉스 부서에서 개발한 PIC1640에서 파생되었다. PIC라는 이름은 처음에는 Peripheral Interface Controller(주변 장치 인터페이스 컨트롤러)를 의미했지만, 이후 짧은 기간 동안 Programmable Intelligent Computer(프로그래밍 가능 지능형 컴퓨터)를 포함하도록 확장되었다. 그러나 현재는 PIC라는 이름이 어떤 용어의 두문자어로도 사용되지 않는다.
이 제품군의 첫 번째 부품은 1976년에 출시되었다. 2013년까지 회사는 120억 개 이상의 개별 부품을 출하했으며, 이는 다양한 임베디드 시스템에 사용되었다.
PIC 마이크로컨트롤러
PIC는 원래 최초의 상용 단일 칩 16비트 마이크로프로세서인 제너럴 인스트루먼트 CP1600의 주변 장치로 설계되었다. 필요한 핀 수를 제한하기 위해 CP1600은 인터페이스하기 어려운 복잡하고 고도로 다중화된 버스를 가지고 있었다. 따라서 다양한 특수 목적 주변 장치 외에도 제너럴 인스트루먼트는 범용 주변 장치로 프로그래밍 가능한 PIC1640을 만들었다. 자체 소형 RAM, ROM 및 전송을 제어하기 위한 간단한 CPU를 갖춘 이 장치는 CP1600 버스를 거의 모든 기존 8비트 주변 장치에 연결할 수 있었다. 이것이 상당한 성능을 제공했지만, GI의 마케팅은 제한적이었고 CP1600은 성공하지 못했다. 그러나 GI는 CP1600 인터페이스 대신 추가 범용 I/O를 갖춘 독립형 PIC1640인 PIC1650도 만들었다. 1985년 GI가 칩 부서를 분사하여 마이크로칩을 설립했을 때, CP1600의 판매는 거의 전무했지만, PIC1650과 그 후속 제품들은 자체적으로 주요 시장을 형성했으며, 이는 새로운 회사의 주요 제품 중 하나가 되었다.
PIC 마이크로컨트롤러
초기 모델은 코드 저장을 위해 마스크 롬만 사용했지만, 분사 이후 곧 EPROM으로, 그리고 EEPROM으로 업그레이드되어 최종 사용자가 자체 시설에서 장치를 프로그래밍할 수 있게 되었다. 현재 모든 모델은 프로그램 저장을 위해 플래시 메모리를 사용하며, 최신 모델은 PIC가 자체적으로 재프로그래밍할 수 있도록 허용한다. 이후 라인업은 상당한 변화를 겪었다. 메모리는 이제 8비트, 16비트, 최신 모델에서는 32비트 너비로 제공된다. 프로그램 명령어는 PIC 제품군에 따라 비트 수가 다르며, 12, 14, 16 또는 24비트 길이를 가질 수 있다. 명령어 집합도 모델에 따라 다르며, 더 강력한 칩은 디지털 신호 처리 기능을 위한 명령어를 추가한다. PIC 장치의 하드웨어 구현은 6핀 SMD, 8핀 DIP 칩부터 144핀 SMD 칩에 이르기까지 다양하며, 개별 I/O 핀, ADC 및 DAC 모듈, UART, I²C, CAN, 심지어 USB와 같은 통신 포트도 포함된다. 많은 유형에 대해 저전력 및 고속 변형이 존재한다.
제조사는 개발을 위한 컴퓨터 소프트웨어인 MPLAB X, 어셈블러 및 C/C++ 컴파일러, 그리고 MPLAB 및 PICKit 시리즈 하드웨어 프로그래머/디버거를 제공한다. 타사 및 일부 오픈 소스 도구도 사용할 수 있다. 일부 부품은 인-서킷 프로그래밍 기능을 가지고 있다. 저가 개발 프로그래머뿐만 아니라 대량 생산 프로그래머도 사용할 수 있다.
PIC 장치는 저렴한 비용, 광범위한 가용성, 큰 사용자 기반, 광범위한 애플리케이션 노트 모음, 저렴하거나 무료 개발 도구의 가용성, 직렬 프로그래밍, 재프로그래밍 가능한 플래시 메모리 기능으로 인해 산업 개발자와 아마추어 모두에게 인기가 많다.
PIC 마이크로컨트롤러 역사
원래 PIC는 제너럴 인스트루먼트의 새로운 CP1600 16비트 중앙 처리 장치(CPU)와 함께 사용하기 위한 것이었다. 당시 표준 40핀 이중 직렬 패키지(DIP) 칩에 16비트 데이터 및 주소 버스를 모두 넣기 위해 두 버스가 동일한 16개의 연결 핀을 공유했다. CPU와 통신하기 위해 장치는 버스에 있는 정보가 주소인지 데이터인지를 결정하기 위해 CPU의 다른 핀을 주시해야 했다. 한 번에 하나만 제시되었기 때문에 장치는 주소 모드로 전환되기를 기다렸다가 해당 주소가 메모리 맵 입출력 범위의 일부인지 확인하고 해당 주소를 "래치"한 다음 데이터 모드가 켜지기를 기다렸다가 값을 읽어야 했다. 또한 CP1600은 여러 외부 핀을 사용하여 통신하려는 장치를 선택하여 인터페이스를 더욱 복잡하게 만들었다.
PIC 마이크로컨트롤러 역사
CP1600에 장치를 인터페이스하는 것이 복잡할 수 있었기 때문에 GI는 필요한 모든 회로가 내장된 164x 시리즈 지원 칩도 출시했다. 여기에는 키보드 드라이버, 저장 장치용 카세트 데크 인터페이스, 그리고 유사한 시스템이 포함되었다. 더 복잡한 시스템을 위해 GI는 1975년에 1640 "프로그래밍 가능 인터페이스 컨트롤러"를 도입했다. 아이디어는 장치가 PIC를 사용하여 호스트 컴퓨터의 CP1600과의 모든 인터페이스를 처리하지만, 자체 내부 프로세서를 사용하여 연결된 실제 장치를 처리하는 것이었다. 예를 들어, 플로피 디스크 드라이브는 한쪽에서는 CPU와 통신하고 다른 한쪽에서는 플로피 디스크 컨트롤러와 통신하는 PIC로 구현될 수 있었다. 오늘날의 마이크로컨트롤러와 같은 이 아이디어에 따라 PIC는 사용자 장치 컨트롤러 코드를 작성하는 데 사용되는 소량의 고정 기억 장치(ROM)와 데이터 버퍼링 및 작업을 위한 별도의 랜덤 액세스 메모리(RAM)를 포함했다. 이들은 별도로 연결되어 PIC를 하버드 아키텍처 시스템으로 만들었고, 코드와 데이터가 별도의 내부 경로에 저장되고 관리되도록 했다.
PIC 마이크로컨트롤러 역사
이론적으로, CP1600 CPU와 PIC1640 장치 컨트롤러의 조합은 메인프레임 컴퓨터에서 볼 수 있는 채널 I/O 컨트롤러와 성능과 기능이 유사한 고성능 장치 제어 시스템을 제공했다. 예를 들어, 플로피 컨트롤러 예시에서 단일 PIC는 드라이브를 제어하고, 성능 향상을 위해 적절한 양의 버퍼링을 제공하며, 직접 메모리 접근(DMA) 또는 CPU의 비교적 간단한 코드를 통해 호스트 컴퓨터와 데이터를 주고받을 수 있었다. 이 접근 방식의 단점은 비용이었다. PIC는 키보드와 같은 저속 장치에는 필요하지 않았지만, 많은 작업에서 완전한 시스템을 구축하기 위해 하나 이상의 PIC가 필요할 수 있었다.
PIC 마이크로컨트롤러 역사
이 설계 개념은 여러 가지 매력적인 기능을 가지고 있었지만, 제너럴 인스트루먼트는 CP1600을 강력하게 마케팅하지 않고 대규모 고객과의 거래만 선호하며 저가 시장을 무시했다. 이로 인해 시스템 채택이 매우 적었으며, 인텔리비전이 약 3백만 대 가량으로 유일하게 광범위하게 사용되었다. 그러나 GI는 1976년에 CP1600 없이 사용하도록 설계된 독립형 모델 PIC1650을 도입했다. 같은 해에 도입된 인텔 MCS-48만큼 강력하지는 않았지만, 더 저렴했고 시장을 찾았다. 후속 제품으로는 12비트에서 13비트로 확장된 명령어와 두 배의 주소 공간(64바이트 RAM 및 1024워드 ROM)을 제공하는 PIC1670이 포함되었다. GI가 1985년에 칩 부서를 분사하여 마이크로칩 테크놀로지를 설립했을 때 CP1600의 생산은 중단되었다. 그러나 이때까지 PIC1650은 다양한 역할에 사용하는 고객층을 넓게 확보했으며, PIC는 새로운 회사의 주요 제품 중 하나가 되었다.
PIC 마이크로컨트롤러 역사
1985년, 제너럴 인스트루먼트는 마이크로일렉트로닉스 부서를 매각했고, 새로운 소유주들은 당시 대부분 구식이었던 거의 모든 것을 취소했다. 그러나 PIC는 내부 EPROM으로 업그레이드되어 프로그래밍 가능한 채널 I/O 컨트롤러를 생산했다. 동시에 영국의 플레시는 GI 설계를 기반으로 PIC1650 및 PIC1655라는 NMOS 프로세서를 출시했으며, 동일한 명령어 집합을 사용하고 사용자 마스크 프로그래밍 가능하거나 자동 다이얼러 및 키보드 인터페이스용으로 미리 프로그래밍된 버전을 사용했다.
1998년 마이크로칩은 성공적인 직렬 프로그래밍 가능 PIC16C84의 플래시 프로그래밍 및 지울 수 있는 버전인 PIC16F84를 출시했다. 2001년, 마이크로칩은 더 많은 플래시 프로그래밍 가능 장치를 도입했으며, 2002년에는 본격적인 생산을 시작했다.
오늘날, 다양한 온보드 주변 장치( 직렬 통신 모듈, UART, 모터 제어 커널 등)와 256워드에서 64K 워드 이상의 프로그램 메모리를 갖춘 PIC가 엄청나게 다양하게 제공된다. "워드"는 하나의 어셈블리어 명령어로, 특정 PIC 마이크로컨트롤러 시리즈에 따라 길이가 8비트에서 16비트까지 다양하다.
PIC 마이크로컨트롤러 역사
PIC와 PICmicro는 이제 마이크로칩 테크놀로지의 등록 상표이지만, 접두사 "PIC"는 더 이상 어떤 용어의 두문자어로 사용되지 않는다. 일반적으로 PIC는 "Programmable Intelligent Computer"(프로그래밍 가능한 지능형 컴퓨터)의 약자로 알려져 있는데, 이는 CP1600 마이크로컴퓨터와 함께 작동하도록 특별히 설계된 PIC1640의 1976년 원래 의미인 "Programmable Interface Controller"(프로그래밍 가능한 인터페이스 컨트롤러)를 대체하여 1977년 제너럴 인스트루먼트의 PIC1640 및 PIC1650 마이크로컴퓨터 제품군에 대한 접두사였다. 제너럴 인스트루먼트의 "PIC 시리즈 마이크로컴퓨터"는 ROM, RAM, CPU 및 인터페이스를 위한 8비트 입출력(I/O) 레지스터를 포함하는 금속 산화물 반도체 대규모 집적 회로(MOS/LSI) 8비트 마이크로컴퓨터 시리즈였다. 당시 이 기술은 MOS 회로의 장점과 대규모 집적 회로의 장점을 결합하여 높은 트랜지스터 밀도를 가진 복잡한 집적 회로를 만들 수 있게 했다.
1993년에 출시된 마이크로칩 16C84 (PIC16x84)는 온칩 EEPROM 메모리를 탑재한 최초의 마이크로칩 CPU였다.
2013년까지 마이크로칩은 매년 10억 개 이상의 PIC 마이크로컨트롤러를 출하했다.
PIC 마이크로컨트롤러 장치 제품군
PIC 마이크로칩은 하버드 아키텍처로 설계되었으며, 다양한 장치 제품군으로 제공된다. 베이스라인 및 미드레인지 제품군은 8비트 데이터 메모리를 사용하고, 하이엔드 제품군은 16비트 데이터 메모리를 사용한다. 최신 시리즈인 PIC32MZ는 MIPS 기반의 32비트 마이크로컨트롤러이다. 명령어 워드 크기는 12비트 (PIC10 및 PIC12), 14비트 (PIC16), 24비트 (PIC24 및 dsPIC)이다. 기계어 명령어의 이진 표현은 제품군에 따라 다르며 PIC 명령어 목록에 표시되어 있다.
이러한 제품군 내에서 장치는 PICnnCxxx(CMOS) 또는 PICnnFxxx(플래시)로 지정될 수 있다. "C" 장치는 일반적으로 "새로운 개발에 부적합"(마이크로칩에서 적극적으로 홍보하지 않음)으로 분류된다. "C" 장치의 프로그램 메모리는 OTP, ROM 또는 EEPROM으로 다양하게 설명된다. 2016년 10월 현재 "생산 중"으로 분류된 유일한 OTP 제품은 pic16HV540이다. 쿼츠 창(UV 소거용)이 있는 "C" 장치는 일반적으로 더 이상 사용할 수 없다.
PIC 마이크로컨트롤러 장치 제품군
이 장치들은 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)로 기록되었다.
PIC 마이크로컨트롤러 장치 제품군
ROM 주소 공간은 512이며 각 512워드 페이지의 절반만 주소를 지정할 수 있다. 즉, CALL 명령어는 주소의 하위 9비트를 지정하지만, 해당 주소의 하위 8비트만 명령어의 매개변수이며, 9번째 비트(비트 8)는 CALL 명령어 자체에 의해 암시적으로 0으로 지정된다.
조회 테이블은 RETLW 명령어 테이블에 대한 계산된 GOTO(PCL 레지스터 할당)를 사용하여 구현된다. RETLW는 서브루틴 반환을 수행하고 동시에 W 레지스터에 명령어의 일부인 8비트 즉시 상수를 로드한다.
이 "베이스라인 코어"는 인터럽트를 지원하지 않는다. 모든 I/O는 폴링되어야 한다. 인터럽트 지원 및 4단계 콜 스택을 갖춘 일부 "향상된 베이스라인" 변형이 있다.
PIC 마이크로컨트롤러 장치 제품군
PIC10F32x 장치는 256 또는 512워드의 중간 범위 14비트 폭 코드 메모리, 64바이트 SRAM 레지스터 파일, 8단계 깊이의 하드웨어 스택을 특징으로 한다. 이 장치들은 6핀 SMD 및 8핀 DIP 패키지(2핀 미사용)로 제공된다. 입력 전용 1개 및 I/O 핀 3개가 제공된다. 복잡한 인터럽트 세트가 제공된다. 클록은 소프트웨어를 통해 선택 가능한 속도를 선택할 수 있는 16MHz의 내부 보정 고주파 발진기와 31kHz 저전력 소스이다.
이 장치들은 14비트 폭의 코드 메모리와 향상된 8단계 깊이의 호출 스택을 특징으로 한다. 명령어 집합은 베이스라인 장치와 거의 다르지 않지만, 두 개의 추가 opcode 비트 덕분에 128개의 레지스터와 2048개의 코드 워드를 직접 주소 지정할 수 있다. 몇 가지 추가적인 기타 명령어와 두 개의 추가 8비트 리터럴 명령어(add 및 subtract)가 있다. 미드레인지 코어는 PIC12 및 PIC16으로 분류된 대부분의 장치에서 사용할 수 있다.
PIC 마이크로컨트롤러 장치 제품군
레지스터 공간의 첫 32바이트는 특수 목적 레지스터에 할당된다. 나머지 96바이트는 범용 RAM으로 사용된다. 뱅크 RAM이 사용되는 경우 상위 16개 레지스터(0x70–0x7F)는 전역이며, RAM 뱅크 선택 비트를 포함하는 STATUS 레지스터를 포함하여 몇 가지 가장 중요한 특수 목적 레지스터도 전역이다. (다른 전역 레지스터는 FSR 및 INDF, 프로그램 카운터 PCL의 하위 8비트, PC 상위 프리로드 레지스터 PCLATH, 마스터 인터럽트 제어 레지스터 INTCON이다)
PCLATH 레지스터는 PCL 레지스터에 쓰여진 8비트 또는 GOTO 또는 CALL 명령에 의해 제공되는 11비트가 사용 가능한 ROM 공간을 주소 지정하기에 불충분할 때 상위 명령어 주소 비트를 제공한다.
PIC17 시리즈는 인기를 얻지 못했고 PIC18 아키텍처로 대체되었다 (그러나 아래 클론을 참조). PIC17 시리즈는 새로운 디자인에 권장되지 않으며, 사용자에게 가용성이 제한될 수 있다.
이전 코어에 비해 향상된 점은 16비트 폭의 opcode(많은 새로운 명령어를 허용)와 16단계 깊이의 호출 스택이다. PIC17 장치는 40핀에서 68핀 패키지로 생산되었다.
PIC 마이크로컨트롤러 장치 제품군
PIC17 시리즈는 여러 가지 중요한 새로운 기능을 도입했다.
중대한 한계점은 RAM 공간이 256바이트(특수 기능 레지스터 26바이트, 범용 RAM 232바이트)로 제한되었으며, 더 많은 RAM을 지원하는 모델에서는 불편한 뱅크 전환이 필요했다.
2000년에 마이크로칩은 PIC18 아키텍처를 출시했다. PIC17 시리즈와 달리 이 아키텍처는 매우 인기가 많았으며, 현재 생산 중인 장치 변형이 많다. 어셈블리어로 프로그래밍되는 경우가 많았던 이전 장치와 달리, C 언어가 주된 개발 언어가 되었다.
PIC18 시리즈는 PIC17 시리즈의 대부분의 기능과 명령어를 계승하면서 다음과 같은 여러 가지 중요한 새 기능을 추가했다.
RAM 공간은 12비트이며, 4비트 뱅크 선택 레지스터(BSR)와 각 명령어의 8비트 오프셋을 사용하여 주소 지정된다. 각 명령어의 추가 "액세스" 비트는 뱅크 0(a=0)과 BSR에 의해 선택된 뱅크(a=1) 중 하나를 선택한다.
PIC 마이크로컨트롤러 장치 제품군
STATUS, WREG, BSR 레지스터에는 1단계 스택도 사용할 수 있다. 이들은 모든 인터럽트 시 저장되며, 복귀 시 복원될 수 있다. 인터럽트가 비활성화된 경우, s 비트를 설정하여 서브루틴 호출/복귀 시에도 사용할 수 있다 (명령어에 ", FAST"를 추가).
자동 증가/감소 기능은 제어 비트를 제거하고 FSR당 4개의 새로운 간접 레지스터를 추가하여 향상되었다. 어떤 간접 파일 레지스터에 접근하는지에 따라 FSR을 후감소, 후증가 또는 사전 증가시키거나, W를 FSR에 추가하여 유효 주소를 형성할 수 있다.
더 고급 PIC18 장치에서는 "확장 모드"를 사용할 수 있어 컴파일된 코드에 더욱 유리한 주소 지정을 제공한다.
PIC18 장치는 여전히 개발 중이며 (2021년) CIP (코어 독립형 주변 장치)가 장착되어 있다.
2001년, 마이크로칩은 dsPIC 시리즈 칩을 출시했으며, 2004년 말부터 대량 생산에 들어갔다. 이들은 마이크로칩의 첫 번째 본질적으로 16비트 마이크로컨트롤러이다. PIC24 장치는 범용 마이크로컨트롤러로 설계되었다. dsPIC 장치는 추가로 디지털 신호 처리 기능을 포함한다.
PIC 마이크로컨트롤러 장치 제품군
이전 PIC 아키텍처와 여전히 유사하지만, 상당한 개선 사항이 있다.
일부 기능은 다음과 같다:
dsPIC는 마이크로칩의 XC16 컴파일러(이전에는 C30으로 불림)를 사용하여 C로 프로그래밍할 수 있으며, 이는 GCC의 변형이다.
명령어 ROM은 24비트 폭이다. 소프트웨어는 ROM에 16비트 워드로 접근할 수 있으며, 짝수 워드에는 각 명령어의 최하위 16비트가, 홀수 워드에는 최상위 8비트가 저장된다. 홀수 워드의 상위 절반은 0으로 읽힌다. 프로그램 카운터는 23비트 폭이지만, 최하위 비트는 항상 0이므로 수정 가능한 비트는 22개이다.
명령어는 두 가지 주요 유형으로 제공되며, 가장 중요한 연산(더하기, XOR, 시프트 등)은 두 가지 형식을 모두 허용한다.
마이크로칩의 PIC32M 제품은 PIC 상표를 사용하지만, 완전히 다른 아키텍처를 가지고 있으며, 여기서는 간단히 설명한다.
PIC 마이크로컨트롤러 장치 제품군
2007년 11월, 마이크로칩은 MIPS32 M4K 코어를 기반으로 하는 32비트 마이크로컨트롤러 제품군인 PIC32MX를 출시했다. 이 장치는 GCC 컴파일러의 변형인 PIC32 MCU용 마이크로칩 MPLAB C 컴파일러를 사용하여 프로그래밍할 수 있다. 현재 생산 중인 첫 18개 모델(PIC32MX3xx 및 PIC32MX4xx)은 핀-투-핀 호환되며 PIC24FxxGA0xx 제품군(16비트) 장치와 동일한 주변 장치 세트를 공유하여 공통 라이브러리, 소프트웨어 및 하드웨어 도구를 사용할 수 있다. 오늘날, 작은 QFN 패키지의 28핀부터 이더넷, CAN 및 USB OTG를 갖춘 고성능 장치에 이르기까지 모든 중간 범위 32비트 마이크로컨트롤러 제품군이 제공된다.
PIC32 아키텍처는 마이크로칩 포트폴리오에 다음과 같은 여러 가지 새로운 기능을 도입했다.
2013년 11월, 마이크로칩은 MIPS M14K 코어를 기반으로 하는 PIC32MZ 시리즈 마이크로컨트롤러를 출시했다. PIC32MZ 시리즈에는 다음이 포함된다.
2015년, 마이크로칩은 업데이트된 MIPS M5150 Warrior M-클래스 프로세서를 사용하는 PIC32MZ EF 제품군을 출시했다.
PIC 마이크로컨트롤러 장치 제품군
2017년, 마이크로칩은 통합 그래픽 컨트롤러, 그래픽 프로세서 및 32MB DDR2 DRAM을 특징으로 하는 PIC32MZ DA 제품군을 도입했다.
2016년 6월, 마이크로칩은 저전력 및 저비용 애플리케이션에 특화된 PIC32MM 제품군을 출시했다. PIC32MM은 코어 독립형 주변 장치, 500 nA까지의 절전 모드, 4 x 4 mm 패키지를 특징으로 한다. PIC32MM 마이크로컨트롤러는 MIPS 테크놀로지스 M4K, 32비트 MIPS 아키텍처 프로세서를 사용한다. 이들은 매우 낮은 전력 소비를 위해 설계되었으며 25 MHz로 제한된다. 주요 장점은 MIPS의 16비트 명령어를 지원하여 프로그램 크기를 훨씬 더 압축할 수 있다는 것이다 (약 40%).
마이크로칩은 2017년에 모터 제어, 산업 제어, 산업용 사물 인터넷(IIoT) 및 다중 채널 CAN 애플리케이션에 특화된 PIC32MK 제품군을 출시했다.
마이크로칩의 PIC32C 제품 또한 PIC 상표를 사용하지만, 완전히 다른 마이크로아키텍처를 가지고 있다. PIC32C 제품은 Arm 프로세서 아키텍처를 사용하며, Cortex-M0+, M4, M7, M23, M33 코어를 사용하는 다양한 라인업을 포함한다. 이들은 마이크로칩이 아트멜 인수를 통해 인수한 Arm 기반 SAM 시리즈 MCU에 추가하여 제공된다.
마이크로칩의 PIC64 제품도 PIC 상표를 사용하지만, 완전히 다른 아키텍처를 가지고 있으며, 여기서는 간략하게만 설명한다.
2024년 7월, 마이크로칩은 고성능 멀티 코어 마이크로프로세서인 PIC64 시리즈를 출시했다. 이 시리즈는 초기에는 RISC-V 명령어 집합을 사용할 예정이지만, 마이크로칩은 ARM Cortex-A 코어를 탑재한 버전도 계획하고 있다. PIC64 시리즈에는 지능형 엣지 애플리케이션에 중점을 둔 PIC64GX 라인과 방사선 경화 처리되어 우주 비행 애플리케이션에 중점을 둔 PIC64-HPSC 라인이 포함될 예정이다.
PIC 마이크로컨트롤러 코어 아키텍처
PIC 아키텍처(무관한 PIC32 및 PIC64 제외)는 PDP-8 또는 아폴로 가이던스 컴퓨터와 같은 단일 피연산자 누산기 기계이다. 그 특징은 다음과 같다.
RAM이 메모리와 레지스터의 역할을 모두 수행하며, RAM은 일반적으로 "레지스터 파일" 또는 단순히 "레지스터"라고 불리기 때문에 메모리 공간과 레지스터 공간 사이에 구별이 없다.
PIC는 범용 RAM 역할을 하는 레지스터 세트를 가지고 있다. 온칩 하드웨어 리소스에 대한 특수 목적 제어 레지스터도 데이터 공간에 매핑된다. 메모리의 주소 지정 가능성은 장치 시리즈에 따라 다르며, 모든 PIC 장치 유형은 추가 메모리에 대한 주소 지정을 확장하기 위한 일부 뱅크 전환 메커니즘을 가지고 있다(그러나 일부 장치 모델은 하나의 뱅크만 구현되어 있다). 최신 시리즈의 장치는 선택된 뱅크와 관계없이 전체 주소 지정 가능한 공간을 커버할 수 있는 이동 명령어를 특징으로 한다. 이전 장치에서는 모든 레지스터 이동이 누산기를 통해 이루어져야 했다.
PIC 마이크로컨트롤러 코어 아키텍처
간접 주소 지정을 구현하기 위해 "파일 선택 레지스터"(FSR)와 "간접 레지스터"(INDF)가 사용된다. FSR에 레지스터 번호가 기록되면, INDF에 대한 읽기 또는 쓰기는 실제로 FSR이 가리키는 레지스터에서 이루어진다. 최신 장치는 순차적으로 저장된 데이터에 효율적으로 접근하기 위해 이 개념을 후증가 및 사전 증가/감소 기능으로 확장했다. 이는 FSR을 스택 포인터(SP)처럼 다룰 수 있게 해준다.
일부 PIC18 장치를 제외하고는 외부 데이터 메모리가 직접 주소 지정되지 않는다. 그러나 일반 I/O 포트는 외부 메모리 및 기타 주변 장치에 접근하기 위한 병렬 버스 또는 직렬 인터페이스를 구현하는 데 사용될 수 있다(서브루틴 사용). 단, 이러한 프로그래밍된 메모리 접근은 PIC MCU의 네이티브 메모리 접근보다 훨씬 느리다는 점에 유의해야 한다.
코드 공간은 일반적으로 온칩 ROM, EPROM 또는 플래시 ROM으로 구현된다. 일반적으로 외부 메모리 인터페이스가 없기 때문에 외부 메모리에 코드를 저장하는 기능은 제공되지 않는다. 예외는 PIC17 및 일부 고핀 수 PIC18 장치이다.
PIC 마이크로컨트롤러 코어 아키텍처
모든 PIC는 데이터를 8비트 단위로 처리(및 주소 지정)한다. 그러나 코드 공간의 주소 지정 단위는 일반적으로 데이터 공간과 동일하지 않다. 예를 들어, 베이스라인(PIC12) 및 미드레인지(PIC16) 제품군에 속하는 PIC는 명령어 너비와 동일한 워드 크기(각각 12비트 또는 14비트)로 프로그램 메모리를 주소 지정한다. 대조적으로, PIC18 시리즈에서는 프로그램 메모리가 8비트 단위(바이트)로 주소 지정되는데, 이는 16비트 명령어 너비와 다르다.
명확성을 위해 프로그램 메모리 용량은 일반적으로 바이트 단위가 아닌 (단일 워드) 명령어 수로 표시된다.
PIC는 반환 주소를 저장하는 데 사용되는 하드웨어 콜 스택을 가지고 있다. 하드웨어 스택은 초기 장치에서는 소프트웨어로 접근할 수 없었지만, PIC18 시리즈 장치에서 변경되었다.
범용 매개변수 스택에 대한 하드웨어 지원은 초기 시리즈에서는 부족했지만, PIC18 시리즈에서 크게 개선되어 PIC18 시리즈 아키텍처가 고급 언어 컴파일러에 더 친화적이게 되었다.
PIC 마이크로컨트롤러 코어 아키텍처
PIC 명령어 집합은 로우엔드 PIC의 약 35개 명령어에서 하이엔드 PIC의 80개 이상 명령어로 다양하다. 명령어 집합에는 레지스터에 직접, 누산기와 리터럴 상수 또는 누산기와 레지스터에 대한 다양한 작업을 수행하는 명령어뿐만 아니라 조건부 실행 및 프로그램 분기를 위한 명령어 등도 포함된다.
비트 설정 및 테스트와 같은 몇 가지 작업은 모든 번호가 지정된 레지스터에서 수행할 수 있지만, 2-입력 산술 연산은 항상 W(누산기)를 포함하며, 결과를 W 또는 다른 피연산자 레지스터에 다시 기록한다. 상수를 로드하려면 다른 레지스터로 이동하기 전에 W에 로드해야 한다. 이전 코어에서는 모든 레지스터 이동이 W를 통해 이루어져야 했지만, "하이엔드" 코어에서는 변경되었다.
PIC 마이크로컨트롤러 코어 아키텍처
PIC 코어는 조건부 실행 및 분기에 사용되는 건너뛰기 명령어를 가지고 있다. 건너뛰기 명령어는 "비트가 설정되어 있으면 건너뛰기" 및 "비트가 설정되어 있지 않으면 건너뛰기"이다. PIC18 이전 코어에는 무조건 분기 명령어만 있었기 때문에 조건부 점프는 조건부 건너뛰기(반대 조건)와 무조건 분기를 연속하여 구현된다. 건너뛰기 명령어는 어떤 단일 후속 명령어를 조건부로 실행하는 데도 유용하다. 건너뛰기 명령어를 건너뛸 수 있다. 예를 들어, "만약 A이면 건너뛰기; 만약 B이면 건너뛰기; C" 명령어 시퀀스는 A가 참이거나 B가 거짓이면 C를 실행한다.
PIC18 시리즈는 섀도우 레지스터를 구현했다. 이들은 인터럽트 중에 여러 중요한 레지스터를 저장하여 인터럽트 서비스 시 프로세서 상태를 자동으로 저장하는 하드웨어 지원을 제공하는 레지스터이다.
일반적으로 PIC 명령어는 다섯 가지 범주로 나뉜다.
PIC 마이크로컨트롤러 코어 아키텍처
워킹 레지스터(WREG)와 8비트 즉시("리터럴") 피연산자에 대한 연산. 예: `movlw` (리터럴을 WREG로 이동), `andlw` (WREG와 리터럴을 AND). PIC에 특유한 명령어 중 하나는 `retlw`인데, WREG에 즉시 값을 로드하고 반환하는 것으로, 계산된 분기와 함께 순람표를 생성하는 데 사용된다.
아키텍처 결정은 속도 대비 비용 비율을 극대화하는 데 중점을 둔다. PIC 아키텍처는 최초의 스칼라 CPU 설계 중 하나였으며 여전히 가장 간단하고 저렴한 아키텍처 중 하나이다. 명령어와 데이터가 별도의 소스에서 오는 하버드 아키텍처는 타이밍과 마이크로회로 설계를 크게 단순화하며, 이는 클록 속도, 가격 및 전력 소비에 이점을 제공한다.
PIC 마이크로컨트롤러 코어 아키텍처
PIC 명령어 집합은 프로그램 공간에서 빠른 조회 테이블을 구현하는 데 적합하다. 이러한 조회는 하나의 명령어와 두 개의 명령어 사이클을 차지한다. 많은 기능을 이러한 방식으로 모델링할 수 있다. PIC의 상대적으로 큰 프로그램 공간(예: 16F690의 4096 × 14비트 워드)과 임베디드 상수를 허용하는 명령어 집합의 설계 덕분에 최적화가 용이하다. 예를 들어, 분기 명령어의 대상은 W로 인덱싱될 수 있으며, 이름 그대로 동작하는 "RETLW"를 실행한다. –  W에 리터럴을 로드하고 반환한다.
인터럽트 지연 시간은 세 명령어 사이클로 일정하다. 외부 인터럽트는 네 클럭 명령어 사이클과 동기화되어야 한다. 그렇지 않으면 한 명령어 사이클 지터가 발생할 수 있다. 내부 인터럽트는 이미 동기화되어 있다. 일정한 인터럽트 지연 시간은 PIC가 인터럽트 기반 저지터 타이밍 시퀀스를 달성할 수 있도록 한다. 이에 대한 예로는 비디오 동기화 펄스 생성기가 있다. 이는 최신 PIC 모델에서는 더 이상 사실이 아니다. 최신 모델은 3~4사이클의 동기식 인터럽트 지연 시간을 가지기 때문이다.
PIC 마이크로컨트롤러 코어 아키텍처
다음 스택 제한 사항은 PIC18 시리즈에서는 해결되었지만, 이전 코어에는 여전히 적용된다.
페이지화된 프로그램 메모리를 사용하면 CALL 및 GOTO용 페이지 크기와 계산된 GOTO(일반적으로 테이블 조회에 사용됨)용 페이지 크기가 두 가지 있다. 예를 들어, PIC16에서 CALL 및 GOTO는 11비트 주소 지정을 가지므로 페이지 크기는 2048 명령어 워드이다. 계산된 GOTO의 경우, PCL에 추가할 때 페이지 크기는 256 명령어 워드이다. 두 경우 모두 상위 주소 비트는 PCLATH 레지스터에 의해 제공된다. 이 레지스터는 페이지 간에 제어가 전환될 때마다 변경되어야 한다. PCLATH는 또한 모든 인터럽트 핸들러에 의해 보존되어야 한다.
여러 상업용 컴파일러가 시중에 나와 있지만, 2008년 마이크로칩은 18F, 24F, 30/33F 프로세서 라인을 위한 자체 C 컴파일러인 C18과 C30을 출시했다.
2013년 현재 마이크로칩은 MPLAB X와 함께 사용할 수 있는 XC 시리즈 컴파일러를 제공한다. 마이크로칩은 결국 C18과 같은 구형 컴파일러를 단계적으로 폐지하고 새로운 설계를 위해 XC 시리즈 컴파일러를 사용할 것을 권장한다.
PIC 어셈블리어 코드의 RISC 명령어 집합은 전체 흐름을 이해하기 어렵게 만들 수 있다. 간단한 매크로를 신중하게 사용하면 PIC 어셈블리어의 가독성을 높일 수 있다. 예를 들어, 원래 패러랙스 PIC 어셈블러("SPASM")는 W를 숨기고 PIC가 두 주소 머신처럼 보이게 하는 매크로를 가지고 있다. 이 매크로에는 `mov b, a` (주소 a의 데이터를 주소 b로 이동) 및 `add b, a` (주소 a의 데이터를 주소 b의 데이터에 추가)와 같은 매크로 명령어가 있다. 또한 `cjne a, b, dest` (a와 b를 비교하고 같지 않으면 dest로 점프)와 같은 3-피연산자 분기 매크로 명령어를 제공하여 건너뛰기 명령어를 숨긴다.
프로테우스 디자인 스위트는 인기 있는 8비트 및 16비트 PIC 장치와 PIC가 연결된 회로도를 시뮬레이션할 수 있다. 시뮬레이션할 프로그램은 프로테우스 자체, MPLAB 또는 기타 개발 도구에서 개발할 수 있다.
PIC 마이크로컨트롤러 장치 프로그래머
"프로그래머"라고 불리는 장치는 전통적으로 프로그램 코드를 대상 PIC에 넣는 데 사용된다. 마이크로칩이 현재 판매하는 대부분의 PIC는 ICSP(인-서킷 직렬 프로그래밍) 및 LVP(저전압 프로그래밍) 기능을 갖추고 있어 PIC가 대상 회로에 장착된 상태에서 프로그래밍될 수 있다.
마이크로칩은 MPLAB 및 PICKit 시리즈의 프로그래머/디버거를 제공한다. MPLAB ICD5 및 MPLAB REAL ICE는 전문 엔지니어링을 위한 현재의 프로그래머 및 디버거이며, PICKit 5는 취미 애호가 및 학생을 위한 저가형 프로그래머/디버거 라인이다.
고급 플래시 기반 PIC 중 다수는 자체 프로그래밍(자체 프로그램 메모리에 기록)할 수 있으며, 이 프로세스를 부트 로딩이라고 한다. RS-232 또는 USB와 같은 인터페이스를 통해 사용자 프로그램을 로드하는 데 사용할 수 있는 작은 공장 프로그래밍된 부트로더가 있는 데모 보드를 사용할 수 있으므로 프로그래머 장치가 필요하지 않다.
PIC 마이크로컨트롤러 장치 프로그래머
또는 사용자가 ICSP를 사용하여 PIC에 로드할 수 있는 부트로더 펌웨어가 있다. PIC에 부트로더를 프로그래밍한 후, 사용자는 특수 컴퓨터 소프트웨어와 함께 RS232 또는 USB를 사용하여 장치를 다시 프로그래밍할 수 있다.
부트로더가 ICSP보다 장점은 더 빠른 프로그래밍 속도, 프로그래밍 후 즉시 프로그램 실행, 그리고 동일한 케이블을 사용하여 디버그 및 프로그래밍을 모두 수행할 수 있다는 점이다.
PIC 마이크로컨트롤러용 프로그래머는 매우 간단한 디자인(호스트 컴퓨터에서 코드를 직접 다운로드할 수 있도록 ICSP에 의존)부터 여러 공급 전압에서 장치를 검증할 수 있는 지능형 프로그래머에 이르기까지 다양하다. 이러한 복잡한 프로그래머 중 다수는 미리 프로그래밍된 PIC 자체를 사용하여 프로그래밍될 PIC에 프로그래밍 명령을 보낸다. 지능형 프로그래머는 인-서킷 프로그래밍을 지원하지 않는 초기 PIC 모델(주로 EPROM 유형)을 프로그래밍하는 데 필요하다.
PIC 마이크로컨트롤러 장치 프로그래머
타사 프로그래머는 직접 제작할 계획부터 자가 조립 키트 및 완전히 테스트된 즉시 사용 가능한 장치에 이르기까지 다양하다. 일부는 PC가 저수준 프로그래밍 신호 처리를 수행하도록 요구하는 간단한 디자인(일반적으로 직렬 포트 또는 병렬 포트에 연결되고 몇 가지 간단한 구성 요소로 구성됨)인 반면, 다른 일부는 프로그래밍 로직이 내장되어 있다(이들은 일반적으로 직렬 또는 USB 연결을 사용하며, 일반적으로 더 빠르고, 종종 제어를 위해 PIC 자체를 사용하여 제작됨).
PIC 마이크로컨트롤러 디버깅
모든 최신 PIC 장치에는 CPU 코어에 내장된 ICD(인-서킷 디버깅) 인터페이스가 있어 MPLAB IDE와 함께 프로그램의 대화형 디버깅을 허용한다. MPLAB ICD 및 MPLAB REAL ICE 디버거는 ICSP 인터페이스를 사용하여 이 인터페이스와 통신할 수 있다.
그러나 이 디버깅 시스템은 제한된 브레이크포인트 수(이전 장치는 1개, 최신 장치는 3개), 일부 I/O 손실(디버깅 전용 라인을 가진 일부 표면 실장 44핀 PIC 제외), 그리고 일부 온칩 기능 손실이라는 대가를 치른다.
PIC 마이크로컨트롤러 디버깅
일부 장치는 비용이나 핀 부족으로 인해 온칩 디버그를 지원하지 않는다. 일부 더 큰 칩도 디버그 모듈이 없다. 이러한 장치를 디버그하려면 전용 포트를 제공하는 자식 보드에 장착된 특수 -ICD 버전의 칩이 필요하다. 이러한 디버그 칩 중 일부는 자식 보드의 선택 가능한 점퍼를 사용하여 두 가지 이상의 칩 유형으로 작동할 수 있다. 이를 통해 온칩 주변 장치 중 일부 또는 전부를 갖지 않는 광범위하게 동일한 아키텍처를 단일 -ICD 칩으로 대체할 수 있다. 예를 들어, 16F690-ICD는 온칩 주변 장치 중 아무것도, 일부 또는 전부를 갖는 6가지 다른 부품 중 하나로 기능할 것이다.
마이크로칩은 세 가지 완전한 인-서킷 에뮬레이터를 제공한다. MPLAB ICE2000(병렬 인터페이스, USB 변환기 사용 가능), 최신 MPLAB ICE4000(USB 2.0 연결), 그리고 가장 최근의 REAL ICE(USB 2.0 연결)이다. 이러한 모든 도구는 일반적으로 MPLAB IDE와 함께 사용하여 대상에서 실행되는 코드의 소스 수준 대화형 디버깅을 수행한다.
PIC 마이크로컨트롤러 운영 체제
PIC 프로젝트는 FreeRTOS, AVIX RTOS, uRTOS, Salvo RTOS 또는 기타 유사한 라이브러리와 같은 실시간 운영체제를 사용하여 작업 스케줄링 및 우선순위를 지정할 수 있다.
세르주 바쿨렌코(Serge Vakulenko)의 오픈 소스 프로젝트는 2.11BSD를 PIC32 아키텍처에 RetroBSD라는 이름으로 적용한다. 이는 온보드 개발 환경을 포함한 익숙한 유닉스 유사 운영 체제를 온보드 하드웨어의 제약 내에서 마이크로컨트롤러에 제공한다.
PIC 마이크로컨트롤러 클론
패러랙스는 패러랙스 SX로 알려진 PICmicro 유사 마이크로컨트롤러 시리즈를 생산했다. 현재는 단종되었다. 원래 버전의 BASIC 스탬프에 사용된 PIC 마이크로컨트롤러와 아키텍처적으로 유사하게 설계된 SX 마이크로컨트롤러는 해당 제품의 여러 후속 버전에서 PIC를 대체했다.
패러랙스의 SX는 8비트 RISC 마이크로컨트롤러로, 12비트 명령어 워드를 사용하며 75 MHz(75 MIPS)의 빠른 속도로 작동한다. 이들은 최대 4096개의 12비트 플래시 메모리 워드와 최대 262바이트의 랜덤 액세스 메모리, 8비트 카운터 및 기타 지원 로직을 포함한다. I²C 및 SPI 인터페이스, UART, 주파수 생성기, 측정 카운터 및 PWM 및 시그마-델타 A/D 변환기를 에뮬레이션하는 소프트웨어 라이브러리 모듈이 있다. 다른 인터페이스는 상대적으로 쉽게 작성할 수 있으며, 기존 모듈을 수정하여 새로운 기능을 얻을 수 있다.