Project Blacksphere Intro Hardware 331x/3330 Interrupts I/O Map Memory Ranges Timers GenSIO ARM DSP Phone models Peripherals Nokia OS Software Glossary of Terms Todo Credits Forum Guestbook

Timers

DCT3 has a heck of a lot of timers for such a small device, here are the known ones:

Timer 0: (programmable timer)

I/O 0x0F (byte) is clock divider
I/O 0x10 (halfword) is the current value read register
I/O 0x12 (halfword) is the destination (next interrupt) register
Clock speed is 33055Hz/(divider+1)
When the current value reaches the destination IRQ 4 is generated. Timer is not reset on reaching it's desination.

Timer 1: (yet another timer)

I/O 0x04 (halfword) is the current value read register
Clock speed is 1057Hz
When the current value reaches 0x7FFF *interrupt* is generated, and the timer is reset to 0.

ASIC watchdog timer

I/O 0x03 (byte) sets the current value in seconds. Value 0xFF disables the timer.
When the value reaches zero, the MAD is reset

CCont watchdog timer

CCont 0x05 sets the current value in seconds. Value 0x3F disables the timer.
When the value reaches zero, the phone is turned off

Last updated: 2005-02-21 14:19

This site is the result of a great deal of assembly code reading, research, countless (mostly futile) searches for data sheets, cross-referencing and analysing. If you use this information in any way please mention wumpus <blacksphere@goliath.darktech.org> (and others in the credits section) in the credits of your program/document. And tell me :) If you have more information please contribute. If you just copy this, stick your name on it and call it yours I hope you get your genitals bitten off by a three headed monkey. Have a nice day.

No mobile phones were harmed in the production of this site.