PIC에서 AVR로 전환


13

저는 PIC16 및 PIC18과 함께 3 년 넘게 일해 왔으며 AVR도 알고 싶습니다. 구체적인 프로젝트는 없지만 다른 아키텍처로 시도하고 싶습니다. PIC 및 AVR에 대한 호환성 보고서를 받고 싶습니다.

uC의 소프트웨어
PIC16 및 PIC18의 Assembly 및 C에 익숙합니다. AVR 마이크로 컨트롤러의 어셈블리 및 C 변형은 PIC 변형과 어떻게 다릅니 까? 많은 차이가 있습니까?

PC 소프트웨어
AVR 칩용 프로그램을 컴파일하고 어셈블하려면 어떤 소프트웨어가 필요합니까? 무료이며 어디에서 다운로드 할 수 있습니까?

프로그래밍 하드웨어
VOTI의 Wisp648 을 사용 하여 PIC를 프로그래밍했지만 보드는 AVR을 프로그래밍 할 수 없습니다. 프로그래머를 사야합니까, 아니면 웹에서 직접 만들 수있는 회로가 있습니까?

uC의 하드웨어
PIC의 경우 PIC18F4620 을 많이 사용했습니다 . 비슷한 기능을 가진 AVR을 찾고 있습니다. 내가 좋아하는 기능은 다음과 같습니다.

  • 내부 발진기
  • 타이머
  • 5V 및 3.3V 버전
  • ADC
  • I2C 및 SPI 지원 MSSP
  • (E) 미국
  • PWM
  • 많은 I / O 핀
  • > = 32kB 프로그램 메모리,> = 2kB RAM
  • 복각 패키지

어떤 AVR 칩이 동일한 기능을 갖습니까? 패키지는 거래 차단기입니다. DIP, PDIP 또는 SPDIP를 정말로 원합니다. 비슷한 기능을 가진 AVR은 무엇입니까?

SPI 및 I2C 변형
Microchip은 SPI 및 I2C 프로토콜에 자체 변형이 있다고 들었습니다. 필자는 종종 마이크로 칩의 SPI 및 I2C 슬레이브 장치를 PIC와 함께 사용합니다. 이 칩 (23K256, RTC, ENC28J60 등)을 AVR과 함께 사용할 수 있습니까? 그 외에도 I2C 또는 SPI를 사용하여 AVR과 PIC 칩을 연결할 수 있습니까?


@LeonHeller 죄송합니다. 확실하지 않았습니다. 특정 프로젝트가 마음에 들지 않지만 다른 아키텍처를 알기 위해 조금 놀고 싶습니다.

5
이 질문은 너무 광범위하여 Q + A 형식에 적합하지 않지만 일반적으로 사용하려는 프로세서의 데이터 시트를 읽습니다. 다크 사이드에서 어떤 모습인지 모르겠지만 Atmel은 Microchip처럼 선택 가이드를 가지고있을 것입니다. 이 회사들은 누구도 기억하기에 너무 많은 마이크로를 가지고 있습니다. 15 년 동안 100 건이 넘는 PIC 프로젝트를 전문적으로 수행했지만 새 프로젝트를 선택할 때는 여전히 선택 가이드를 참조하십시오.
Olin Lathrop

1
AVR의 사용 유형, 개발 도구 등은 쉽게 연구 할 수 있습니다. 이러한 것들은 PIC와 같이 잘 지원됩니다. 이 재미있는 비디오를 추천합니다 : youtube.com/watch?v=DBftApUQ8QI
Kaz

electronics.stackexchange.com/a/66163/8627을 보고 Linux for Windows를 변경하십시오. 툴체인은 대체로 동일합니다. 동일하지는 않지만 Google에 필요한 것들로 가득합니다.
jippie

@jippie 좋은! 내 샘플이 도착했습니다 :) 내 즐겨 찾기에 저장

답변:


8

uC의 소프트웨어

PIC와 AVR 명령어 세트는 비슷하지만 어셈블리에서 AVR 프로그래밍을 시작하지는 않습니다. Atmel Studio와 함께 C로 프로그램하십시오. 그것은 gcc의 AVR 버전과 함께 제공되며, 당신이 작성한 C 라인을 보여주는 정말 좋은 디스어셈블러를 가지고 있으며, 그 아래에서 결과 어셈블리 명령이 매우 편리합니다. 또한 WinAVR 을 다운로드 할 것 입니다.

PC의 소프트웨어

Atmel Studio를 사용하십시오 . Eclipse, Programmer 's Notepad 또는 사람들이 사용하는 다른 임의의 IDE를 신경 쓰지 마십시오. Atmel Studio는 Visual Studio를 기반으로하며 Atmel에서 제공하는 모든 종류의 플러그인을 갖추고 있으며 훌륭한 시뮬레이터가 내장되어 있습니다.

프로그래밍 하드웨어

Bus Pirate와 같은 저렴한 AVR 프로그래머가 많이 있지만 Atmel ICSP를 얻습니다 . 하나 이상의 AVR 프로젝트를 수행하려는 경우 추가 비용을 지불해야합니다. USB를 사용하며 Atmel Studio 내부에서 제어 할 수 있습니다.

uC의 하드웨어

거기이다 선택 도구는 하지만, 일반적으로 로우 엔드에서 ATMEGA 전형적인 하드웨어입니다 :

Internal Oscillator (8 MHz)
3 Timers
2.7-5.5V Supply range
8-channel multiplexed ADC
I2C and SPI support
USART
2 PWMs that work in conjunction with the 8 bit timers

고성능 칩을 사용하면 더 많은 타이머와 PWM을 구입할 수 있습니다. 사용 가능한 플래시 메모리 및 SRAM의 양은 특정 칩에 따라 다릅니다. AtMega 부품 대부분은 PDIP로 제공되며 핀 수가 많은 제품은 QFP입니다.

SPI 및 I2C 변형

AVR uC와 함께 MCP I2C (TVR의 경우 TWI) 및 SPI 장치를 사용할 수 있습니다. 실제로 AVR 데이터 시트의 SPI 및 TWI 섹션을주의해서 읽어야합니다. 각 인터페이스마다 데이터 순서, 클럭 극성 등을위한 여러 제어 레지스터가 있습니다. 데이터 시트에 모두 배치되어 있으며 읽기 쉽습니다. AVR과 PIC를 연결하는 것은 어렵지 않습니다. 통신을 설정할 때까지 SPI 또는 TWI 모드로 재생하면됩니다.


3
ATtiny는 ATmega의 작은 형제입니다. 프로그래밍과 관련하여 매우 유사합니다. Makefile에서 부품 유형을 변경하여 소프트웨어를 메가에서 작은 것으로 '포팅'했습니다.
jippie

@CamilStaps jippie가 좋은 지적을합니다. 이것이 PIC와 비슷한 지 모르겠지만 대부분 AVR 프로세서는 레지스터 이름과 비트 순서를 공유합니다. 더 유능한 프로세서가 제어 레지스터를 두 부분으로 나눌 수있는 것과 같은 일부 예외가 있습니다. 데이터 시트는 모두 각 장에 비교 설명을 쉽게하는 레지스터 설명 섹션이 있습니다.
매트 영

PIC는 최소한 한 가족 (PIC16, PIC18, ..)에서도 작동합니다. 팁 주셔서 감사합니다 (@jippie)!

이것은 훌륭한 설명입니다. 내가 가장 좋아하는 AVR 칩은 ATmega328p와 ATtiny24입니다. 다른 일반적인 라인은 tinyx5와 tiny2313입니다. 이들은 모두 DIP에서 사용 가능하며 모두 동일한 SPI 기반 프로그래밍 인터페이스 인 ISP를 가지고 있습니다. 저렴하고 빠른 시작을 위해 Sparkfun에서이 USB 프로그래머를 사용해보십시오. sparkfun.com/products/9825 또한 WinAVR로 알려진 Windows 용 인기 프로그램 번들이 있습니다. winavr.sourceforge.net 어떤 종류의 개발도 필요하지 않습니다. 보드, 전원 공급 장치, 바이 패스 캡 및 크리스탈 일 수 있습니다.
Kurt E. Clothier

11
  • C는 약간의 컴파일러 차이로 동일합니다. 다른 아키텍처이기 때문에 어셈블리는 상당히 다릅니다. 나는 C와 함께 갈 것을 권고하고 중요한 루틴을 인라인 할 수있는 충분한 어셈블리를 선택할 수 있습니다.

  • IDE와 프로그래머에게 Atmel은 Microchip과 유사한 제품을 제공하고 있으며, 웹 사이트를보고 무료 IDE를 다운로드하고 프로그래머를 선택하십시오.

  • 18F와 비슷한 칩은 ATMega328 (Arduinos에서 사용되는 칩)과 같은 것일 수 있습니다 .DIP 패키지 버전이 있다고 생각합니다.

  • 예, I2C와 SPI는 동일하게 작동해야합니다. AVR과 PIC를 연결해도 아무 문제가 없습니다.

면책 조항-오랫동안 AVR을 사용하지 않았습니다. 요즘에는 PIC와 ARM을 주로 사용하지만 과거에는 SPI / I2C와 연결하는 데 문제가 없었으며, SPI를 사용하여 PIC / Atmel EEPROM / Cortex-M3 / FPGA 사이를 연결하는 데 자주 사용했습니다. SPI는 거의 모든 최신 마이크로가 하드웨어에서 가능해야하는 매우 기본적인 프로토콜입니다.
I2C는 조금 더 복잡합니다. 머리 위로 라이센스 / 이름 지정 (예 : 2 선, I2C, SMBus) 이야기를 기억할 수 없지만 대부분의 주변 장치는 내가 아는 한 기본 수준에서 호환됩니다. 자세한 내용 은 Wiki 페이지 를 읽으십시오 .


Atmel의 TWI (2 선 인터페이스)는 I2C와 호환됩니다. I2C는 NXP (이전 필립스 기술)에서 라이센스를받을 수 있지만 Atmel은 라이센스 비용을 관리 할 수있었습니다.
jippie

11

나는 PIC와 AVR (그리고 다른 것들도)에서 동등하게 잘 작동합니다.

나는 AVR-libc 때문에 AVR을 좋아 합니다. 오픈 소스이며 합리적으로 잘 문서화 된 적절한 임베디드 라이브러리입니다 ( UNLIKE Microchip의 plib이지만 plib에는 전체 소스가 있으므로 진정으로 감사합니다). AVR은 규칙적인 오래된 gcc와 gdb를 사용하는데, 이는 바보 같은 IDE가 내 방식으로 들어 가지 않음을 의미합니다. 동일한 도구가 Windows, OSX 및 Linux에서 작동하며 Java 및 Netbeans 또는 Eclipse가있는 600MB 이상의 IDE가 필요하지 않으므로 소스 트리를 자체 가비지로 넘기거나 오염시킬 수 있습니다.

프로그래밍 AVR은 일반적으로 ISP 또는 JTAG ( 최근에 대한 질문 이 있음) 를 통해 수행되며 프로그래밍 관점에서는 다른 마이크로와 크게 다르지 않습니다.

개인적 관점에서 저는 Microchip의 데이터 시트와 부품 번호를 매우 싫어했습니다. 나는 Microchip으로 임베디드 디자인으로 치아를 자르고 오랫동안 오랫동안 사랑했지만 요즘 마이크로를 찾을 때 Atmel로 시작하는 경향이 있지만 결함도 없습니다. (SAM-BA는 SAM 부품의 쓰레기이므로 공장 지원에도 문제가있었습니다.)

어느 쪽을 사용해야하는지 ... 둘 다 시도해보십시오. 콜라와 펩시의 차이점과 같습니다. 그것들은 매우 유사하며 선택은 일반적으로 가격과 선호하는 도구에 달려 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.