deni
Свой-
Постов
74 -
Зарегистрирован
-
Посещение
Репутация
6 ОбычныйИнформация о deni
-
Звание
Частый гость
- День рождения 18.05.1982
Контакты
-
Сайт
Array
-
ICQ
Array
Информация
-
Город
Array
Посетители профиля
2 750 просмотров профиля
-
Взять таймер у которого есть RepetitionCounter, это позволит сократить количество обновлений таймера в 128 раз. Далее настроить DMA по событию update на запись в CMP1 и CMP2. В DMA буфере установить ширину импульса для первого канала и нулевую ширину для второго. Сделать в DMA буфере 5 таких записей (640/128). Потом ещё 5, когда активен второй канал.
-
Стоит обратить внимание, что GPIO находятся на шине AHB1, доступ к которой имеет только DMA2.
-
Мешает возможное наличие bad blocks, их допускается некоторое количество даже в новой микросхеме NAND. Во время работы драйвер файловой системы учитывает наличие неисправных блоков. При прошивке дапма может получится что данные попадут на неисправный блок.
-
Надо смотреть последний лист, не только первый
-
На Tang Nano 9K пины с 68 по 75 подключены к разъему HDMI через конденсатор 100nF и далее резистор 50 Ом к 3V3. Может в этом дело?
-
Сдвиг на бит при передаче по SPI DMA
deni ответил Turgenev тема в Программирование
Не очень понятно как у вас было настроено, если источник и получатель полуслово, то куда по вашей логике DMA должен ещё 8 бит положить, если у вас SPI настроен на передачу по 8 бит. Если источник полуслово, а получатель байт, то надо внимательно прочитать раздел документации про DMA, как настроить при разной ширине источника и получателя и какое должно быть количество трансферов в вашем случае. Или просто SPI настроить на передачу 16 бит. -
Сдвиг на бит при передаче по SPI DMA
deni ответил Turgenev тема в Программирование
Если смотреть на диаграмму, то там ему все равно что на SYNC после окончания передачи, главное чтоб до начала передачи SYNC находился в единице необходимое время. Можно SYCN и как CS для SPI использовать, т.е. поднимать сразу после передачи. -
Сдвиг на бит при передаче по SPI DMA
deni ответил Turgenev тема в Программирование
Выкинуть Cube и HAL, сделать на LL. Судя по диаграмме, нужно установить CS (SYNC), потом снять CS (SYNC) и потом по SPI выдать данные привязанные к падающему фронту. Если хочется полной автоматизации передачи, то проще по таймеру по одному из каналов выдать импульс SYNC через PWM и по далее по событию от таймера через DMA в SPI выдать данные. -
Сдвиг на бит при передаче по SPI DMA
deni ответил Turgenev тема в Программирование
В блокирующем режиме в конце опрашивается флаг SPI_FLAG_BSY. Возможно в режиме DMA код HAL не дожидается окончания передачи. И если даже использовать окончание по RX, оно будет вызвано раньше на пол клока окончания передачи. Так как частота SPI у вас не высокая, контроллер успевает выставить CS на GPIO раньше окончания передачи. -
Сдвиг на бит при передаче по SPI DMA
deni ответил Turgenev тема в Программирование
Прием никак не может закончится раньше, чем когда придет последний клок. Может у вас полярность и фаза клока неверно настроена? Надо смотреть логическим анализатором, что происходит на линиях. -
Сдвиг на бит при передаче по SPI DMA
deni ответил Turgenev тема в Программирование
Надо использовать событие по окончанию RX, даже если прием не используете. Событие по TX это когда освободился буфер передатчика, но передача ещё продолжается из сдвигового регистра. -
8 ширина x 32k глубина Выход FIFO подключен на простой преобразователь UART и далее на второй порт "FTDI" на плате. Данные в FIFO загружались каждый такт последовательно 4 символа, потом пауза, искажался первый символ. Чтение редкое по одному символу по скорости передачи в UART. Ошибки определяются просто, есть определенный набор символов который передается, на выходе FIFO появляются символы которых никак не может быть, искажение одного бита, произвольного. Перед FIFO и после FIFO были синтезированы конструкции, которые каждый такт отслеживали появление недопустимых символов. На входе ошибок нет, на выходе есть. Далее просто зажигал светодиод, если была хоть одна ошибка. Если в FIFO помещать данные через такт, т.е. данные ещё такт после сигнала WR удерживаются на входе FIFO, то работает без ошибок. Манипуляции с сигналом RD ничего не меняли.
-
Timing Analysis Report -> Constraint = 72MHz Timing Analysis Report -> Actual Fmax = 90Mhz Клок один после PLL.
-
Как понять на какой максимальной частоте может работать FIFO SC HS собранный на BSRAM для GW-1NR-9 (Tang Nano 9K)? Проект работает на 72MHz. Временной анализ показывает максимально допустимую частоту 90MHz. При глубине FIFO 8192 и более начинают появляться ошибки. Ширина данных 8. В User Guide на FIFO приведены примеры для GW1N-4-144 Block SRAM = Performance(MHz) 4096 x16 =104.066 512 x16 = 114.538 64 x 16 = 105.768
-
В чем противоречие то? Прерывание есть, данных в регистре нет. К такой ситуации скорее всего приводит неверно настроенный пин, что собственно у вас далее и написано.