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

    

Шаманъ

Участник
  • Публикаций

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

  • Посещение

Репутация

0 Обычный

Информация о Шаманъ

  • Звание
    Знающий

Посетители профиля

3 574 просмотра профиля
  1. VS Code + gcc/gdb

    К сожалению я стаклкивался, и несколько раз. Пока не понял в чем дело это очень сильно затормозило работу. В итоге вернулся к прежним cpptools. Копаясь в коде обнаружил очень странное именование переменных в командах посылаемых gdb. Это в ряде случаев приводит к неправильному отображению значений элементов массивов. В итоге, как по мне, для проектов немного сложнее ""hello world" этот плагин может создать больше проблем, чем решить. Хотя задумка хорошая. Это несколько проблематично, т.к. у меня нет всего фреймворка (а устанавливать и настраивать нет времени), чтобы писать на TypeScript и потом компилировать в JavaScript и собирать плагин как положено, поэтому я прямо подредактировал выходной JavaScript (в принципе перенести изменения обратно в исходник на TypeScript не проблема). Т.е. мне нужно будет потратить определенное время, чтобы это сделать, которого у меня нет. Можно в принципе в обсуждении проекта на гитхабе сделать тему и выложить JavaScript файлы - пусть народ допиливает, но терзают меня сомнения, что кто-то будет это делать. Если бы не фундаментальные проблемы с именованием элементов массивов/струтур в командах отсылаемых gdb, то можно было бы пилить этот плагин и дальше, а так думаю перспективнее приложить усилия к cpptools.
  2. VS Code + gcc/gdb

    Я бы не сказал. Я копался в коде - куча ошибок там, MI интерфейс сделан криво, очень криво. Хотел довести до ума, поисправлял некоторые ошибки, сделал частично отображение в шестнадцатеричной, двоичной, восьмеричной системе, но забросил, ибо глюков там очень много и некоторые очень существенные (типа неправильного показа памяти/периферии). Нет, это к плагину.
  3. Контроллер у STM32 не поддерживает пакетную запись/чтение для которой важно правильное подключение младших линий адреса (он всегда выдает адрес столбца на каждую операцию, даже при последовательном чтении/записи), потому проблем с перемешиванием в том числе и младших линий адреса нет. Хотя делать это и нежелательно. Нужно отметить, что регистр MR пишется через адресные линии, соответственно при перемешивании нужно писать корректное значение с учетом этого. Главное перемешивать с пониманием вопроса, тогда и костылей не нужно. У меня есть плата где перемешано много всего, чтобы в двух слоях нормально работало, все отлично работает. Совершенно верно. Но схема Arleex рабочая, если не трогать А10. P.S. Безболезненно можно перемешивать: -линии выбора банка -линии данных в пределах одного байта -байты линий данных, но только вместе с сигналами выбора байта К линиям адреса (если это только не старшие линии) нужно подходить осторожно, вдумчиво читая датащит на SDRAM и контроллер памяти - тут возможны варианты.
  4. Из очевидного 0х231 не правильное значение для MR. Для этих м/сх в MR нужно писать 0x220 для CAS=2 или 0х230 для CAS=3. У Вас получается включен бурст с длиной 2 (не поддерживается контроллером памяти у STM32). "Четверти" как Вы говорите (правильнее будет банки) м/сх адресуются линиями BA0, BA1 - проверяйте все ли пропаяно на этих линиях. Проверьте правильные ли тайминги запрограммированы. P.S. Зачем резисторы?
  5. ETH не выходит из ресета (STM32)

    Спасибо за ответ! Разобрался уже сам - забыл включить тип PHY в регистре SYSCFG->PMCR.
  6. ETH не выходит из ресета (STM32)

    Приветствую всех! Пытаюсь запустить Ethernet на stm32h743 без HAL. Проблема очень странная - как только включаю клок: RCC->AHB1ENR |= RCC_AHB1ENR_ETH1MACEN; Поднимается бит SWR в регистре DMAMR, и собственно все... С PHY общаться получается (по MDIO/MDC). PHY используется LAN8720A, подключение такое (RMII): PA1 <-> CLK PA2 <-> MDIO PC1 <-> MDC PA7 <-> CRS PC4 <-> RX0 PC5 <-> RX1 PB11 <-> TX_EN PB12 <-> TX0 PB13 <-> TX1
  7. IMX6S

    Цитата(mantech @ Apr 17 2018, 19:54) в даташите написано, что копирует по 16 байт в блоке. Т.е. по 4ре слова, ИМХО, это мало для того, чтобы эффективно использовать полосу SDRAM по полной. Проведите простой эксперимент - просто вычитайте через SDMA какой-нить достаточно большой кусок SDRAMа (страницу, например), и второй эксперимент - просто запишите такой же кусок SDRAMa, а потом сравните время просто чтения, просто записи и копирования по 4ре слова, можете еще поиграться с выводом на дисплей (тест с отключенным и с включенным). Думаю кое-что может проясниться. ЦитатаDDR3 шириной 32 бита на частоте 400МГц. Судя по этому должна быть очень шустрой Это при работе достаточно большими блоками, а случайным доступом или очень маленькими блоками можно производительность SDRAM легко убить.
  8. Цитата(Ruslan1 @ Apr 15 2018, 19:57) Сильно надеюсь что в инициализации ничего хитрого нет, по сравнению с 8МБайт. Да нет там ничего хитрого ни в 32МБ, ни в 64МБ.
  9. IMX6S

    Цитата(mantech @ Apr 7 2018, 20:27) копировал блоками по 64Кб (16384х32 бита) (больше за одну транзакцию он не может). Создал 21 транзакцию (buffer descriptor) (1376235 байт) И засек время, итого получилось 30 копирований в сек. Что составляет примерно 42 мегабайта в сек. Если я правильно понял, то это будет 64К * 21 * 30 = 39МБ/сек чтений и столько же записей. ЦитатаЭто очень мало, если сравнить, например, скорость выдачи данных на дисплей - при разрешении 1024х768, 32х битном цвете и 2хслойной графике - это будет 158 мегабайт в сек. 26кадров/сек? ЦитатаЧто в несколько раз быстрее. А вот тут начинается самое интересное - SDRAM память нетороплива при случайных обращениях, но шустро отдает/принимает данные блоками. Выдача данных на дисплей скорее всего идет через буфер, по последовательным адресам и издержки получаются минимальные. Стоит посмотреть имеется ли буфер (и какой) у SDMA, поскольку если для каждого 32битного слова дергать память на чтение/запись, да еще и по разным адресам производительность сильно просядет (тем более у Вас и так подсистема памяти нагружена выводом на дисплей). Кстати для ускорения можно положить видеобуфер, буфер откуда данные копируются и буфер куда данные копируются в разные банки памяти . P.S. А память то какая (DDR3?) и на какой частоте работает? P.P.S. Заглянул в доки, я надеюсь Вы используете burst DMA unit?
  10. Цитата(vhk @ Apr 14 2018, 06:36) Шум в двух каналах АЦП на одном кристалле приобретает взаимозависимость. В данной схеме для пар АЦП 1,2 и 3,4 это не существенно, т.е. можно и так сделать.
  11. stm32f407, ADC и flash ART prefetcher

    Цитата(golf2109 @ Apr 13 2018, 18:13) а для серии F7 также такое набдюдается? Я ж в первом сообщении про это писал: "...в более старших моделях есть специальные биты ADCDC1/ADCxDC2 которые позволяют эту проблему пофиксить и оставить префетчер включенным". Подробности смотрите в AN4073. На практике об F7 ничего сказать не могу, т.к. задач требующих очень малые шумы АЦП на F7 не попадалось.
  12. Цитата(VCO @ Apr 12 2018, 22:32) Ребята Как-то радикально уж очень. Пока по крайней мере я от общения в этой теме больше получил, чем отдал, в том числе и от Александра. Да и в обсуждении думаю сокровенных тайн всеравно никто не откроет, скорее это попытка найти компромисс среди известных решений удовлетворяющий требованиям. Цитата(rloc @ Apr 12 2018, 20:08) Я сторонник разделения по разным корпусам и хорошей фильтрации по питанию, но даже в этом случае не избежать связи через входные цепи, где чаще используют резистивные делители мощности. Я тоже сторонник отдельных АЦП. Кстати, а как Вы относитесь к упрощенному варианту с двумя АЦП, в котором сравнение фазы идет с "идеальным" сигналом (а не с полученным второй парой АЦП)? Понятно, что в этом случае опора у АЦП должна быть раздельная и ее шум будет присутствовать в выходном сигнале, кроме того не получится сравнивать два одинаковых генератора решая при этом вопрос малошумящей опоры радикально, но в остальном должно ведь работать?
  13. stm32f407, ADC и flash ART prefetcher

    Цитата(scifi @ Apr 4 2018, 15:42) Кстати, говорят, медианная фильтрация эффективно срезает выбросы, так что изучите возможность применения. Она используется изначально, ибо в том применении все очень плотно с шумами АЦП было. P.S. Вот уж не думал, что через год кто-то напишет в тему Да, девайс давно и успешно работает с отключенным префетчером.
  14. Цитата(rloc @ Apr 11 2018, 13:11) 300 Eu за простенький модуль с Zynq US+ c 1GB 32bit DD4, контроллером Ethernet и USB, и необходимым количеством выводов для подключения нескольких АЦП с частотой 100-2600 МГц - много по цене? Ну как сказать, я понимаю, что не много по тому, что там на плате имеется, но для моего бюджета на этот проект, учитывая, что 300EU это далеко не все железо многовато. Я сторонник отправить все по максимуму на обработку на ПК, тем более, что 100МГц полоса анализа мне не нужна, а до 10МГц обработка на ПК не должна вызывать проблемы. ЦитатаДля обсуждения предлагаю следующий вариант решения: [attachment=111994:Fours_Ch...System_1.png] Интересно зачем они нарисовали независимые генераторы для тактирования АЦП? Сами же на формулах показали, что вносимая ими ошибка после вычитания сигнального и референсного каналов скомпенсируется. У Timepod 5330 да и у Symmetricon'а помнится опора общая.
  15. Цитата(rloc @ Apr 10 2018, 21:01) На FPGA можно попробовать сделать ДПФ сразу в логарифмическом масштабе, допустим на 1024 точки. Производительности хватает на такие операции. Это понятно, задача в принципе не слишком сложная (в вычислительном плане) весь вопрос в объеме FPGA и, соответственно, цене. ЦитатаРечь о Symmetricom и NIST. Он будет сильно ограничен по частоте. Да и выиграть очень много (в сравнении с синтезаторным вариантом) наверное не выйдет, думаю порядка 10дБ разница будет в сравнении с вариантом с простыми синтезаторами, хотя с другой стороны 10дБ разницы это в 100 раз быстрее...