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

adnega

Свой
  • Постов

    3 606
  • Зарегистрирован

  • Посещение

  • Победитель дней

    3

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


  1. Раз уж мы про округления, то f_ton = 8000 f_smpl = 46875 def divRound(a, b): return ((a + b // 2) // b) p1 = 0 p2 = 0 for i in range(f_smpl): p1 += divRound(f_ton << 32, f_smpl) p1 &= 0xFFFFFFFF; p2 += f_ton if p2 > f_smpl: p2 -= f_smpl p3 = (p2 << 32) // f_smpl p3 &= 0xFFFFFFFF print(i, p1, p3, p1 - p3) p3 дает нулевую фазовую ошибку через f_smpl семплов, а p1 дает ошибку 1.63E-6. warn{это Python, поэтому // - это не комментарий, а целочисленное деление}
  2. ((10) + ((1) / 2) / 1 = (10 + 1 / 2) / 1 = (10 + 0) / 1 = 10
  3. Фазу можно точнее накапливать (например, алгоритм Брезенхема), но будет небольшой фазовый шумок. У jcxz без фазового шума, но с небольшим отклонением по частоте (где-то в 6 знаке после запятой 8000.0000016298145 Гц).
  4. Ряд Тейлора? Т.е. иметь заранее вычисленные значения синуса, а рядом Тейлора достраивать промежуточные значения? Я примерно о том же и говорю: для ускорения можно в добавок к таблицам значений синуса в конкретных точках, хранить значения коэффициентов ряда Тейлора для данной точки. Затем берем дельту, дельту в кубе, в пятой и т.д. и делам свертку?
  5. Сигнал заранее известен, можно настроить DMA в кольцевом режиме и готовить половинки заранее - FPU в помощь.
  6. ТС, видимо, не хочет заниматься арифметикой, а хочет использовать константный массив.
  7. Сконвертировать можно sof->rbf можно при помощи Convert Programming File (есть в меню File проекта). Внизу нужно будет нажать Add File и добавить ваш sof. Либо установить соответствующую галочку в настройках проекта.
  8. Нормальное желание. Только грузить лучше не по JTAG, а через PS (Passive Serial). Примерно так: - дергаете nCONFIG на GND; - CONF_DONE падает вниз; - затем через DCLK и DATA0 подаете битовый поток (из .rbf, но там биты в байте обращены); - получаете на CONF_DONE единицу. Многое зависит от объема прошивки (кста, поддерживается сжатие), у меня при DCLK порядка 20 МГц получилось чуть более 20 мс. Это как раз EP2: ep2_data.rbf ep2_ps.dsl Для второго циклона: https://www.intel.in/content/dam/www/programmable/us/en/pdfs/literature/hb/cyc2/cyc2_cii51013.pdf Пример main.c
  9. Насчет цен все сложно, а документацию можно тут подсмотреть.
  10. Все реально. Если код не модифицирующийся - тогда совсем легко. Когда вы укажите функции секцию, то она скомпилируется с адресами из ОЗУ, но копия будет лежать во flash. Стартап на этапе инициализации секций должен скопировать образ из flash в ОЗУ. Все! - функцию/обработчик можно вызывать.
  11. Перенести можно только всю таблицу целиком. Но можно и не переносить: вектора во flash, обработчик прерывания в ОЗУ.
  12. Просто объявляете регион памяти для ITCRAM, а затем в атрибутах функции указываете этот регион. Примерно так (функция в ОЗУ): int ram_func(const int x, const int y) __attribute__(( section(".ramfunc") )); В скрипте линкера: .data : AT ( _sidata ) { . = ALIGN(4); _sdata = .; *(.data) *(.data.*) *(.ramfunc) . = ALIGN(4); _edata = . ; } >RAM
  13. При помощи mega328p и прошивки jtag2updi у меня все заработало. Даже собрал прошивку под китайскую LGT8F - заработал UPDI. А вот usbasp так и не смог заставить работать. Был бы кварц на 16МГц - возможно помогло, а вот ни на 12МГц, ни на 8МГц usbasp (с прошивкой jtag2updi) даже не определяется.
  14. Ок. Как получится - отпишусь
  15. Я добавил внешний bat-файл Интерфейс программирования на стороне микроконтроллера, самый новый.
  16. Видимо, avrdude нужно подкинуть конфиг.
  17. Да, я тоже посмотрел что нет 816-го в списке. Вот интересная статейка. У меня есть мега4809, она, вроде, тоже UPDI, но позаниматься смогу только на выходных.
  18. Иногда целевой микроконтроллер не определяется - сбрасываю скорость интерфейса Может, китайский уже свежей прошивкой прошит, но своему старичку я прошивку обновлял.
  19. У меня есть такой usbasp.atmega8.2011-05-28.hex avrdude.exe avrdude.conf
  20. Чуть-чуть другой, но суть там одна. По документации смотрю UPDI и TPI очень похожи, но не факт, что взаимозаменяемые. У вас МК в наличии? Сможете проверить?
  21. PDI? Я для attiny10 с TPI использую USB-ASP и avrdude-6.3-mingw32.
  22. Ага: для x86 было больно. Для Cortex-M ничего не почувствовал. PS. Думаю, можно расходиться - очередной "новичок" забросил сомнительную тему и пропал.
  23. Может, там где-то есть какой-нить (например, раньше был udkvars.bat) bat-файл с настройками? У вас Windows (я последний раз IDF настраивал на ubuntu), но если все делать по шагам, то должно получится. Я делал по инструкции, и сложностей не помню.
×
×
  • Создать...