N900 Hardware Subsystems
There are many interacting hardware subsystems in the N900.
These can be split roughly into several areas.
Most of the audio on the N900 is handled by gstreamer and PulseAudio. See the API documentation on sound
 Main Speakers
The headphone amplifier is a TPA6130a2 manufactured by Texas Instruments.
 Composite out
 FM radio transmitter
Main article: N900 FM radio transmitter
 FM radio receiver
Main article: N900 FM radio receiver
 Bluetooth audio
The GPU is a SGX530 licensed from Imagination Technologies.
 Built in LCD
Main article: N900 LCD panel
 Composite out
 Front camera (VGA)
Main article: N900 VGA camera
 Rear camera (5MP)
Main article: N900 camera sensor
 Rear camera autofocus
Main article: N900 Hardware Autofocus
 Rear camera LED flash
Main article: N900 Hardware Flash Torch
 Rear camera warning light
 Rear camera shutter
Main article: N900 Hardware USB
 USB socket
Main article: N900 Hardware USB Socket
 User interaction
The touch screen controller is a TSC 2005.
Main article: N900 accelerometer
 Lock Switch
 Headset Switch
 Jack Switch
 Camera Button
 Power Button
 Volume control
 Rear cover presence switch
 Camera cover
Matrix keyboard connected to row[7:0] x col[7:0] dedicated matrixscanner IO at GAIA.
All QCOL traces and QROW7 trace are equipped with ESD protection against static discharge.
Each switch under a key is connected to one col and one row trace
|(QCOL->||__7__||__ 6__||__5__||__4__||__3__||__ 2__||__1__||__0_)|
For example pressing W connects QCOL0 to QROW1.
The matrix controller applies a certain level (say +3V) to first col QCOL0 and checks which rows are going to same level (QROW1 for 'W'). Then next col is the one to get +3V, and so on.
For Shift-X QCOL6 will pull up QROW4 and QROW2. For Shift-T QCOL6 and QCOL0 will pull up QROW4.
Now the nasty part of it:
Shift-Fn-K means QCOL5 will pull up QROW4, and QCOL6 will pull up QROW4 and QROW1. BUT: when QROW4 is pulled high by QCOL5, then via the closed Shift key QROW4 will pull high QCOL6, and QCOL6 will pull high QROW1 via K switch. So the matrix controller will see QROW4 and QROW1 both be high, for either of QCOL5 and QCOL6, which looks like 4 keys shift, Fn, K, and(!) J are pressed. Situation for Shift-Fn-J is absolutely identical, and so Sh-Fn-J and Sh-Fn-K are not distinguishable.
for 3-key tupels the combinations are:
Looking at this matrix, we notice two things:
1: Nokia missed to give real dedicated col-lines to the qualifier keys, though there would have been plenty, by simply arranging the keys in matrix in a smarter way. That would have completely avoided the above described N-key rollover issue
Another common method to fix this problem is to use diodes in series with the key switches. A diode for Ctrl, Shift, and Fn would be just enough here, adding to the BOM with only 3 parts a 2ct each.
2: U has its own row, and U is used for flashing (USB-flashing mode). Coincidence? Let's assume Nokia EE thought (for whatever weird reason) it might be clever to have a dedicated row for U (so they just pull high QCOL0 in NOLO bootloader and check the 8 row lines by reading in that byte). Then we might start to wonder what's with Y. And with I? And with T R W E Q? Nota bene press&hold multiple of those keys will always still deliver a nice clean easy-to-read 8bit result, on the presumed test during boot in NOLO
(p.s: maybe the rows are driven high - or even low - and the cols are the sensing inputs. I've not checked this, as it doesn't change anything in the basic function principle and neither changes the problem with N-key rollover. For the NOLO speculations it makes more sense to have inputs on rows and drivers on cols, though)
 Keyboard Slide
 Proximity sensor
 Ambient Light Meter
Main article: N900 light meter
 Power management
Main article: N900 Hardware Power management
 Charge meter
Main article: N900 Hardware Charge Meter
 Battery Charger
Main article: N900 Hardware Battery Charger
Main article: N900 Hardware Phone
Main article: N900 Hardware GPS
 2G/3G phone module
 Local Network
Main article: N900 Hardware Bluetooth
Main article: N900 Hardware Wifi
 USB Networking
Main article: N900 CPU
 Many functional blocks of the CPU
Main article: N900 Hardware Chipset
 Flash Memory
 Internal 32GB eMMC
 Internal 'OneNand' 256MB
 External microSD card
 Other hardware (needs merging into hierarchy above)
(Click on device for wiki page with more information)
|Digital Audio Data Serial Interface||TLV320AIC3x|
For those wanting to hack on the hardware drivers, the Maemo Kernel source code can be downloaded here:
- This page was last modified on 21 August 2016, at 18:09.
- This page has been accessed 27,028 times.