나는 digikey에서 결함 해협 인 부품을 다루지 않았지만 내가받은 3 가지 새로운 Atmel ATmega164A는 매우 이상한 행동을 보여 왔습니다.
나는 클럭과 관련이있는 것으로 좁혔으며, 아마도 "공장 교정 된"내부 발진기의 결과적인 클럭 신호는 1MHz의 고체 대신 650-700 kHz 사이에서 지 터링하는 것으로 밝혀졌다. 나는 1MHz에 매우 가깝게하기 위해 캘리브레이션 바이트에 쓸 수 있었고 (여전히 약간의 지터가 있지만) 대부분의 작업은 작동하지만 UART는 제대로 작동하지 않습니다. 당신이 그들에게 요청하는 것.
나는이 마이크로 컨트롤러의 저전력 버전 (164P)을 제로 문제로 다루었 고 그것을 제자리에 놓고 클럭 출력과 지터가없는 견고한 1MHz를 확인하기로 결정했습니다. 이 164A 칩에 결함이 있다는 결론에 기울고 있지만 확인을 시도 할 수있는 다른 테스트가 있습니까?
편집 : 방금 시계를 측정하는 프로세스를 설명한다고 생각했습니다. 클럭 출력 퓨즈 비트를 활성화하고 로직 분석기 샘플링으로 적절한 핀을 매우 높은 속도로 측정했습니다. 캘리브레이션 레지스터에 쓰는 프로그램이 있는데 OSCCAL
1MHz로 시험하고 오류를 일으킬 수있었습니다.
편집 # 2 : 추가 조사 후, 특정 프로그램 크기 후에 마이크로 컨트롤러가 작동하기 시작 합니다.문지방. LED를 깜박이는 단일 소스 파일을 가진 기본 프로젝트는 괜찮은 것처럼 보이지만 해당 메소드를 호출하지 않고도 다른 파일 (UART 라이브러리 등)을 컴파일하고 링크하면 마이크로 컨트롤러가 작동합니다. 위에서 설명한 동작. 전원 연결이 양호하고 적절한 디커플링이 수행되었습니다. 현재로서는 더 이상 디버깅 할 시간이 없으므로 저전력 버전을 대신 사용했습니다. 1) 164A와 164P가 코드와 호환되지 않는 곳이 어디인지 정확히 모르겠습니다. 2)이 두 uC의 프로그래밍 절차가 다릅니다. 3) 장치에 결함이 있습니다. 보드 설계에 확신이 있으며 전원 문제를 배제 할 것입니다. 불행히도, 나는 정답을 선택할 수 없으므로이 질문을 그대로 두겠습니다. 아마도 나중에 다시 문제로 돌아옵니다. 통찰력있는 의견이나 답변을 제공 한 모든 사람에게 감사의 말은 uC 문제가있는 다른 사람에게 유용 할 수 있습니다.