ATMEGA8을 사용한 7 Segment 출력 발열 문제
글쓴이: grasia08 / 작성시간: 월, 2014/01/13 - 9:19오전
atmega8을 사용하여 약 4개의 ADC 포트를 각각 측정하면서 7 Segment 3개를 이용하여 하나의 전압을 측정하는 것에 대한 코드를 짜고 있습니다.
문제는 while문 안에 7 Segment를 출력하는 구문을 넣고 작동을 시키니 atmega8에서 발열이 일어납니다.
전에 다른 atmeag128의 경우는 발열이 없었는데 말이죠.
타이머를 사용하여 주기적으로 segment를 출력하는 함수를 on/off 시키는 방법을 사용하여 봤습니다만 일단 그 방법을 사용하면 인터럽트 주기가 짧아서 그런지 다른 함수나 출력함수가 실행되지 않더군요.
그래서 호구지책으로 해본 결과 while문에서 호출회수가 일정 이상이면 segment를 출력하는 방법으로 해결을 했습니다.
일단 해결을 하긴 했습니다만 기판 설계상의 문제인지 원래 atmega8의 지원 문제인지 판단이 서지 않아서 물어봅니다.
Forums:
각 pinout에서 내보내는 전류량을 계산해
각 pinout에서 내보내는 전류량을 계산해 보시죠.. Vcc 5V라면 pinout에서 바라보는 저항을 계산해서 drive하는 총전류를 계산해보고 반대로 sync하는 pin-in 전류를 계산해보고.. 결과를 data sheet와 비교해보고 그렇게 하는 수 밖에 없지 않나 싶네요...
감사합니다.
주먹구구 식으로 프로그램 부분만 집중해서 하다 보니 그런 부분을 생각지도 못했습니다.
한번 살펴 봐야 겠습니다.
http://tuxgraphics.org/electr
http://tuxgraphics.org/electronics/200706/mini-digital-voltmeter.shtml
이런거 비슷한 거 만드시나 보죠.
옙
비슷한거 만들고 있습니다.
지금은 딴 거 만들고 있어서 더 머리가 아프더군요.
문득 생각해보니 이런 경우도 있지 않나 생각해
문득 생각해보니 이런 경우도 있지 않나 생각해 봅니다.
여러개의 7-segment를 트랜지스터를 이용해서 동적으로 전류를 가하는 경우(10mA가 기본이지만 100ma쯤을 1/4 초마다 한번씩 열어주는 경우)
이 경우라면 다음 7-segment의 전류를 열어주기 전에 이전에 열려있던 전류를 닫아주고 열어주어야 할 겁니다. 안그러면 순간적으로 2개의 7-segment에 전류가 흐르겠지요..
예를 들어,
상위 tr --------------- 7-segment -------------- 하위 tr1
.........................|
.........................+------- 7-segment -------------- 하위 tr2
이런 식이라면 하위 tr1 열고, 상위 tr 열고, 상위 tr 닫고 하위 tr1 닫고, 하위 tr2 열고 상위 tr 열고.. 이런 흐름이 되어야 합니다.
(질문 올리신 분이 초보라는 가정하에 좀 길게 설명했습니다.)
그런데 반대로 순간적이라도 tr1과 tr2, 상위 tr이 동시에 열리는 순간이 있다면 전류가 많이 흐르고 열이 많이 날겁니다.
다만 cpu clock이 빨라서 이 시간이 짧으면 전류가 그래도 조금 흐를 것이고 clock 이 느려서 이시간이 길다면 더 많이 날겁니다.
mpu만 바꿨는데 열이 난다고 하시니 이경우가 아닐까 싶습니다.
도움이 되었으면 좋겠네요..
댓글 감사합니다.
저는 대학교에서 웹 프로그램쪽 배우다가 취직을 이쪽으로 해서 고생하고 있던 참이라 초보가 맞습니다.
하면서 느끼는 거지만 웹 쪽에서 그것도 대학교에서 배우는 수준으로는 사소한 것에 대한건 대부분 무시하는 편이라 아에 새로 배우는 게 낮다라는 생각이 들고 있었습니다.
작다면 작은 팁이지만 다른 작업을 할 때마다 이 댓글을 생각하면서 해 봐야 겠군요.
댓글 달기