뉴티씨



  • HOME
  • 고객지원
  • 질문답변


 
N.T.C. 님의 ATMEGA에 대해 올리신 글을 감사히 보았습니다.
 글쓴이 : 관리자
작성일 : 17-11-12 21:47
조회 : 21  

안녕하세요? 고객님,
저희 뉴티씨 제품을 이용하여 주셔서 감사합니다.

정확한 질문 답변을 위해서는 이곳 고객지원에 올려주셔야 가능합니다.
전화상으로 문의하시면, 담당 직원의 지식만으로 최대한 설명드리게 되므로,
빠를 수는 있겠지만, 부정확하거나 내용이 부족하게 전달되어 서로 다른 얘기를 하게될 수도 있습니다.

이 질문으로 이해하여 보면, 입력을 쓰시려는 것 같습니다.

확실히, 각 포트들은 멀티핀 기능을 제공하므로,
각 포트별 멀티핀 기능에 따라서, 조금씩 내부 회로가 다릅니다.

하지만, 기본적으로는 Input/Output이 모든 포트에서 가능합니다.

전원을 켜면 시스템이 리셋되는데,
그 때, 플래쉬메모리 첫번째 영역의 프로그램이 실행되기 시작합니다.
또한, 프로그램이 들어가기 전에는 모든 DDR레지스터가 설명처럼 0으로 초기화되므로,
입력핀으로 되어 있습니다.

하지만, 확실히 하기 위하여,  프로그램에서 사용하는 포트를 DDRx=0x00; 이렇게 해주시는 것이 좋겠습니다.
또한, 사용하는 포트들이 혹시라도 AVR 외부회로적으로 풀업이 되어 있거나, 그런 효과를 내도록 하는 회로가 연결된 핀들은 입력핀으로 사용하지 않는 것이 좋습니다.

또한, 그라운드와의 사이에 커패시터가 연결된 I/O핀은 입출력 전환 속도가 매우 느릴 수 있으므로,
꼭 필요한 경우를 제외하고는 가능하면,  I/O로 사용하지 않는 것이 좋겠습니다.

경험상 보면, ATMEGA128은 PORTF, PORTA 등이 입력핀으로 쓰면 좋습니다.
PORTC, PORTA는 출력으로 쓰면 좋습니다.

PORTB에는 D1에 SCK핀이 있는데, 이핀에는 출력으로 쓰지 않는 것이 좋습니다.
출력으로쓰면, 간혹 ISP 다운로딩에 문제가 생기는 경우도 있습니다.

PORTD에는 UART1이 PORTE에는 UART0가 있으므로,
UART통신으로 시리얼 쓰실 때에는 해당핀들을 주의하여 I/O로 사용하셔야 합니다.

또한, 입력으로 사용하지 않는 핀들은 반드시 전류소모를 절약하기 위하고, 제품의 안정성을 높이기 위하여, 반드시 외부풀업등을 통하여 정확한 전압을 정해주는 것이 좋습니다. DDRx로 내부풀업만을 할 경우에는 리셋되는 동안 풀업이 풀리게 되므로, 시스템이 불안정해질 수 있습니다.

감사합니다.


>
>
> 어제 기술문의를 전화상으로 드렸었는 데 확실한 결론은 풀업회로가 구성되지 않은 비트를 사용하는게 좋고 굳이 사용해야 한다면 옵션을 사용해서 입력이 가능하게끔 해야 한다는 답변을 들었습니다. 그 내용은 정확히 이해했으나 제가ATMEGA를 처음 접하는 상황이라 이해를 구합니다.^^
>
> 요즘 "AVR Microcontroller and Embedded Systems" 이란 책을 하루에 많으면 20페이지 정도를 읽고 있는데 리셋에 관한 설명 중 "After applying reset, contents of all registers and SRAM locations will be cleared. Notice that after applying reset, all ports will be input because contents of all DDR registers are cleared. "
> 이란 내용이 있습니다. 이는 ATmega32에 관한 설명이지만 리셋 기능은 비슷할 것 같은데...
>
> 어제 전화로 설명해 주신것과 달라서요. 왜 그런지 궁금합니다. 가르쳐 주시면 무척 감사하겠습니닷 꾸벅^^
>