Btw, the 350D creates about 3850 levels. How did you arrive at 3000 levels?
My fault, the image under test was not fully exposed. I have taken a fully exposed ISO100 image (deep shadows to 3-channel blown highlights histogram), and got:
Filled levels:
R: 3844 (5,9% of available in 16 bits)
G: 3845 (5,9% of available in 16 bits)
B: 3845 (5,9% of available in 16 bits)
Dynamic range:
R: 3844, range [252..4095]
Don't pay attention to the RGB distinctions since my histogram program does not recognize yet the Bayer distribution, but the figures (~3850) match yours.
that's disappointing. Does it have a higher black level or simply doesn't reach 4095?