Перейти к содержанию
    

ataradov

Участник
  • Постов

    1 004
  • Зарегистрирован

  • Посещение

Весь контент ataradov


  1. IOBUS -это отдельная шина. Насчет возможности конвееризации STR - нужно проверять и возможно переписывать по-другому как-то, хотя сходу не ясно как. В документации обещают один цикл - значит должен быть способ этого добиться или нужно документацию менять. Сейчас поздно, голова уже не варит. Этот текст относится к Cortex-M3, SAM D20 - это M0+, и там таких ограничений сходу не видно. И "Table 3-1 Cortex-M0+ instruction summary" Cortex-M0+ TRM обещает 1 клок для single-cycle I/O port. Так что все должно работать.
  2. Это странно должно за 1 такт выполняться. Завтра на работе проверю.
  3. Обычный порт за 1 такт никто не обещал, но IOBUS должен работать. Не знаю как у вас объявлен PORTA, но со стандартными заголовками это будет так: PORT_IOBUS->Group[0].OUTTGL.reg = LED_RED;
  4. Теме 11 лет. Кому этот ответ может помочь?
  5. AT86RF215 если ничего более удобного не посоветуют.
  6. AS использует GCC, нужно на него доки читать. https://gcc.gnu.org/onlinedocs/gcc/Function...on-Pragmas.html
  7. RISC-V

    По крайней мере будет шанс, хоть и маленький. С ARM попытки сделать открытую реализацию заканчиваются письмами от юристов. Они точно открыты, а не как ARM DesignStart - код на Verilog, но обфусцированный? При прочих равных проще выбрать открытую архитектуру, даже если чипы и закрыты. И ARM это тоже понимает, поэтому сделал Cortex-M0+ и Cortex-M3 доступными всем через DesignStart.
  8. RISC-V

    Покупают Verilog, но и закладки сейчас не топорные идут. Понятно, что там регистра не будет специального, который доступ ко всему открывает. А вот незаметный "баг" по типу Meltdown и Spectre вполне можно заложить.
  9. Это применимо если АЦП был включен и выполнял преобразования до этого. Калибровку нужно выполнять после выключения и включения. Ну и при калибровке при перезапуске он и так будет выключен естественно.
  10. Подойдет, только к ней еще программатор нужно прикупить. А вообще лучше узнать что используют на лабах и попробовать найти подобное.
  11. RISC-V

    Кто девушку ужинает тот ее и танцует. Британским программистам скажут закладки включить - включат и не денутся никуда. Плюс SoftBank продал 25% Саудовской Аравии.
  12. Чем обычная fft() не устраивает? Нужно только результат в dB перевести, но это тривиально. В моем наборе функций есть fftplot(). Она довольно топорная, но посмотреть можно.
  13. stm32 debug session

    Это зависит от много чего. Если в проекте было много активных точек останова, то многие IDE и отладчики модифицируют флеш и вставляют программные точки останова. И если отладочную сессию прервать выдергиванием отладчика, то они там так и останутся.
  14. https://www.mathworks.com/help/signal/ref/fir1.html Там же есть примеры как строить. Для цифровых фильтров конкретная частота зависит от частоты дискретизации, поэтому значение задается в радиан/отсчет в нормализованном виде.
  15. Я точно не знаю - не проверял. Но внешний резистор я бы поставил. В смысле? Внутренних pull-up там нет совсем. Пины помеченные как I2C обладают повышенной нагрузочной способностью, но в остальном любые пины, на которые можно назначить PAD[0] и PAD[1] могут работать как I2C. По крайней мере в не-fast режиме.
  16. Для разной периферии по-разному, но в общем случае нет. В GPIO pull-up/pull-down контролируется теми-же сигналами, что и установка 1 и 0. Так что pull-up/pull-down не будут работать для периферии, которая использует пины на выход, хотя бы часть времени (I2C, например). Но для EIC они будут работать как нужно. Более чем достаточно для большинства применений.
  17. Если будут подобные проблемы в будущем - обращайтесь без копания днями. Если что-то не работает, что очевидно должно, то обычно решение известно или можно быстро найти.
  18. Действительно, не работает. При переключении PMUX на CMPx выход просто висит в третьем состоянии. Это похоже на баг в документации (таблица PMUX), я попробую выяснить. Но скорее всего придется подождать пару дней пока я смогу найти людей, которые могут проверить куда именно подключен выход. Я ткнул пальцем в небо и по аналогии с D21 попробовал PMUX_G и выход заработал. Так что это ошибка в документации. Я сообщу куда нужно. Вот полный код //----------------------------------------------------------------------------- HAL_GPIO_PIN(AC, A, 4); HAL_GPIO_PIN(CMP, A, 10); HAL_GPIO_PIN(LED, A, 16) //----------------------------------------------------------------------------- static void ac_init(void) { HAL_GPIO_AC_in(); HAL_GPIO_AC_pmuxen(HAL_GPIO_PMUX_B); HAL_GPIO_CMP_out(); HAL_GPIO_CMP_clr(); HAL_GPIO_CMP_pmuxen(HAL_GPIO_PMUX_G); PM->APBCMASK.reg |= PM_APBCMASK_AC; GCLK->CLKCTRL.reg = GCLK_CLKCTRL_ID(AC_GCLK_ID_ANA) | GCLK_CLKCTRL_CLKEN | GCLK_CLKCTRL_GEN(0); GCLK->CLKCTRL.reg = GCLK_CLKCTRL_ID(AC_GCLK_ID_DIG) | GCLK_CLKCTRL_CLKEN | GCLK_CLKCTRL_GEN(0); AC->COMPCTRL[0].reg = AC_COMPCTRL_ENABLE | AC_COMPCTRL_SPEED_HIGH | AC_COMPCTRL_INTSEL_RISING | AC_COMPCTRL_OUT_ASYNC | AC_COMPCTRL_MUXNEG_VSCALE | AC_COMPCTRL_MUXPOS_PIN0; AC->SCALER[0].reg = 32; AC->CTRLA.reg |= AC_CTRLA_ENABLE; } //----------------------------------------------------------------------------- int main(void) { SYSCTRL->OSC8M.bit.PRESC = 0; ac_init(); HAL_GPIO_LED_out(); HAL_GPIO_LED_clr(); while (1) { HAL_GPIO_LED_write(AC->STATUSA.bit.STATE0); } return 0; }
  19. Для отладки синхронизации не нужна несущая, ее можно добавить в самом конце. Вот как будут выглядеть I и Q компоненты идеального сигнала после всех переносов частоты. clear all; Br = 400e3; Fd = Br*8; Fdopl = 100; D = (rand(1, 10000) > 0.5) * 2 - 1; % redescr Ndkr = Fd/Br; pkt = D(ceil(0.01:1/Ndkr:length(D))); l = length(pkt); s = sin(2*pi*Fdopl*(0:1/Fd:l/Fd)); c = cos(2*pi*Fdopl*(0:1/Fd:l/Fd)); I = s(1:l) .* pkt; Q = c(1:l) .* pkt; figure; hold on; plot(I); plot(Q, 'r'); figure; hold on; plot(I, Q, '*'); Начинайте с этого кода и добавляйте схемы, которые восстановят этот сигнал. Если запустить с Fdopl = 0, то на второй картинке будет 2 звездочки. Это идеальный конечный результат. Если запустить Fdopl = 100, то будет окружность, образованная вращением этих звездочек. Задача ФАПЧ вернуть звездочки на место и поддерживать их там. Как только заработает с идеальным сигналом, то нужно будет обрезать ему полосу и добавить шум. И отлаживать это. И только после этого можно смотреть на несущие, если сильно хочется.
  20. Нужно взять исходный бинарный сигнал, умножить его на синус и косинус частоты Допплера без всяких несущих. Все, получили I и Q. Это сигнал идущий на схему вращающую созвездие. Костас или не Костас - это как захочется. Чтобы визуально увидеть созвездие нужно построить график I(Q). Для нулевого Допплера и в отсутствии шума и прочих искажений это будут 2 точки. При добавлении Допплера это будет окружность. Задача ФАПЧ вернуть эти точки на исходное место и следить, чтобы они там и остались.
  21. В начальном вопросе специфично про Россию ничего не было. Я про это информации не имею. Если кто-то использует и может рассказать, то может отпишутся тут.
  22. А что почти 100% покрытия рынка измерительных приборов не достаточно? Это не только осциллографы, но и генераторы сигналов, логические анализаторы, анализаторы протоколов, лабораторное оборудование. Все что идет в полный мэинстрим переводится в ASIC моментально.
  23. А я и не говорю, что во всех есть. Но я и не вижу всего, только то, что содержит наш МК. Ну и в компьютерном (серверном) железе часто в вспомогательных ролях Lattice стоит (сбор информации с датчиков и тому подобное). Я прямо сейчас смотрю на 2 железки с ними.
  24. Нет, PLC и тому подобное специальное оборудование.
  25. Промышленная автоматика очень часто. В чисто потребительских устройствах сейчас не могу вспомнить. Они скорее всего слишком чувствительны к цене, да и редко там это надо.
×
×
  • Создать...