ATMEGA8을 사용한 7 Segment 출력 발열 문제

grasia08의 이미지

atmega8을 사용하여 약 4개의 ADC 포트를 각각 측정하면서 7 Segment 3개를 이용하여 하나의 전압을 측정하는 것에 대한 코드를 짜고 있습니다.

문제는 while문 안에 7 Segment를 출력하는 구문을 넣고 작동을 시키니 atmega8에서 발열이 일어납니다.
전에 다른 atmeag128의 경우는 발열이 없었는데 말이죠.

타이머를 사용하여 주기적으로 segment를 출력하는 함수를 on/off 시키는 방법을 사용하여 봤습니다만 일단 그 방법을 사용하면 인터럽트 주기가 짧아서 그런지 다른 함수나 출력함수가 실행되지 않더군요.

그래서 호구지책으로 해본 결과 while문에서 호출회수가 일정 이상이면 segment를 출력하는 방법으로 해결을 했습니다.

일단 해결을 하긴 했습니다만 기판 설계상의 문제인지 원래 atmega8의 지원 문제인지 판단이 서지 않아서 물어봅니다.

익명 사용자의 이미지

각 pinout에서 내보내는 전류량을 계산해 보시죠.. Vcc 5V라면 pinout에서 바라보는 저항을 계산해서 drive하는 총전류를 계산해보고 반대로 sync하는 pin-in 전류를 계산해보고.. 결과를 data sheet와 비교해보고 그렇게 하는 수 밖에 없지 않나 싶네요...

grasia08의 이미지

주먹구구 식으로 프로그램 부분만 집중해서 하다 보니 그런 부분을 생각지도 못했습니다.
한번 살펴 봐야 겠습니다.

익명 사용자의 이미지

grasia08의 이미지

비슷한거 만들고 있습니다.
지금은 딴 거 만들고 있어서 더 머리가 아프더군요.

klenui의 이미지

문득 생각해보니 이런 경우도 있지 않나 생각해 봅니다.

여러개의 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만 바꿨는데 열이 난다고 하시니 이경우가 아닐까 싶습니다.

도움이 되었으면 좋겠네요..

grasia08의 이미지

저는 대학교에서 웹 프로그램쪽 배우다가 취직을 이쪽으로 해서 고생하고 있던 참이라 초보가 맞습니다.
하면서 느끼는 거지만 웹 쪽에서 그것도 대학교에서 배우는 수준으로는 사소한 것에 대한건 대부분 무시하는 편이라 아에 새로 배우는 게 낮다라는 생각이 들고 있었습니다.

작다면 작은 팁이지만 다른 작업을 할 때마다 이 댓글을 생각하면서 해 봐야 겠군요.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.