Как стать автором
Обновить
64
0
Павел @Fenja

Пользователь

Отправить сообщение

Добрый день! Мне не попадался софт, который сможет сменить прошивку внутри контроллера карты SD. Да и отдельно контроллеры карты SD не попадались.

Интересный вопрос. Я склоняюсь к тому, что нет. Единственное, что приходит в голову, передать в SPI какой-нибудь набор данных, если пришел ответ, то на SPI кто-то есть.

К байтам это время не привязано, несколько я помню. Оно зависит от конкретной флешки.

Сходу не помню. Надо либо читать спецификацию, либо мой исходник, в котором это реализовано.

x"400000000095" отправляется в sd карту при инициализации. Младшие биты (7..1) содержат crc.

Но, глядя на рейтинг предыдущей статьи, я делаю вывод, что вообще-то это мало кому нужно. При сохранении тенденции, тема будет закрыта.

Пишите, мы читаем. Вопросов нет, поскольку еще самостояльно нужно пощупать, как оно работает. К сожалению, тема FPGA не пользуется популярностью, в результате рейтинг и количество просмотров не впечатляют.

По своему опыту, написание статьи помогает зафиксировать полученные знания, собрать в кучу. Да и с колллегами потом можно делиться ссылкой на статью, а не рассказывать каждому уже разжеванную тему.

С моей точки зрения, нет. Если на банк физически подать питание +1.8В, а в настройках процессорного модуля выставить, что напряжение +3.3В, то не сгорит, поскольку настройки процессорного модуля не управляют питаем.Но вот будет работать, не понятно, поскольку будут разные стандартны ввода/вывода у MIO.

Да, так реализована используемая плата. К первому банку подключена микросхема физического уровня Ethernet с питанием +1.8В, соответственно питание банка тоже должно быть +1.8В.

Число 271 было получено из лога работы приложения, запущенного на процессором модуле. Чуть выше по тексту есть "Time 10F". Микросекунды взяты из кода приложения, который приведён выше лога.

Мне попадалась информация, что нужно сформировать 8 «пустых» переключений тактового сигнала перед формированием команды и я это реализовал. Думал, что отражено в статье, оказывается нет. Я расширил код команды, добавив в старший байт 0xFF. github.com/Finnetrib/SdController/blob/cab2ef85c89d9ed7b696d84bf141bc6eb3f89a6b/SD_Controller.srcs/sources_1/hdl/SDPackage.vhd#L54
Например, в программируемой логике реализован какой-то алгоритм обработки данных, который обрабатывает наиболее часто встречающиеся случаи. Если пришли данные, которые нуждаются в особой обработке (редкий случай) то их проще обработать на процессорном модуле. Чем быстрее они туда попадут, тем быстрее обработаются. Когда есть запас по скорости это всегда хорошо.
И в случае с работой с DDR. Можно организовать обмен данными (в случае большого объема) между разными каналами в программируемой логике через DDR, подключенную к процессорному модулю. Дескрипторы удобнее на процессорном модуле заполнять, а в обмене он непосредственно не участвует.
Делал подобное, но с STM семейством тогда был незнаком, делать на огромной ATMEGA было лениво, поэтому использовал внешнюю микросхему PCA9955B (16ти канальный драйвер с ШИМ на каждый канал) с управлением по I2C. Но лежит в столе, ремонт у друга еще не окончен, полевых испытаний не было. Регулировка яркости также отсутствует, подсветка всегда включается на 25% яркости.
Фото платы

по просьбе сообщества мы добавили в список номинаций «ТехноТекста-2020» новую — «Железо и его разработка».

В списке номинаций появилась. В форме добавления статьи — нет.
Скрин


Не стало особо понятнее, как генератор на плате может быть использован внутри ПЛИС без указания в списке портов входа тактового сигнала, полез в гугл.
Согласно документа «iCE40 Oscillator Usage Guide», в ПЛИС семейства iCE40 UltraPlus есть два внутренних (on-chip) генератора на 10кГц и 48МГц. Соответственно компонент SB_HFOSC описывает внутренний генератор на 48МГц. Сигнал CLKHFPU включает модуль, сигнал CLKHFEN — разрешение выхода.
А каким образом модуль SB_HFOSC генерирует синхросигнал? Что у него внутри?
У меня что-то не получалось. При старте Petalinux с QSPI, стартовал u-boot и не мог считать ядро с устройства хранения. Если руками считать ядро из устройства хранения в ОЗУ и пнуть его, то работает. Похожая проблема описана тут forums.xilinx.com/t5/Embedded-Linux/Petalinux-boot-from-QSPI-flash-without-SD-card-on-TE0720-Zynq/td-p/630905.
Правда я не собирал свежие Petalinux, может и поправили.
Нет, пока не было такой задачи. Когда искал информацию о Zynq, попадалась информация о смене конфигурации программируемой логики, но без исходников.

Про качество драйверов ничего сказать не могу. Для моих потребностей (посмотреть, определяется ли ip core, и передать пару пакетов) хватало.

Спасибо, стало понятнее. Посмотрев спецификацию на Avalon MM думал, что запись данных в PIO вызовет паузы, поскольку в шине отдельные каналы на чтение и запись, данные записываются в буфер и потребуется переключить канал на запись в PIO, но квартус оказался хитрее.
Простите, но можно полную структурную схему работы с DMA? У меня пока сформировалось такое представление, но оно не стыкуется с исходником из статьи.
Схема

У DMA есть Slave для Avalon-MM, которые я так понимаю используются для настройки DMA?

Информация

В рейтинге
Не участвует
Откуда
Пенза, Пензенская обл., Россия
Зарегистрирован
Активность