Changeset 1444 for trunk

Show
Ignore:
Timestamp:
11/16/08 18:35:56 (15 years ago)
Author:
jwoithe
Message:

More device documentation updates.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/libffado/doc/rme_notes/rme_config_register_map.txt

    r1420 r1444  
    22============================================ 
    33 
    4 Version: 0.2 
     4Version: 0.3 
    55Author: Jonathan Woithe 
    6 Date: 6 November 2008 
     6Date: 15 November 2008 
    77 
    88 
     
    142142streaming. 
    143143 
    144 Streaming start parameter register (0x20000001c): 
    145  
    146 This register comprises the 3 quadlets starting at address 0x20000001c.  The 
    147 first quadlet contains the sample rate in Hz.  The second and third quadlets 
    148 were always observed to take the values 0x0000e000 and 0x0000001c 
    149 respectively. 
     144Device (streaming) initialisation register (FF800: 0x20000001c, FF400: CBA) 
     145 
     146This register comprises the 3 quadlets starting at address 0x20000001c on 
     147the FF800 and the CBA on the FF400.  The first quadlet contains the sample 
     148rate in Hz.  The second quadlet is mapped as follows: 
     149  bits 31-11 = number of audio channels 
     150  bits 10-0  = iso tx channel (PC to interface) 
     151In all local tests with a FF800 the value of this quadlet was always equal 
     152to 0x0000e000 (28 channels, PC transmits on iso channel 0). 
     153 
     154The third quadlet is mapped as follows. 
     155  bits 10-0 = number of audio channels 
     156  bit 11    = speed flag; set to 1 if firewire bus is at 800 Mbps 
     157In local tests with a FF800 the value of this register was always 0x0000001c 
     158(28 channels, 400 Mbps firewire bus). 
    150159 
    151160After this register is configured, 4 quadlets are read starting from 
     
    153162those written to this same location later on. 
    154163 
    155 Streaming start ready register (0x200000028): 
    156  
    157 A value of 0x1c000000 is written to this register after the streaming start 
    158 parameter register has been written to. 
    159  
    160 Streaming channel setup register (0x801c0000): 
    161  
    162 After writing to the streaming start ready register, 0x70 bytes (28 
    163 quadlets) are written starting at 0x801c0000.  Each quadlet appears to 
    164 represent one channel on the Fireface800.  On closing down streaming each 
    165 quadlet is set to 1, while during startup some values are set to zero 
    166 (although they are probably not the channels being opened for playback, more 
    167 testing is needed).  Irrespective of the setting of these registers it 
    168 appears that data for all channels is always sent to/from the Fireface-800. 
    169  
    170 This register is also read during streaming setup but the returned value 
    171 bears little relationship to that which is written to it.  The purpose of 
    172 this read and/or the meaning of the returned value is as yet unknown. 
    173  
    174 Streaming end register (0x200000034): 
    175  
    176 3 zero quadlets are written starting at address 0x200000034 to stop 
    177 streaming. 
     164Device (streaming) start register (FF800: 0x200000028, FF400: CBA+0x1c): 
     165 
     166The start of streaming differs between the FF800 in more than just the 
     167address of the relevant register.  On the FF800 this register is mapped 
     168as follows: 
     169  bits 10-0 = number of audio channels 
     170  bit 11    = bus speed flag; set to 1 if firewire bus is at 800 Mbps 
     171On a FF400 the register is as follows: 
     172  bits 4-0  = number of audio channels 
     173  bits 9-5  = iso tx channel (PC to interface) 
     174During initial testing with a FF800 the value of this register was always  
     1750x0000001c (28 audio channels, PC tx on iso channel 0). 
     176 
     177Channel mute setup register (write to 0x801c0000): 
     178 
     179After writing to the streaming start register, 0x70 bytes (28 quadlets) are 
     180written starting at 0x801c0000.  Each quadlet represents one channel on the 
     181Fireface800.  A value of 1 mutes the respective channel - indeed on closing 
     182down streaming each quadlet is set to 1.  During startup some values are set 
     183to zero - the ones set to zero may be determined by the channels which have 
     184active software data sources although this is yet to be confirmed with more 
     185testing.  Irrespective of the setting of these registers it appears that 
     186data for all channels is always sent to/from the Fireface-800. 
     187 
     188Note that when register 0x801c0000 is read it functions as the device status 
     189register.  It is read during streaming setup, but obviously it bears no 
     190relationship to the channel mute status. 
     191 
     192Streaming end register (FF800: 0x200000034, FF400: CBA+0x4): 
     193 
     194On the FF800, streaming is stopped by writing 3 zeroed quadlets to 
     195consecutive registers starting at address 0x200000034.  For the FF400 one 
     196writes 3 zeroed quadlets to consecutive registers from CBA+0x4, followed 
     197by a 0x00000001 to CBA+0x10 (making a 4-quadlet write in total). 
    178198 
    179199