GenaSPB 11 28 ноября, 2014 Опубликовано 28 ноября, 2014 (изменено) · Жалоба Кто знает/подскажет, при использовании fixed point (S0.29) какой размер коэффициентов подставлять в coef_seq? Я подбирал такое для того, чтобы шина параметров стала 32 бит, нормирую сам (результат почти совпадает с тем, что показывается на закладке просмотра коэффициентов). Вызываю так: coef_seq.exe fir_normalized_coeff_lpf_1550.txt fir_normalized_coeff_lpf_1550_reseq.txt SER M4K MSYM 32 2 SGL 1 32 Параметры в аттачменте... после моей загрузки АЧХ отличается от того, что с предзагруженными фильтрами. Изменено 28 ноября, 2014 пользователем Genadi Zawidowski Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 29 ноября, 2014 Опубликовано 29 ноября, 2014 (изменено) · Жалоба Похоже, дело в последовательности дёргания выводов мегафункции. Попробовал - создал набор коэффициентов из 481 нуля, отдал на обрботку coef_seq. Получил от неё те же нули, только побольше. После загрузки сигнал на выходе фильтра продолжает присутствовать (АЧХ меняется, но не так как требуется). Вот функция: // Биты доступа к массиву коэффициентов FIR фильтра в FPGA #define TARGET_FPGA_FIR_PORT_C(v) do { GPIOH->REGSETRESET_C = (v); __DSB(); } while (0) #define TARGET_FPGA_FIR_PORT_S(v) do { GPIOH->REGSETRESET_S = (v); __DSB(); } while (0) #define TARGET_FPGA_FIR_CLK_BIT (1U << 0) /* PH0 - XTAL1 - fir clocl */ #define TARGET_FPGA_FIR_CS_BIT (1U << 1) /* PH1 - XTAL2 - fir nce */ //#define TARGET_FPGA_FIR_CS_BIT (1U << 10) /* PF10 - SPDIF_USER1 */ #define TARGET_FPGA_FIR_INITIALIZE() do { \ arm_hardware_pioh_outputs(TARGET_FPGA_FIR_CS_BIT, TARGET_FPGA_FIR_CS_BIT); \ arm_hardware_pioh_outputs(TARGET_FPGA_FIR_CLK_BIT, 0); \ } while (0) static void board_fpga_fir_initialize(void) { TARGET_FPGA_FIR_INITIALIZE(); } static void board_fpga_fir_strobe(void) { // strobe TARGET_FPGA_FIR_PORT_S(TARGET_FPGA_FIR_CLK_BIT); __DSB(); TARGET_FPGA_FIR_PORT_C(TARGET_FPGA_FIR_CLK_BIT); __DSB(); } static const FLASHMEM int_fast32_t board_fir_seq [] = { //#include "..\tools\coef_seq\fir_normalized_coeff_lpf_200_reseq.txt" //#include "..\tools\coef_seq\fir_normalized_coeff_lpf_1550_reseq.txt" #include "..\tools\coef_seq\fir_normalized_coeff_zero_reseq.txt" }; /* Выдача расчитанных параметров фильтра в FPGA */ static void board_fpga_fir_send(void) { //hardware_spi_connect16w(SPIC_SPEEDUFAST, SPIC_MODE3); hardware_spi_connect16w(SPIC_SPEEDFAST, SPIC_MODE3); // strobe board_fpga_fir_strobe(); // one strobe without WE required //prog_select(targetfir1); TARGET_FPGA_FIR_PORT_C(TARGET_FPGA_FIR_CS_BIT); unsigned i = 0; { const int_fast32_t v = board_fir_seq [i]; // here "0" value hardware_spi_word_p1(v >> 16); hardware_spi_word_p2(v >> 0); hardware_spi_complete(); // strobe board_fpga_fir_strobe(); // 1-st dummy // strobe board_fpga_fir_strobe(); // 2-nd dummy // strobe board_fpga_fir_strobe(); } for (i = 1; i < sizeof board_fir_seq / sizeof board_fir_seq [0]; ++ i) { const int_fast32_t v = board_fir_seq [i]; hardware_spi_word_p1(v >> 16); hardware_spi_word_p2(v >> 0); hardware_spi_complete(); // strobe board_fpga_fir_strobe(); } // strobe board_fpga_fir_strobe(); //prog_unselect(targetfir1); TARGET_FPGA_FIR_PORT_S(TARGET_FPGA_FIR_CS_BIT); // strobe board_fpga_fir_strobe(); hardware_spi_disconnect(); } Изменено 29 ноября, 2014 пользователем Genadi Zawidowski Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 4 декабря, 2014 Опубликовано 4 декабря, 2014 (изменено) · Жалоба Рискну сделать UP своего вопроса по использованию порта загрузки параметров фильтра в блок FIR Compiler (не FIR II Compiler) - Изменено 5 декабря, 2014 пользователем des00 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 5 декабря, 2014 Опубликовано 5 декабря, 2014 · Жалоба Рискну сделать UP своего вопроса по использованию порта загрузки параметров фильтра в блок FIR Compiler (не FIR II Compiler) - Проблема решена. Код, приведённый выше - правильный. Кроме того, пробравшись сквозь дебри _индусского_ кода coef_seq.cpp, сделана загрузка рассчитанных параметров фильтра "на лету" - пользователь крутит ручку и слушает результат работы фильтров сразу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 24 июня, 2015 Опубликовано 24 июня, 2015 · Жалоба Есть ли какие-нибудь способы кроме "писать самому" чтобы получить FIR фильтр с разрядностью входных данных больше, чем 32? Altera. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться