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

deni

Свой
  • Постов

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

  • Посещение

Репутация

6 Обычный

Информация о deni

  • Звание
    Участник
    Участник
  • День рождения 18.05.1982

Контакты

  • Сайт
    Array
  • ICQ
    Array

Информация

  • Город
    Array

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

2 316 просмотров профиля
  1. Мешает возможное наличие bad blocks, их допускается некоторое количество даже в новой микросхеме NAND. Во время работы драйвер файловой системы учитывает наличие неисправных блоков. При прошивке дапма может получится что данные попадут на неисправный блок.
  2. На Tang Nano 9K пины с 68 по 75 подключены к разъему HDMI через конденсатор 100nF и далее резистор 50 Ом к 3V3. Может в этом дело?
  3. Не очень понятно как у вас было настроено, если источник и получатель полуслово, то куда по вашей логике DMA должен ещё 8 бит положить, если у вас SPI настроен на передачу по 8 бит. Если источник полуслово, а получатель байт, то надо внимательно прочитать раздел документации про DMA, как настроить при разной ширине источника и получателя и какое должно быть количество трансферов в вашем случае. Или просто SPI настроить на передачу 16 бит.
  4. Если смотреть на диаграмму, то там ему все равно что на SYNC после окончания передачи, главное чтоб до начала передачи SYNC находился в единице необходимое время. Можно SYCN и как CS для SPI использовать, т.е. поднимать сразу после передачи.
  5. Выкинуть Cube и HAL, сделать на LL. Судя по диаграмме, нужно установить CS (SYNC), потом снять CS (SYNC) и потом по SPI выдать данные привязанные к падающему фронту. Если хочется полной автоматизации передачи, то проще по таймеру по одному из каналов выдать импульс SYNC через PWM и по далее по событию от таймера через DMA в SPI выдать данные.
  6. В блокирующем режиме в конце опрашивается флаг SPI_FLAG_BSY. Возможно в режиме DMA код HAL не дожидается окончания передачи. И если даже использовать окончание по RX, оно будет вызвано раньше на пол клока окончания передачи. Так как частота SPI у вас не высокая, контроллер успевает выставить CS на GPIO раньше окончания передачи.
  7. Прием никак не может закончится раньше, чем когда придет последний клок. Может у вас полярность и фаза клока неверно настроена? Надо смотреть логическим анализатором, что происходит на линиях.
  8. Надо использовать событие по окончанию RX, даже если прием не используете. Событие по TX это когда освободился буфер передатчика, но передача ещё продолжается из сдвигового регистра.
  9. 8 ширина x 32k глубина Выход FIFO подключен на простой преобразователь UART и далее на второй порт "FTDI" на плате. Данные в FIFO загружались каждый такт последовательно 4 символа, потом пауза, искажался первый символ. Чтение редкое по одному символу по скорости передачи в UART. Ошибки определяются просто, есть определенный набор символов который передается, на выходе FIFO появляются символы которых никак не может быть, искажение одного бита, произвольного. Перед FIFO и после FIFO были синтезированы конструкции, которые каждый такт отслеживали появление недопустимых символов. На входе ошибок нет, на выходе есть. Далее просто зажигал светодиод, если была хоть одна ошибка. Если в FIFO помещать данные через такт, т.е. данные ещё такт после сигнала WR удерживаются на входе FIFO, то работает без ошибок. Манипуляции с сигналом RD ничего не меняли.
  10. Timing Analysis Report -> Constraint = 72MHz Timing Analysis Report -> Actual Fmax = 90Mhz Клок один после PLL.
  11. Как понять на какой максимальной частоте может работать 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
  12. В чем противоречие то? Прерывание есть, данных в регистре нет. К такой ситуации скорее всего приводит неверно настроенный пин, что собственно у вас далее и написано.
  13. Нет никакого противоречия, чтоб сработало прерывание по приему, достаточно чтоб прошло необходимое количество клоков на CK. При этом что было на линии RX не важно.
  14. Табы перед <?xml убери, будет работать
×
×
  • Создать...