Difference between revisions of "Readout Card firmware"
From MCEWiki
(→4.0.9) |
|||
Line 8: | Line 8: | ||
* '''Feautres''' | * '''Feautres''' | ||
** sa_bias and offset DACs only refreshed when new values are written. (in previous versions, DACs were refreshed every frame) | ** sa_bias and offset DACs only refreshed when new values are written. (in previous versions, DACs were refreshed every frame) | ||
+ | * '''Bugs''' | ||
+ | ** reading flx_quanta and adc_offset right after power up hangs the reply datapath to CC. resetmce clears this error as temporary solution. the problem is caused by first read ack of the wishbone slave. | ||
== 4.0.8 == | == 4.0.8 == |
Revision as of 15:30, 27 June 2008
Contents
Stable Firmware Revisions
- 4.0.6 for normal operation (http://www.phas.ubc.ca/~mce/mcedocs/firmware/rc_v04000006_15feb2008.sof)
- 4.3.7 for 50MHz data acquisition (14 bit) (http://www.phas.ubc.ca/~mce/mcedocs/firmware/rc_v04030007_26may2008_raw.sof)
- 4.2.7 for 50MHz data acquisition (8 bit)
4.0.9
- Filename : rc_v04000009_26jun2008.sof
- Feautres
- sa_bias and offset DACs only refreshed when new values are written. (in previous versions, DACs were refreshed every frame)
- Bugs
- reading flx_quanta and adc_offset right after power up hangs the reply datapath to CC. resetmce clears this error as temporary solution. the problem is caused by first read ack of the wishbone slave.
4.0.8
- Filename : rc_v04000008_26jun2008.sof
- Feautres
- The gaini, gainp, gaind resolution increased to 12-bit, i.e. -2048 to 2047 (formerly 10-bit).
- Bug fix
- the bug associated with gainpid read before mce_reset is fixed.
4.3.7
- Filename : rc_v04030007_26may2008_raw.sof
- Feautres
- 14-bit raw mode enabled to buffer a snapshot of 50MHz samples for 2 frames of row_len * num_rows samples.
- In order to extend the raw-mode to 14-bit, an assumption is made that the raw buffer is not written to while being read. Therefore, make sure there is at least 2*row_len*num_rows*20ns between issuing captr_raw command and reading back the raw data.
- In order to save RAM for raw mode, two memory-intensive features are disabled:
- low-pass filter disabled ( mixed filtfb data modes 6, 7, 9 are also disabled)
- PID (gainp0, gaini0, gaind0) readback disabled. one can still set PID values and run servo, but can not read back the values.
4.2.7
- Filename : rc_v04020007_24may2008_raw.sof
- Feautres
- raw mode enabled to buffer a snapshot of 50MHz samples for 2 frames of row_len * num_rows samples.
- In order to save RAM for raw mode, two memory-intensive features are disabled:
- low-pass filter disabled ( mixed filtfb data modes 6, 7, 9 are also disabled)
- PID (gainp0, gaini0, gaind0) readback disabled. one can still set PID values and run servo, but can not read back the values.
- Bug fix
- the bug associated with reading from raw-buffer is fixed.
4.1.7
- Filename : rc_v04010007_25apr2008_raw.sof
- Feautres
- raw mode enabled to buffer a snapshot of 50MHz samples for 2 frames of row_len * num_rows samples.
- In order to save RAM for raw mode, two memory-intensive features are disabled:
- low-pass filter disabled ( mixed filtfb data modes 6, 7, 9 are also disabled)
- PID (gainp0, gaini0, gaind0) readback disabled. one can still set PID values and run servo, but can not read back the values.
- Bugs
- after each readout frame, raw-buffer readout counter falls behind by 3 and this causes skipping 3 50MHz samples in the data stream and column-data being messed up in subsequent frames. Data can be rearranged by post processing.
4.0.6
- Filename : rc_v04000006_15feb2008.sof or .pof
- Feautres
- bugfix: unreliable reset due to unsafe and incomplete state machines is fixed.
- bugfix: flux_jump sign problem fixed, so far proved in const_mode, to be tested in servo_mode with cold setup.
- servo_mode=2 or ramp previously only went from 0 to ramp_amp, but now goes from -8192 to -8192+ramp_amp
- new commands are added: scratch and card_type. Scratch takes 8 values and can be used by software to detect reset.
- slot_id and fw_rev are now integrated as part of all_cards.vhd
- lvds_tx_b=0, This will allow Clock Card to use the secondary backplane lvds line and check whether RC is plugged in.
- filter_coeff in misc_banks_admin commented as it is not implemented and causes timing problems.
- Bugs
- reading gainp/gaini/gaind right after power up hangs the reply datapath to CC. resetmce clears this error as temporary solution. the problem is caused by first read ack of pid_ram_admin.
- slot_id is only set after a resetmce is issued. (using the latest all_cards in the next revision will fix this)
4.0.5
- Filename : rc_v04000005_01nov2007.sof or .pof
- Feautres
- data mode 9 (mixed filt + flux jump) with windowing readjusted compared to data mode 8
- Bugs
- unreliable resetmce. Sometimes, firmware waked up non-responsive on lvds lines.
- In data mode 5 and 9, flux-jump counter is not reported properly due to a sign error. However, flux jumping works fine.
3.0.19
- Filename : rc_v03000019_16feb2007_raw.sof (no pof as one is not likely to run with this as regular firmware)
- Feautres
- data mode 3 is enabled.
- filter is disabled as a compromise to fit the raw-mode buffer.
- Bugs
- unreliable resetmce. Sometimes, firmware waked up non-responsive on lvds lines.
Old versions
- 4.0.4 rc_v04000004_11oct2007.sof data mode 8 added (mixed filt + flux jump)
- 4.0.3 rc_v04000003_19sep2007.sof data mode 7 bit split readjusted to 10b error being bit 4 to 14
- 4.0.2 rc_v04000002_11sep2007.sof pid resolution increased to 10b, data mode 7 added
- 4.0.1 rc_v04000001_06sep2007.sof
- 4.0.0 rc_v04000000_29aug2007.sof supports readout_row_index * bugs
to-do list
- bug : After power up, first readout from gainp/gaini/gaind parameters hangs the wishbone unless a reset is issued.
- reduce co-add storage from 32b wide to 24b (14b adc + 10b (for coadding upto 1024 samples))
- reduce the width for pid calculations
- update sa_bias/offset once when written to as oppose to reload every frame