]> rtime.felk.cvut.cz Git - fpga/lx-cpu1/lx-rocon.git/commitdiff
RoCoN: TUMBL firmware commutation test.
authorPavel Pisa <ppisa@pikron.com>
Fri, 12 Dec 2014 21:22:01 +0000 (22:22 +0100)
committerPavel Pisa <ppisa@pikron.com>
Fri, 12 Dec 2014 21:22:01 +0000 (22:22 +0100)
It provides PWM commutation only and requires phase
table to be aligned by prior run of RoCoN LPC
firmware.

Signed-off-by: Pavel Pisa <ppisa@pikron.com>
sw/app/rocon/appl_tests.c

index 852e88429c7985c82bfcc3e969f7fb593a3ee860..0e932e362c525a1403773a915ca73a8b541a2db7 100644 (file)
@@ -12,6 +12,7 @@
 #include <LPC17xx.h>
 #include <lpcTIM.h>
 #include <spi_drv.h>
+#include <pxmc.h>
 
 #include <ul_log.h>
 #include <ul_logreg.h>
@@ -378,6 +379,51 @@ int cmd_do_testfncapprox(cmd_io_t *cmd_io, const struct cmd_des *des, char *para
   return 0;
 }
 
+int cmd_do_testtumblefw(cmd_io_t *cmd_io, const struct cmd_des *des, char *param[])
+{
+  char *ps = param[1];
+  long pwm_d;
+  long pwm_q;
+  uint32_t ptofs;
+  uint32_t irc;
+  uint32_t ptirc;
+  uint32_t ptreci;
+  uint64_t ull;
+  pxmc_state_t *mcs = pxmc_main_list.pxml_arr[0];
+
+  fpga_tumbl_dmem[0] = 0;
+
+  si_skspace(&ps);
+  if (si_long(&ps, &pwm_d, 0) < 0)
+      return -CMDERR_BADPAR;
+
+  si_skspace(&ps);
+  if (si_ulong(&ps, &pwm_q, 0) < 0)
+        return -CMDERR_BADPAR;
+
+  irc = fpga_irc[0]->count;
+  ptofs = (int16_t)(mcs->pxms_ptofs - irc) + irc;
+
+  ptirc = mcs->pxms_ptirc;
+  ull = (1ULL << 32) * mcs->pxms_ptper;
+  ptreci = (ull + ptirc / 2) / ptirc;
+
+  fpga_tumbl_dmem[0] = 0;
+  fpga_tumbl_dmem[1] = pwm_d;
+  fpga_tumbl_dmem[2] = pwm_q;
+
+  fpga_tumbl_dmem[6] = ptirc;
+  fpga_tumbl_dmem[7] = ptreci;
+  fpga_tumbl_dmem[8] = ptofs;
+
+  fpga_tumbl_dmem[0] = 1;
+
+  printf("spd %ld\n",mcs->pxms_as);
+
+  return 0;
+}
+
+
 cmd_des_t const cmd_des_test_memusage = {0, 0,
                 "memusage", "report memory usage", cmd_do_test_memusage,
 {
@@ -450,6 +496,11 @@ cmd_des_t const cmd_des_testfncapprox = {0, 0,
                                      cmd_do_testfncapprox, {(void *)0}
                                     };
 
+cmd_des_t const cmd_des_testtumblefw = {0, 0,
+                                     "testtumblefw", "test Tumble coprocesor firmware",
+                                     cmd_do_testtumblefw, {(void *)0}
+                                    };
+
 cmd_des_t const *const cmd_appl_tests[] =
 {
   &cmd_des_test_memusage,
@@ -467,5 +518,6 @@ cmd_des_t const *const cmd_appl_tests[] =
   &cmd_des_testlxpwrrx,
   &cmd_des_testlxpwrstat,
   &cmd_des_testfncapprox,
+  &cmd_des_testtumblefw,
   NULL
 };