From: Pavel Pisa Date: Fri, 12 Dec 2014 21:22:01 +0000 (+0100) Subject: RoCoN: TUMBL firmware commutation test. X-Git-Url: https://rtime.felk.cvut.cz/gitweb/fpga/lx-cpu1/lx-rocon.git/commitdiff_plain/cde49256b4abedcfc56ea29616b0dd02398f72de RoCoN: TUMBL firmware commutation test. It provides PWM commutation only and requires phase table to be aligned by prior run of RoCoN LPC firmware. Signed-off-by: Pavel Pisa --- diff --git a/sw/app/rocon/appl_tests.c b/sw/app/rocon/appl_tests.c index 852e884..0e932e3 100644 --- a/sw/app/rocon/appl_tests.c +++ b/sw/app/rocon/appl_tests.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include @@ -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 };