Changes

Jump to navigation Jump to search
69 bytes removed ,  17:01, 16 July 2013
Line 33: Line 33:  
* Photo Dojo (DSiWare)
 
* Photo Dojo (DSiWare)
   −
== Camera registers ==
+
== Camera registers (ARM7) ==
   −
The cameras are controlled and initialized with [[I2C_Bus#Cameras|I2C]]. The below registers are accessed by the arm9.
+
The cameras are controlled and initialized with [[I2C_Bus#Cameras|I2C Bus]] on ARM7 side.
 +
 
 +
== Camera registers (ARM9) ==
 +
 
 +
The actual data transfers are done on ARM9 side with below registers.
    
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
Line 54: Line 58:  
|  4
 
|  4
 
|  REG_CAMDATA
 
|  REG_CAMDATA
 +
|-
 +
|  0x04004210
 +
|  4
 +
|  REG_CAM_?
 +
|-
 +
|  0x04004214
 +
|  4
 +
|  REG_CAM_?
 
|}
 
|}
   Line 66: Line 78:  
|}
 
|}
   −
Used for resetting cameras/DSP. Once cameras/DSP are reset by poking this register, all three 0x0400420X camera registers return all-zero on reads. This might mean the DSP fw bin was unloaded?
+
Used for resetting cameras. Once cameras are reset by poking this register, all three 0x0400420X camera registers are set to zero.
    
=== REG_CAMCNT ===
 
=== REG_CAMCNT ===
Line 81: Line 93:  
|-
 
|-
 
| 5
 
| 5
| Resets cameras/DSP when set?
+
| Resets cameras when set?
 
|-
 
|-
 
| 7-6
 
| 7-6
Line 90: Line 102:  
|-
 
|-
 
| 10
 
| 10
| Set to 1 during init, 0 on cameras/DSP shutdown
+
| Set to 1 during init, 0 on cameras shutdown
 
|-
 
|-
 
| 11
 
| 11
| Set to 1 during init, 0 on cameras/DSP shutdown
+
| Set to 1 during init, 0 on cameras shutdown
 
|-
 
|-
 
| 12
 
| 12
Line 108: Line 120:  
|}
 
|}
   −
When the IRQ error flag is set when the cameras [[Interrupts|IRQ]] handler is executing, the cameras are shut off.
+
When the IRQ error flag is set when the cameras [[Interrupts|IRQ]] handler is executing, the cameras are shut off. The cameras I2C devices are powered off until cameras are initialized via this register.
    
=== REG_CAMDATA ===
 
=== REG_CAMDATA ===
Line 117: Line 129:  
|-
 
|-
 
| 31-0
 
| 31-0
| RGB555 video data converted by DSP
+
| RGB555 video data converted by internal-cameras DSP
 
|}
 
|}
   −
For retrieving camera video data, [[NDMA]] with arm9 startup mode 11(camera) is used with this src register. The NDMA frame transfer is started when the cameras [[Interrupts|IRQ]] was thrown. Supported DSP final resolutions are 256x192 and 640x480, the corresponding frame transfer lengths are 0x18000 and 0x96000.(The 256x192 final resolution is converted by the DSP from the camera resolution)
+
For retrieving camera video data, [[NDMA]] with arm9 startup mode 11(camera) is used with this src register. The NDMA frame transfer is started when the cameras [[Interrupts|IRQ]] was thrown. Supported internal-cameras DSP final resolutions are 256x192 and 640x480, the corresponding frame transfer lengths are 0x18000 and 0x96000.(The 256x192 final resolution is converted by the internal-cameras DSP from the camera resolution)
 
  −
The DSP is a proprietary CEVA DSP, since this ISA is proprietary fw binaries can't be compiled for it. Thus homebrew can't use cameras unless it's possible to initialize cameras without poking REG_CAMRST,(which seems to unload the proprietary DSP fw bin) which might not be possible.
      
== See also ==
 
== See also ==
108

edits

Navigation menu