]> rtime.felk.cvut.cz Git - fpga/lx-cpu1/lx-rocon.git/commitdiff
RoCoN: Configure master FPGA for LXPWR design including power supply voltage ADC.
authorPavel Pisa <ppisa@pikron.com>
Tue, 11 Nov 2014 19:25:49 +0000 (20:25 +0100)
committerPavel Pisa <ppisa@pikron.com>
Tue, 11 Nov 2014 19:25:49 +0000 (20:25 +0100)
Signed-off-by: Pavel Pisa <ppisa@pikron.com>
sw/app/rocon/appl_pxmc.c

index cfc02d2f0d2082fa49da8fca4bb29d75a5f1fe3c..1b3ba543a9eaaed17dcea31b6a25dae9631baccb 100644 (file)
@@ -234,7 +234,7 @@ pxmc_rocon_receiver_chan2reg(unsigned chan)
   rec_reg = fpga_lx_master_receiver_base;
 
  #ifdef LXPWR_WITH_SIROLADC
-  rec_reg += LX_MASTER_DATA_OFFS + 1 + (chan >> 8) + chan * 2;
+  rec_reg += LX_MASTER_DATA_OFFS + 1 + (chan >> 8) * 3 + chan * 2;
  #else /*LXPWR_WITH_SIROLADC*/
   rec_reg += LX_MASTER_DATA_OFFS + chan;
  #endif /*LXPWR_WITH_SIROLADC*/
@@ -712,11 +712,15 @@ pxmc_rocon_pwm_master_init(void)
   int grp_out = 0;
   unsigned word_slot;
  #ifdef LXPWR_WITH_SIROLADC
-  unsigned lxpwr_words = 1 + 8 * 2;
+  unsigned lxpwr_header = 1;
+  unsigned lxpwr_words = 1 + 8 * 2 + 2;
   unsigned lxpwr_chips = 2;
+  unsigned lxpwr_chip_pwm_cnt = 8;
  #else /*LXPWR_WITH_SIROLADC*/
+  unsigned lxpwr_header = 0;
   unsigned lxpwr_words = 8;
   unsigned lxpwr_chips = 2;
+  unsigned lxpwr_chip_pwm_cnt = 8;
  #endif /*LXPWR_WITH_SIROLADC*/
 
   *fpga_lx_master_reset = 1;
@@ -732,16 +736,16 @@ pxmc_rocon_pwm_master_init(void)
   for (i = 0; i < LX_MASTER_DATA_OFFS + lxpwr_words * lxpwr_chips; i++)
     fpga_lx_master_transmitter_base[i] = 0;
 
-  word_slot = LX_MASTER_DATA_OFFS + lxpwr_words;
+  word_slot = LX_MASTER_DATA_OFFS + lxpwr_header + lxpwr_chip_pwm_cnt;
   fpga_lx_master_transmitter_base[grp_out++] = (word_slot << 8) | lxpwr_words;
  #ifdef LXPWR_WITH_SIROLADC
-  fpga_lx_master_transmitter_base[word_slot] = 0xc100 | lxpwr_words;
+  fpga_lx_master_transmitter_base[word_slot] = 0xc100 | (lxpwr_words - 1);
  #endif /*LXPWR_WITH_SIROLADC*/
 
   word_slot = LX_MASTER_DATA_OFFS + 0;
   fpga_lx_master_transmitter_base[grp_out++] = (word_slot << 8) | lxpwr_words;
  #ifdef LXPWR_WITH_SIROLADC
-  fpga_lx_master_transmitter_base[word_slot] = 0xc100 | lxpwr_words;
+  fpga_lx_master_transmitter_base[word_slot] = 0xc100 | (lxpwr_words - 1);
  #endif /*LXPWR_WITH_SIROLADC*/
 
   fpga_lx_master_transmitter_base[grp_out++] = 0x0000;