전원 전압에 따라 출력이 변화하는 외장 회로를 이용하지 않고 마이크로 컴퓨터의 연산 처리에서 난수를 생성할 수 있는 난수 발생 장치를 제공한다. 배터리팩을 충전하는 충전기의 마이크로컴퓨터에는 메인 발진 회로와 서브 발진 회로가 구비된다. 서브 발진 회로는 메인 발진 회로에 비해 온도 의존성이 높고 타이머에서 시간을 계시하는데 이용된다. 마이크로컴퓨터는 온도 의존성이 낮은 메인 발진 회로로부터의 클럭으로 동작하고 배터리팩 인증을 위해 난수를 생성한다. 난수 생성 시, 마이크로컴퓨터는 타이머에 의한 서브 클록의 카운트를 시작해(S110), 그 후, 타이머의 카운트값이 소정값에 도달해 타이머 인터럽션이 있을 때까지의 시간을 변수 i를 카운트함으로써 계측한다(S120,S130). 타이머 스타트 후 타이머 인터럽션이 발생하는까지의 시간은 서브 발진 회로의 온도에 의해 변화하기 때문에, 메인 클럭을 이용하여 계측함으로써, 난수를 생성할 수 있다.
To provide a random number generating device capable of generating random numbers in an arithmetic process of a microcomputer without using an external circuit an output of which changes according to a power supply voltage. A microcomputer of a charger for charging a battery pack includes a main oscillation circuit and a sub oscillation circuit. The sub oscillation circuit exhibits higher temperature dependence than that of the main oscillation circuit and is used for counting a time by a timer. The microcomputer is operated by a clock from the main oscillation circuit exerting low temperature dependence and generates a random number for authenticating the battery pack. When generating the random number, the microcomputer starts to count a sub clock by the timer (S110), and later measures a time from when the count value of the timer reaches a predetermined value till a timer interruption occurs, by counting a variable i (S120 and S130). The time from starting the timer till occurring the timer interruption changes according to a temperature of the sub oscillation circuit. This configuration can thus generate the random number by measuring the time using the main clock.