ATMega328P를 프로그래밍하고 Arduino 보드없이 사용하십시오


13

내 프로젝트에 ATMega328P를 사용하고 싶습니다. Arduino 보드없이 수행하고 싶습니다.

Arduino IDE와 Arduino 보드를 사용하여 마이크로 컨트롤러를 프로그래밍 할 수 있다는 것을 알고 있습니다. 그러나 Arduino IDE + Arduino 보드로 프로그램을 프로그래밍하고 디버깅하면 Arduino 보드에서 마이크로 컨트롤러를 제거하고 보드없이 ATMega328P를 별도로 사용할 수 있습니까?

그렇다면, ATMega328P가 브레드 보드에서 올바르게 작동하기 위해 어떤 추가 구성을 수행해야합니까?


아두 이노 UNO 부트 로더로 사용 ATMEGA328 P-PU .... 당신은 ☺ 온라인으로 물건 취미 상점에서 찾을 수 있습니다
아서

베어 칩을 사용하는 것은 절대적으로 가능하며 아무런 문제가 없습니다.
dannyf

이것은 귀하의 질문과 같지 않지만 약간의 정보를 얻을 수 있습니다. arduino.stackexchange.com/questions/32970/…
코드 고릴라

답변:


7

Arduino에서 ATMEGA를 제거하여 자신의 보드에서 사용할 수 있지만 일반적인 Arduino 보드에서 사용되는 경우 칩은 (단순하지만 덜 정확한) 내부 시계가 아닌 외부 크리스털에 대해 클럭 소스로 융합됩니다.

현재 칩이 예상하는 클럭 소스가 작동하지 않는 한 ISP를 통해 클럭 소스를 변경할 수 없으므로 클럭 선택을 변경하려면 Arduino에서 칩을 제거하기 전에 변경하십시오.

그러나 클록 보드와 2 개의 커패시터 (또는이 내장형 대체 공진기)를 외부 보드에 제공 할 수도 있습니다.

일반적으로 칩 (편리한 것으로 부트 로더로 사전 플래시 된 칩도)은 보드보다 저렴하므로 다른 칩을 사용하는 것과 동일한 칩을 Arduino에서 다른 곳으로 옮기려는 이유가 확실하지 않습니다. 어쨌든 USB 논리 레벨 직렬 어댑터가 필요하며 일단 Arduino에서 초기 테스트를 수행하더라도 보드의 베어 칩에서 개발을 수행 할 수 있습니다. USB 변환기가 없으면 핀치로 Arduino 보드에서 칩을 꺼내 D1 및 D0에서 와이어를 연결하거나 온보드 칩을 재설정하여 직렬 라인을 빌릴 수 있습니다. 간섭.


1
내 생각은 보드없이 마이크로 컨트롤러 만 사용하는 것입니다. Arduino를 프로그래밍하기 쉽기 때문에 ATMega를 선택할 수 있다고 생각했습니다. 그래서 Arduino 우노가 있습니다. 제 생각은 ATMega를 하나만 사서 프로그래밍하고 uno 보드를 사용하여 디버깅하는 것입니다. 그러나 ATMega를 Arduino와 분리하면 구성 요소 (크리스탈, 저항을 끌어 올리십시오.)를 추가해야한다고 재확인했습니다. 게시물의 마지막 단락에서 무엇을 의미하는지 설명해 주시겠습니까? arduino IDE를 사용하지 않고 ATMega (또는 다른 마이크로 컨트롤러)를 직접 프로그래밍하는 간단한 방법이 있습니까? 감사.
조지

IDE를 건너 뛸 수는 있지만 IDE를 사용하거나 외부 클럭이 있거나없는 회로를 사용하거나 USB- 대상 보드, 케이블 또는 ISP 프로그래머와 스케치를 프로그래밍하여 시리얼. 칩을 보드에서 떨어 뜨리면 부트 로더를 사용하거나로드하지 않고 칩을 직접 구매하거나, 그대로 Arduino를 ISP 프로그래머로 사용하거나 ISP를 사용하여 부트 로더없이 스케치를 직접로드 할 수 있습니다.
Chris Stratton

7

예, ATMega328Parduino 보드없이 사용할 수 있습니다 . 나는 항상 arduino없이 IC를 사용합니다. 두 가지 방법이 있습니다.

  1. IC와 함께 arduino 보드를 사용할 수 있습니다. IC를 프로그래밍하고 꺼낸 후 회로에서 사용하십시오. 16MHZ Oscillator커패시터와 함께 사용해야 합니다.
  2. 당신은 아두 이노 보드가없는 경우 다른 프로그래머가 원하는 사용할 수 있습니다 USBasp당신을 프로그램 Atmega328p. 이 경우 직접 업로드 버튼을 사용하지 말고 파일 메뉴에서 프로그래머 옵션을 사용하여 업로드를 사용하십시오. 보드를 Arduino Pro or Pro Mini (5v, 16mhz) With ATmega328프로그래머로 선택하는 것을 잊지 마십시오 USBasp.

참고 : Atmega328p 핀 매핑을 참조 하여 장치를 적절하게 프로그래밍하십시오. 즐겨!


2

"Build an Arduino"를 검색 하십시오 -그렇게하는 방법에 대한 수많은 기사가 있습니다. 인쇄 회로 기판에 연결을 납땜 할 수 있어야하며 (솔더리스 브레드 보드를 사용하려는 경우에도) 연결이 간단합니다. FTDI 케이블을 사용하여 먼저 빌드하고 PCB에서 MCU를 프로그래밍 할 수도 있습니다. 나는 Arduino 보드와 솔더리스 브레드 보드를 사용하여 익숙하지 않은 부품을 실험하지만, 내가 사용할 모든 구성 요소에 익숙해지면 보통 수작업 보드로 즉시 이동합니다.

Arduino 보드로 프로토 타이핑하면 많은 부품을 모아 빠르게 작업 할 수 있으며, Arduino가 최종 목표 (f / ex, Mega 2650)보다 능력이 있으면 일시적으로 메모리 및 I / O 제약 조건을 무시할 수 있습니다 더 작은 장치의.


0

독립형 Arduino 칩을 사용하는 것은 상당히 쉽습니다. 공식 보드에 사용되는 칩의 한 가지 까다로운 점은 보드에 장착 된 더 빠르고 정확한 외부 발진기를 사용하도록 융합되어 있다는 것입니다. 이것은 느슨한 칩을 구입할 때에도 적용됩니다. Digikey의 칩을 제외하고 대부분은 Arduino 보드에 설치하여 타 버린 칩을 교체하기 위해 재판매되기 때문입니다.

주의 사항 : Arduino는 프로토 타이핑 보드로 설계되었으며이 작업에서 수행하는 것보다 더 나은 기능은 거의 없습니다. 회로 설계 및 테스트가 끝날 때까지 Arduino 보드에 칩을 남겨 두는 것이 좋습니다. 그런 다음에 만 직접 연결하십시오. 당신이 그 자리에 클록 회로가있는 경우는 현재 위치에서 사용할 수 있습니다, 또는 당신은 퓨즈 (나중에 참조) 변경 PlatformIO는이 작업을 수행 할 수 있습니다 (ISP가 어댑터와 8MHz의 클럭 속도로 아두 이노를 재 프로그램 할 수 있습니다 ( 직접 할 수 있습니다 아두 이노 스케치 가져 오기)-문서 페이지에서 Atmel AVR 플러그인을 확인하십시오. 그러나 보드 파일을 Arduino에 추가하여 베어 칩에 8mhz 옵션을 사용하도록 알리는 방법에 대한 여러 안내서를 찾을 수도 있습니다)

다른 회로에서 사용하기 위해 칩을 제거하는 경우 클럭 회로를 다시 추가하거나 퓨즈를 변경해야합니다 (1 분 후에 연결). 여러 가지 이유로 프로그래밍하기가 어렵 기 때문에 상당히 저렴한 하드웨어를 구입하고 싶을 것입니다.

독립형 칩 프로그래밍 : Arduino의 CPU는 기본적으로 컴퓨터와 통신하도록 설계되지 않았습니다. 중개자가 필요합니다. Uno에서는 USB 기능이있는 보조 Atmel 칩과 메인 칩의 부트 로더를 통해이 작업을 수행합니다. USB 칩이 PC의 메시지를 UART 신호로 변환하는 동안 UART를 사용하여 프로그램을 업로드합니다. 부트 로더는 칩 자체에있을 때 다소 고통 스러우므로 (UART가 까다 롭고 설치하면 칩을 외부 클럭을 사용하도록 설정하기 때문에) Arduino 용 ISP 프로그래머를 구매하는 것이 좋습니다 (또는 Arduino-as-ISP 스케치 및 지침에 따라 직접 칩을 제작할 수있는 Arduino가 필요하므로 프로그래밍하려면 1 초가 필요합니다.

이들은 부트 로더없이 SPI를 통해 ATMega 328을 직접 프로그래밍 할 수 있습니다 (인터넷에는 많은 지침이 있습니다. 이를 통해 칩을 튀어 나온 후 원래 Arduino 보드에 넣지 않고 프로그램을 변경하고 디버그하기가 훨씬 쉽습니다. 외부 크리스탈을 사용하지 않으려면 시계 설정을 변경해야합니다.

칩 을 디버그 하려면 FTDI 어댑터 또는 다른 USB-UART 변환기도 구입하는 것이 좋습니다. 보드의 리셋 회로 부분이 없으면 (또는 다시 자신을 추가해도) 여전히 부트 로더로 ATMega를 프로그래밍 할 수는 없습니다. 이를 위해 접지, RX 및 TX 핀을 어댑터에 연결하십시오. 당신은 할 수있다 또는 VCC 라인을 연결하지 수 있지만, 그렇게하지에이를 통보있어 경우 칩 및 / 또는 그이 자체 전원 공급 장치에 연결 많은 것들이있다. RX와 TX는 연결할 때 교환해야합니다. 즉, RX에서 TX로, TX에서 RX로-어댑터가 TX (전송)되는 것을 RX (수신)하고, 그 반대의 경우도 마찬가지입니다.

클록 회로는 구축하기 어렵지 않지만 보유하고 있지 않은 몇 가지 구성 요소가 필요합니다. 따라서 클럭 소스변경하려면 http://www.engbedded.com/fusecalc/ 로 이동 하여 ATMega 328P를 선택하십시오. 기본값은 좋지만 EEPROM Keep-on-eraase를 활성화하고 클럭을 8로 나누거나 브라운 아웃 설정을 조정할 수 있습니다. 재설정 또는 SPI를 비활성화하거나 DebugWire를 활성화하면 HV 프로그래머가 수정해야하는 "재미"가 발생합니다. 완료되면 AVRDude 명령에 제공하는 명령을 붙여 넣습니다. -c 옵션을 변경해야합니다 (-p는 이미 ATMega 328P로 설정되어 있지만 P 328이 아닌 경우에는 실패합니다-구매하지 마십시오) -P 옵션 (포트의 경우)을 추가하십시오. 소문자 -u 옵션을 생략하지 마십시오. 그렇지 않으면 퓨즈 업데이트가 거부됩니다.

avrdude -p m328p -v -c usbasp -B 100 -u [add extras here: (-P <PORT>) <fuse set command here>]

참고 가 제일 좋아하는 프로그래머가 모든 것을 당신이 USBASP를 구입하는 경우 있음 (확인 확신이 점퍼 3 개 세트있다!), 그들이 업데이트 된 펌웨어가 없을 수 있습니다 그 지원 -B 옵션 (당신이거야 아마 필요). 즉, 6 핀 프로그래밍 포트를 통해 Arduino의 부트 로더를 프로그래밍 할 때와 동일한 방식으로 Arduino에 연결 한 다음 Arduino as-ISP 스케치를 사용하여 새로운 것을 프로그래밍해야합니다. 프로그래머에게 펌웨어를 검색하십시오 ( "arduino-as-isp를 통해 usbasp 펌웨어 업데이트"검색)! 참고로, 이는 일반적으로 케이블이 보드 본체에서 멀리 떨어져 있다는 것을 의미하며, 전에 스케치를 프로그래밍 해야합니다.케이블 연결. 또한 USBASP (5V) 및 "자체 프로그램"에서 프로그래머에서 전원 공급 점퍼를 활성화하십시오. ( 전원 및 프로그램 점퍼 (JP2)의 위치는 https://forum.arduino.cc/index.php?topic=560719.0 을 참조 하십시오 ).

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