MementoMori
Свой-
Постов
1 340 -
Зарегистрирован
-
Посещение
Весь контент MementoMori
-
Кстати, из интереса создал проект в кубе для F746 и для H743. В первом случае qspi порты инициализирутся автоматом как VeryHigh, во втором - как Low. Это атас, господа!!!!!!!!!!!! А я еще, помните, удивлялся, что проблема странным образом появилась когда я на 743 камень перешел))) Все искал отличия в работе qspi...
-
Откопал я ту старую плату. На ней 3 каскадная цепочка. Дойдут руки, сниму осциллограммы, последовательно закорачивая каждый каскад и выложу тут.
-
У меня ещё такой вопрос. Насколько можно верить осциллограф в плане формы сигнала? Выше я привёл осциллограмме клока sdram на 50 МГц, так вот звон на ней на порядок сильнее чем при моделирование в Hyperlynx на 90 МГц. Может ли это быть результатом искажения сигнала у щупе? Провод то длинный.
-
Как есть профукали А вот тут категорически согласен)
-
Насколько я знаю, если некая линия не предполагает высокочастнтных сигналов, то ее лучше настроить в LOW, дабы не звенела и не создавала помех, не так ли? Так вот до 30 МГц пиксельклока на линиях все в норме. А дисплею 800х480 30 МГц за глаза. А все их отладочные платы не более 472х280 (одна какая-то есть на 640х480)
-
И QSPI заработало на 66 МГц!!! Уж ее то выходы зачем нужно было в Low? Правда читается неправильно, но у меня и на низких частотах была та же проблема, а это уже совсем другая история.
-
Вот же ж черт..... Когда я разбирался со SDRAM, я специально полез в настроки и увидел, что калокуб настраивает пины на VeryHigh. Я решил, что этот момент у них продуман. И даже мысли не возникало когда были проблемы с дисплеем. Глянул - а там все в Low..... В принципе в этом тоже есть дальновидность разработчиков, в основном то проекты на мелких дисплеях, там частоты не более 10-15 МГц. В общем, перенастроил я и вуаля И дисплей заработал даже на 51 МГц. В принципе хватает, но я решил достигнуть документированного в даташите максимума (для контроллера то ли 70, то ли 80 МГЦ). И вот примерно на 53 МГц отладчик теряет связь с контроллером и генерация пропадает. Подобное отваливание я наблюдал и тогда, когда настраивал различные выходы (MCO1, PixelCLock) на очень низкие, менее 1 МГц частоты - дисконнект и даже после вырубания питания контроллер можно прошить только если нажать предварительно RESET, то есть какая-то глобальная проблема с тактированием. Что это может быть?
-
Приехал осциллограф! Посмотрел я клок и вот что увидел. На частоте 25 МГц ( один квадрат = 1 вольт, то есть минимум - 0.7 вольт, максимум 2.6 вольт) Поддаем газку - 35 МГц Амплитуда меняется мало, но сигнал съезжает вверх. Щупы осциллографа включены в режим 1:10. Важные моменты: 1. Прикосновение щупом немного портит сигнал. 2. Сигнал на разъеме практически идентичен сигналу на пине контроллера. Что скажете, господа? Отключение дисплея практически приводит сигнал в норму Я уж было решил, что проблема в самом дисплее, но не тут-то было. Ставлю пиксельклок на 50 МГц Для сравнения - клок SDRAM на 50 МГц, SDRAM прекрасно работает
-
Всё равно колхозно смотрится...
-
Поясню что мне нужно - мне идеально подходят JST разъемы c шагом 1 мм типа таких Но стандартная длина проводов не подходит. А покупать неразделанные и обжимать - это АД. Особенно на 32AWG - под них и кримперов нормальных не найдешь. IDC не подходит по эстетическим причинам - не очень красиво будет смотреться кабель, начинаюшийся шлейфом, который потом распускается на отдельные проводки. То что я привел на первой картинке, как мне кажется имеет тот же принцип заделки проводов, что и IDC разъем, то есть одновременная заделка всех проводников, при этом из проводов можно сделать жгут Как такое называется?
-
Меня устроит и холодный транзисторный звук. Мне нужно воспроизводить не слишком примитивное "динь-динь" при событиях, ну и иногда внятным голосом говорить пользователю, что он, мягко говоря, не прав. А скажите, С72 - оставить?
-
Друзья, есть вопрос. Делал когда-то на основе замечательного AN2812 от ST систему оцифровки и воспроизведения звука. Программа распаковывала закодированный кодеком SPEEX звук и выводила его на ШИМ выход контроллера. Для отсечки несущей ШИМа использовался такой вот фильтр на R27-R25 и C24-C26 В этой же аппликухе есть указания на то, что можно использовать не только ШИМ, но и напрямую выводить на ЦАП. Что я собственно и сделал путем нехитрых манипуляций. Разницы в звуке никакой, то есть что ЦАПированный, что ШИМированный звук эта схема проглатывает одинаково. Тогда мне было все равно, что использовать, ШИМ или ЦАП. Сегодня не все равно - хочу воспроизводить звук, но в наличии имеется лишь выход, который можно настроить на ЦАП. То есть, необходимость в фильтрации высокочастотной составляющей отпадает. Внимание - вопрос. Нужен ли этот фильтр? Я на 90% догадываюсь, что не нужен, но предпочту задать глупый вопрос, чем подом кусать локти, если я его из схемы выкину.
-
ЭВРИКА! Надо было увеличить DUMMY_CYCLES на 2! Правда работает это почему-то только в MemoryMapped Mode. Обычное чтение в ДДР режиме читает с ошибками.
-
Ксения, не буду пока высылать вам свой код - я его корежить начал и у меня не все работает. Повторю свою рекомендацию - откройте пример для платы под соответствующий чип, на сайте ST они есть А у меня пока вот какая странность- не могу нормально запустить DDR режим. Что я делаю: 1. Включаю s_command.Instruction = QUAD_INOUT_FAST_READ_CMD; ( код 0xEB) s_command.DdrMode = QSPI_DDR_MODE_ENABLE; Читается 0xFF; А дальше самое интересное - нахожу в даташите от другой микросхемы MT25TL01G команду QUAD_INOUT_FAST_READ_DTR_CMD; (0xED) - она для DDR режима. Лезу в даташит на W25Q128 - там про нее ни слова. Но пробую заменить команду 0xEB на 0xED. И о чудо - все работает но есть нюанс - смещено на 2 байта почему-то. Тогда я игнорируя рекомендацию даташита от ST меняю QSPI_SAMPLE_SHIFTING_NONE на QSPI_SAMPLE_SHIFTING_HALFCYCLE Получаю смещение на 1 байт в обратную сторону Что делать? Инициализация QSPI такая QSPIHandle.Init.ClockPrescaler = 6; QSPIHandle.Init.FifoThreshold = 16; QSPIHandle.Init.SampleShifting = QSPI_SAMPLE_SHIFTING_NONE; QSPIHandle.Init.FlashSize = 23; QSPIHandle.Init.ChipSelectHighTime = QSPI_CS_HIGH_TIME_7_CYCLE; QSPIHandle.Init.ClockMode = QSPI_CLOCK_MODE_0; QSPIHandle.Init.FlashID = QSPI_FLASH_ID_1; QSPIHandle.Init.DualFlash = QSPI_DUALFLASH_DISABLE;
-
Так я вам и сказал - его нужно просто указать, но на функции чтения и записи это не влияет. А я вас предупредил, что в моем коде, если вы будете им пользоваться, на это следует обратить внимание
-
Размер не имеет значения, его нужно будет просто указать и все. Коннект - у меня может быть нестандартный.
-
Поделюсь вечером
-
Вечером смогу. Но все же подскажу путь короче. Берете примеры для плат от ST с аналогичным камнем. Приводите в соответствие со своей схемой, может потребоваться ремаппинг. Если у вас такая же память, как и на плате, пример для которой вы используете, то восклицаете "Алилуйа"! ". Если нет, то долго и упорно штудируете даташит на предмет отличий в кодах команд. Беда ещё в том, что разные производители по разному понимают термин сектор. Я имел дело с двумя микросхемами. В одной сектора объединились в блоки, в другой блок назывался сектором и состоял из субсекторов. Это может сбить с толку.
-
В нем у меня настраивается gpio, включается тактирование qspi. Но с PLL ничего не делается
-
Это обычно в main, у меня такой функции в корневом файле нет.
-
Хороший вопрос. Загрузчик работает, скажем так, с prescaler=1. Но в нем нет кода, который настраивает тактирование. По крайней мере в файле flashProg.c, а глубже я не копал. Я не знаю, что происходит с тактирование по дефолту. Может быть входная частота подаётся невысокая. Пока не имею возможности проверить.
-
W25Q128
-
Я вам открою страшную тайну - я форума этого начитался))) Так я так и делаю, просто вы не имеете возможности легко сопоставить изображения слоев. В слое ТОР, например, есть выступ, он прошит отверстиями. В нижнем слое на этом уровне сплошная земля и отверстия действительно кажутся группами. Так я так и делаю, просто вы не имеете возможности легко сопоставить изображения слоев. В слое ТОР, например, есть выступ, он прошит отверстиями. В нижнем слое на этом уровне сплошная земля и отверстия действительно кажутся группами.
-
Знаю. У меня свой и написан. И в нем же, в загрузчик я включаю или отключаю двухчиповый режим.
-
Ну как вам сказать, при прочих равных более многоногие чипы всегда дороже менее многоноггих. А по поводу серьёзности - 32 битнуй sdram к менее чем 208 ногому контроллер вы не подключите. Даже в 144 ногом Чипе стоит врубить ченить эдакое, все остальное становится недоступным, даже с ремаппинггом.