가장 많이 본 글

이 블로그 검색

2018년 4월 20일 금요일

PIC microprocessor selection

PIC microprocessor에 대한 경험을 알려 드리고 선택에 도움이 되었으면 합니다.


    저는 PIC을 접한지 꽤 되었는데 아직도 완벽 하다고는 생각지 않습니다. 너무나 종류도 많고 memory크기, interface도 다양해서 어떤것을 써야 될지 감이 오지 않을 정도 입니다. 하지만 engineer들은 어떻게 해서든지 일을 끝내야 하기 때문에 선택을 해야만 하는 입장 입니다. 
    이제는 경쟁사도 많고 가격도 많이 평준화 되어 대량생산용이 Application이 아니면 가격에 크게 구애받지 않고 spec이 좋은 것을 선택하여 일을 멋지게 끝내는 것도 방법중 하나 일 겁니다. 
    기존 series에 계속해서 upgrade가 되어서 나오는 중이라 저도 어떤것이 좋다고 말씀 드리기 어렵습니다. 뭔가 사용해 보고 익숙해 지면 잘 바꾸지 않는 것이 Engineer들의 특성인 지라 더욱 그렇습니다.

계열 별로 제가 사용해본 경험으로는,

  1. 16F 계열은 싼가격이 장점 이지만 ROM/RAM size가 작아서 기능이 많지 않은 Job에나 적당 할거 같습니다. clock  speed도 높지 않습니다.
  2. 18F 계열은 8bit processor 입니다. 중급 정도 Application에 사용하면 좋습니다. 하지만 ROM/RAM size는 부족한 감이 있습니다. clock speed는 대략 40MHz 정도로 보면 됩니다. RAM은 4K 정도 입니다.
  3. 24FJ 계열은 16bit 입니다. 중 ~ 고급 정도에 적합할거 같습니다. 하지만 RAM size가 32K barrier가 있습니다. 64K를 넘는 종류도 있습니다만 32K를 넘는 부분을 access 하려면 좀 특수한 조작을 해야하는 불편함이 있었습니다. clock은 18F와 거의 비슷한 수준 입니다.  따라서 처리속도 면에서는 18F 보다 훨씬 낫다고 얘기하긴 어려울듯 합니다. Peripheral Pin Select(PPS, 주변장치 Pin mapping)가 지원되는 chip들이 있습니다.
  4. dsPIC 계열은 많이 사용해 보지 않았습니다만 Core는 24F 계열을 기반으로 고속 Clock탑재, control 및 signal processing을 위한 다양한 module들을 용도에 따라 선택 할 수 있습니다.
  5. 32MX 계열은 32bit processor 입니다. ROM/RAM size가 크고 Linear하게 acess 됩니다. Clock speed는 100MHz 정도로 보면 됩니다. Clock에 걸맞게 명령 실행시간 또한 빠릅니다. 풍부한 interface module들이 있습니다. 아마 ARM processor등을 겨냥하여 나온것 같습니다. 사용 하기가 까다롭지 않습니다. 가격이 많이 내려가서 저는 웬만한 application에는 32MX를 사용합니다.

 저는 아래와 같이 Selection table을 만들어서 필요할 때 사용하고 있습니다.


* PU/PD/OD 는 각각 Pullup, Pulldown 및 OpenDrain 입니다.
*  IO bit change time은 port에 0과 1을 교대로 써줄때 측정한 값 입니다.

 Operation time은 evaluation시에 oscilloscope로 실측한 값 입니다. 주변장치 혹은 Host와 통신 시에는 data의 formatting이 필요한 경우가 많아서 그에 대한 speed또한 측정해 보았습니다. 부동소수점 으로 갈 수록 32bit가 위력을 발휘 하는거 같습니다. 앞으로 설명드릴 내용은 주로 PIC32MX350을 위주로 전개해 나갈 것 입니다.


Click here to download Selection Guide


댓글 없음:

댓글 쓰기