본문 바로가기

Digital Circuit

[ 아두이노 보드 만들기 ] 아두이노 보드 회로 구성 이해하기 (0)

반응형

 

 


 

안녕하세요.

이번 포스트부터 해서 아두이노 보드를 직접 만들어서 코드까지 업로드 해보는 과정을 진행해 보겠습니다. 우리가 사용하는 아두이노를 직접 만들어보면서 원리를 이해해보세요.

 


전체 시리즈 포스팅입니다 순서대로 진행해 보세요.

 

[ 아두이노 보드 만들기 ] 아두이노 보드 회로 구성 이해하기 (0)

안녕하세요.이번 포스트부터 해서 아두이노 보드를 직접 만들어서 코드까지 업로드 해보는 과정을 진행해 보겠습니다. 우리가 사용하는 아두이노를 직접 만들어보면서 원리를 이해해보세요.아

semicircuit.tistory.com

 

 

[ 아두이노 보드 만들기 ] 자작 아두이노 만들기 (브레드 보드) (1)

안녕하세요.지난 시간의 아두이노 우노 보드의 회로 설명에 이어서 이번 포스트에서는 아두이노 보드를 빵판에 직접 구현해 보는DIY 아두이노 과정을 진행해 보겠습니다.※0. 필요 품목( 링크는

semicircuit.tistory.com

 

 

[ 아두이노 보드 만들기 ] 자작 아두이노 부트로더 올리기 (2)

안녕하세요.이번 시간에는 지난 시간에 브레드 보드에 제작한 자작 아두이노 보드에 부트로더를 올리는 방법에 대해 알아보겠습니다. 기본적으로 MCU를 구입하게 되면 부트로더가 올라가져 있

semicircuit.tistory.com

 

 

[ 아두이노 보드 만들기 ] 자작 아두이노 펌웨어 올리기 (브레드 보드) (2)

안녕하세요.이번 포스팅에서는 지금까지 직접 브레드보드에 만들고 부트로더도 올린 자작 아두이노 보드를 실제 활용해 보겠습니다.이글을 처음으로 보시는 분들은 이전 포스팅 참고해 주세요

semicircuit.tistory.com

 

 

 

 

 



아두이노 보드는 공식 아두이노 홈페이지에서 도면을 공개하고 있습니다. 공개도면은 아두이노 웹사이트에서 자유롭게 제공되며, 이를 통해 아두이노 우노의 전체 회로 설계 및 구성 요소를 확인할 수 있습니다. 이러한 도면은 하드웨어 설계, 커스텀 보드 제작, 문제 해결 등에 유용합니다.

아두이노 홈페이지에서 제공하는 다양한 보드의 공개 도면을 아래 링크에 하나로 정리해 두었습니다. 

https://semicircuit.tistory.com/entry/Arduino-Uno-Arduino-Mega-Schematic-%EA%B3%B5%EA%B0%9C-%ED%9A%8C%EB%A1%9C

 

Arduino Uno, Arduino Mega Schematic [공개 회로]

안녕하세요.이번시간에는 MCU설계에 STM32과 더불어 가장 많이 사용하는 그리고 학습용으로는 설계에 가장 용이한 Arduino의 Atmega MCU를 설계 할 때 Reference가 되는 Arduino Board의 대표적인 보드 아두이

semicircuit.tistory.com

 

 

다음은 아두이노 보드의 핀맵 정리 내용입니다. 실제 회로 설계보단 프로그래밍(F/W 설계) 과정에서 더 많이 보는 페이지일 텐데 필요시 참조해 보세요.  (아두이노는 Micronchip(구 Atmel)사의 Atmega 시리즈의 MCU를 사용합니다.)

https://semicircuit.tistory.com/entry/Arduino-%EC%95%84%EB%91%90%EC%9D%B4%EB%85%B8-%ED%95%80%EB%A7%B5-%EC%82%AC%EC%96%91-%EB%AA%A8%EC%9D%8C

 

[Arduino] 아두이노 핀맵 & 아두이노 사양 모음

안녕하세요.이번 포스팅에서는 아두이노 사용시 필히 알아야하는 보드의 핀 넘버, 즉 핀맵을 한번에 모아두었습니다. 필요할 때 볼 수 있겠금 즐겨차기 해주시는 것도 좋을 것 같아요.  ※1. 아

semicircuit.tistory.com

 

 

이번 포스팅에서는 Arduino Board 중 가장 대중적이고 학습용으로 많이 다루는 Arduino Uno R3 보드의 회로도를 보고 각 기능에 대해 설명해드리겠습니다. 회로동작에 대해 전반적으로 부품의 동작 과정을 이해하는 것이 가장 좋지만 이러한 내용이 생소한 경우 그냥 이런 부품들은 이런 기능을 하는구나 정도로 파악하시면 됩니다. 결국 이 분야에 속해있으면 시간이 흐르면 알아서 이해하게 됩니다. 

다음은 아두이노 우노 보드의 회로도입니다. (필요하신 분들은 위에 1번째 링크에 들어가서 다운 받으세요.) 각 구성의 역할을 살펴보겠습니다.

 

※1. 전원

1. 전원 입력

아두이노의 전원은 USB Port, DC 배럴잭, Vin pin 3가지 방식으로 연결 가능합니다.
(회로의 연결에 있어서는 어떤 방식으로 연결을 하더라도 차이는 없지만 USB 포트의 경우 기본 USB 케이블의 최대 전류가 낮은 점, Vin Pin의 경우 높은 전류 주입 시 배선 두께에 따른 발열 문제가 발생할 수 있습니다. 그렇기에 DC 배럴잭을 가장 추천하지만 필요에 따라 사용하셔야 하는 부분입니다.)

 

회로에서 빨간색 부분의 USB단자의 1번과 4번이 USB Port를 통한 전원, 파란색 부분이 Barrel jack을 통한 전원, 초록색 부분의 6,7,8번이 pin을 통한 전원입력에 해당하는 부분입니다.

 

 

 

2. DC to DC regulating

아두이노 우노의 권장 입력 전압은 7-12V입니다. 제한 입력 전압은 6-12V입니다. ( 아래링크 참조 )
https://semicircuit.tistory.com/entry/Arduino-%EC%95%84%EB%91%90%EC%9D%B4%EB%85%B8-%ED%95%80%EB%A7%B5-%EC%82%AC%EC%96%91-%EB%AA%A8%EC%9D%8C

 

[Arduino] 아두이노 핀맵 & 아두이노 사양 모음

안녕하세요.이번 포스팅에서는 아두이노 사용시 필히 알아야하는 보드의 핀 넘버, 즉 핀맵을 한번에 모아두었습니다. 필요할 때 볼 수 있겠금 즐겨차기 해주시는 것도 좋을 것 같아요.  ※1. 아

semicircuit.tistory.com

MCU는 분명 디지털 제어가 요구되는 디지털 회로입니다. 이러한 디지털 회로는 Low와 High이라는 우리가 흔히 말하는 0과 1로 제어되는 세계입니다. 이때 0과 1을 구분하는 기준은 전압입니다. 그러면 전압이 어떨 때 Low, High일까요? 간단하게만 설명하면 아두이노 우노의 경우 LOW는 0V 근처, HIGH는 5V 근처의 전압일 때로 정의합니다.

이러한 내용은 논리레벨의 개념으로 들어가고 자세한 내용은 아래를 참조해 주세요.
https://semicircuit.tistory.com/entry/TTL-VS-CMOS-%EB%94%94%EC%A7%80%ED%84%B8-%EB%85%BC%EB%A6%AC-%EB%A0%88%EB%B2%A8

 

TTL VS CMOS 디지털 논리 레벨

이번 포스트에서는 디지털의 High 신호와 Low 신호를 구분하는 TTL 논리와 CMOS 논리에 대해 알아보겠습니다. TTL (Transistor-Transistor Logic)과 CMOS (Complementary Metal-Oxide-Semiconductor)는 두 가지 주요 디지털

semicircuit.tistory.com

 

이때 HIGH로 정의되는 전압을 대게 Operating Voltage라고 하고 아두이노 우노는 Operating Voltage가 5V입니다.

그럼 이런 5V크기의 전압을 다루기 위해서는 당연하게 5V전압을 만들 수 있어야 하고 5V 전압을 만들기 위해 높은 전압에서 5V 전압으로 떨어뜨리는 Voltage Drop 방식을 사용하게 됩니다. 이때 높은 전압이 입력 전압이고 앞서 언급한 권장 7-12V, 제한 6-12V입니다.

이때 높은 전압을 5V로 떨어뜨려 주는 부품을 레귤레이터 (Regulator)라고 합니다. 이 레귤레이터의 스펙에 따라  7-12V, 제한 6-12V가 정해진 것입니다.

 

빨간색 원은 입력된 미상(권장 7-12V )의 전압을 5V로 바꾸는 레귤레이터입니다. 이렇게 바뀐 5V를 통해 전체 MCU를 통제 하게 됩니다. 파란색원은 앞에서 바뀐 5V를 3.3V로 한번더 바꿔주는 레귤레이터 입니다. MCU는 3.3V로 운용하지만 파란색 직사각형을 보면 3.3V를 사용하는 부품(핀)이 있기에 변환해 준 것입니다.

 

 

 

3. 전원 입력 충돌 방지

앞에서 아두이노 보드에 전원을 입력하는 방법에는 3가지가 있다고 하였습니다.

배럴잭과 pin을 통한 전원은 어차피 하나의 라인에서 만나게 되어 Maximum 전류를 늘려줄 수 있다는 특징 뺴곤 큰 문제는 없습니다. 다만 USB를 통한 전원(USBVCC)과 배럴잭과 pin을 통한 전원(VIN)이 동시에 인가되어 충돌한다면 회로에 손상이 가거나 전압은 상대적인 포텐셜 차이이므로 이런 전압의 크기가 바뀔 수 있습니다. 다음은 이런 문제를 해결하기 위한 방법입니다. 

위 2가지의 부품의 역할을 결론 먼저 말하면 다음과 같습니다.
1. Vin 이 6.6 [V]보다 클 경우 아두이노 전원은 VIN(배럴잭 또는 pin을 통한 전원)이 됩니다.
2. Vin이 6.6[V]보다 작을 경우 아두이노 전원은 USB전원이 됩니다.

이유는 다음과 같습니다.

먼저 빨간색 원의 LMV358IDGKR소자의 경우 OPAMP입니다.
(OPAMP에 대한 자세한 설명은 아래링크 참조)
https://semicircuit.tistory.com/entry/OP-AMP-Operating-Amplifier%EC%9D%98-%EC%9D%B4%ED%95%B41

 

[OP-AMP] Operating Amplifier의 이해(1)

안녕하세요.OP-AMP를 "OP-AMP의 이해", "OP-AMP 회로", "OP-AMP회로 특성" 3가지 챕터 나누어 소개하겠습니다.이번 챕터는 "OP-AMP의 이해"에 대해 풀어보겠습니다.  ※1. OP-AMP란▶1. OPAMP란  OPAMP(Operational Am

semicircuit.tistory.com

 

아두이노 보드에서 해당 OPAMP는 비교기로 사용됩니다. 즉 3번 핀에서 들어간 신호가 2번 핀에 들어간 신호보다 크기가 크다면 1번 핀에서 HIGH를 출력합니다. (작다면 LOW 출력) 이때 2번 핀은 3V3 즉 3.3V인데 3번 핀의 경우 VIN에서 10kohm 저항 2개를 통해 전압 1/2로 전압을 분배한 신호입니다. 즉 Vin/2 크기의 신호입니다.
즉, Vin/2 > 3.3[V]라면 다음 LMV358IDGKR에서는 HIHG신호가 출력되고 Vin/2 < 3.3[V]라면 LOW 신호가 출력되는 것입니다.

2번째로 파란색 원으로 표시된 FDN340P는 P-Channel MOSFET입니다. 해당 회로에서는 MOSFET을 스위치 기능으로 사용하고 있습니다. P-Channel MOSFET은 아래 빨간색 연결선으로 HIGH 입력 시 파란색 연결에 전류가 차단(OFF), 빨간색 연결선으로 LOW 연결 시 파란색 연결에 전류가 흐릅니다.(ON) 

즉 최종적으로 정리하면 VIN(배럴잭 또는 핀 전원)이 일정 수준(6.6 [V])이상 클 경우 USB전원을 차단해 버리는 것입니다.

 

 

▶4. 전원 확인 LED

아두이노에 전원선을 연결하면 LED가 점등되는 것을 우리는 알고 있습니다. 아래 원 표시에 해당하는 LED가 해당 동작을 합니다. 단순하게 전원이 들어오고 있음을 나타내는 것입니다.

 

 

※2. USB-to-Serial 변환

1. USB to Serial 변환

아두이노 보드는 보통 2개의 MCU를 사용합니다. 메인이 되는 MCU(우노의 경우 Atmega328)는 우리가 주로 코드를 올리고 사용하는 용도의 MCU, 또 다른 MCU는 우리가 프로그래밍한 코드를 보드를 연결할 때 통신 할 때 USB PORT를 사용하는데 이때 PC와 아두이노 보드 사이 쉽게 말하면 변역가 정도의 역할을 합니다. 이것이 아래 ATMEGA16에 해당하는 MCU와 이것을 운용하기 위한 부속 회로들입니다.

 

2. USB Connector

해당 부분이 USB 커넥터 부분입니다. USB 커넥터는 전원(Vcc, GND) 역할을 하는 라인과 데이터 전송(Data In, Data Out) 역할을 하는 라인으로 총 4개의 라인이 있습니다.

 

 

3. ICSP1

ICSP(In Circuit Serial Programing)는 SPI 통신방법을 사용하는 MCU에 직접 프로그래밍이 가능한 통신포트입니다. 아두이노에 펌웨어를 올리거나 부트로더를 설치할 때 사용하는 포트입니다. ICSP1은 Atmega16 즉 USB to Serial 변환을 위한 MCU의 통신 포트로 자작 아두이노의 경우는 보드 설계 이후 부트로더나 변환 펌웨어를 넣는다는 가정하에 핀을 살려둘 이유가 있지만 상용 보드에서도 해당 커넥터가 존재합니다. (사실 해당 MCU는 건들일이 없기에 커넥터를 굳이 뒀어야 했다라는 생각이 있습니다.)

*부트로더란?
https://semicircuit.tistory.com/entry/%EC%9E%84%EB%B2%A0%EB%94%94%EB%93%9C-%EB%B6%80%ED%8A%B8%EB%A1%9C%EB%8D%94%EB%9E%80

 

[임베디드] 부트로더란?

안녕하세요.부트로더(Bootloader)는 컴퓨터나 임베디드 시스템의 기본적인 부팅 프로세스를 관리하는 프로그램입니다. 주된 역할은 시스템이 부팅될 때 초기화되고, 운영 체제 또는 다른 응용 프

semicircuit.tistory.com

 

 

 

▶4. 숨겨진  GPIO

아래 2x2 헤더에 대해 저도 의도가 뭔지 몰랐고 검색을 해봤는데 분명하게 아는 사람은 없으나 많은 사람들의 추정에는 atmega16에 사용 효율을 높이기 위한 추가적인 GPIO핀 정도라고 하는 의견이 많습니다. 즉 다시 할때 Atmega16에 남은 GPIO까지 사용할 수 있게는 해주겠다 이런 느낌입니다. 그렇다면 위에 ICSP1을 커넥터 형태로 유지시켜 놓은 이유도 성립하게 되는 거겠죠. 해당 4개의 GPIO를 알차게 쓸 수 있도록 하기 위해 커넥터를 추가로 만들고 외부와 통신할 수 있는 통신선인 ICSP를 넣은 거죠..

누가 Atmega16까지 펌웨어를 따로 쓸까요? 전 안 쓸 겁니다.

다시 말하면 해당 부분은 아예 없애도 되는 부분입니다. 저도 Atmega328를 통한 MCU설계 시 해당 부분 사용 안 합니다.

 

※3. 보드의 두뇌 Atmega328

1. 모든 동작을 제어, 신호 입출력

실제 가장 핵심부인 Atmega328에 대한 내용입니다. Atmega328를 포함하여 정상적인 작동을 위한 여러 부속 회로들이 있습니다.

 

2. Clock Generator [클럭 생성기]

디지털 칩에는 클럭이 필요합니다. 아래와 같은 클럭은 XTAL로 표시된 크리스탈을 통해 25MHz의 클럭시호를 만들고 양단에 커패시터를 통해 발진방지, 필터링, 위상보정을 합니다.

  • 클럭은 전자 회로에서 주기적인 신호를 생성하여 동작 타이밍을 제어하는 역할을 합니다.
  • 클럭 주파수는 신호가 초당 몇 번 주기적으로 반복되는지를 나타내며, 회로의 속도를 결정합니다.
  • 마이크로컨트롤러와 같은 디지털 회로는 클럭 신호를 통해 명령을 순차적으로 실행합니다.

 

 

3. Reset Switch (리셋)

MCU에 펌웨어를 업로드하고 보드가 동작하는데 순차적으로 하나하나 다음동작을 이어나갈 것입니다. 이때 Reset를 누르면 동작의 순서를 다음으로 가지 않고 맨 처음으로 가게 됩니다. 이러한 리셋은 간단하게 해당 Atmega328의 핀(1번)에 Low신호가 활성화될 때 동작합니다. 

 

 

 

▶4. ICSP2

Atmega16의 ICSP와 동일한 동작을 합니다. 다만 실질적으로 Atmega328에 펌웨어나 부트로더를 많이 업로드하므로 이전과 달리 이제는 중요한 파트입니다.

 

 

▶5. GPIO

GPIO는 전자 회로에서 일반적인 입력 및 출력 핀을 제공하여 다양한 센서와 액추에이터를 제어하는 데 사용됩니다. GPIO 핀은 디지털과 아날로그 신호를 처리할 수 있으며, PWM 기능을 통해 아날로그 신호를 에뮬레이션 할 수 있습니다. 다양한 회로 및 프로그램에서 GPIO를 적절히 활용하면 복잡한 전자 시스템을 효과적으로 제어할 수 있습니다.

 

 

 

이상으로 아두이노 우노 보드의 회로에 대한 설명을 마치겠습니다. 다음 포스팅에서는 주요 부품들을 통해 브래드보드에 직접 아두이노보드를 만들어 보는 포스팅으로 이어가겠습니다.

감사합니다.

 

 

 

 

반응형