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

kirra.cat

Участник
  • Постов

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

  • Посещение

Репутация

-1 Плохой

Информация о kirra.cat

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

Информация

  • Город
    Array

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

1 068 просмотров профиля
  1. Спасибо, поправил. Адаптировал кусок схемы для этого поста и допустил ляп) Спасибо за ценный ответ) Да, на диаграммах явно указано, что это время 1 такт HCLK, а в примере работы с экраном частота микрокотроллера 72 МГц, надо будет подумать, как задержать WE# на пару тактов ещё, что-то не хочется половину тактовой частоты терять. Конечно, можно сигнал WE# перед экраном ещё через пару вентилей пропустить, но это как-то костыльно. Хотя, там есть ещё настройка таймингов в примерах, но не уверен, что это то, что надо, пока жду отладку, и не могу потыкать осциллографом и проверить. С паралельной шиной работал с микроконтроллерами от Миладра, НИИЭТ и Tiva-C от TI, и у всех можно указывать длительность сигналов WE# и OE# в тактах, и почему-то был уверен, что это лишь за редким исключением их править нельзя.
  2. Не уверен, что ТЗ, с подробным описанием функционала, на основании которого можно сделать вывод какой объем памяти, производительность микроконтроллера и прочее потребуется для реализации проекта, необходимо для ответа на четко сформулированный технический вопрос: заработает ли вместе SRAM и экран при данном включении или нет? Вместо конкретного ответа на конкретный вопрос - разведение демагогии, цель которой мне неясна. Как по мне, если нет желания или возможности ответить на вопрос, лучше ничего не отвечать.
  3. Да, конечно, правильно составить некоторое ТЗ для себя и следовать ему. Но мой пост выше, в виде огорода из SRAM и логики должен преследовать следующую цель: я не уверен до конца, хватит ли мне оперативной памяти в проекте, или нет, возможно, что эта SRAM будет использоваться и не только для хранения фрейм-буфера. Просто фрейм-буфер первым пришёл в мою голову, и я его привёл в качестве примера. Поэтому я исходил из следующих соображений: будет экран с памятью внутри, и мне не понадобится микросхема SRAM, то ок, просто не буду ставить её на плату, устройство останется работоспособным. Но если не хватит, причём не обязательно для фрейм-буфера, то добавить эту микросхему будет сложно. Этот огород из микросхем - попытка обезопасить себя от потенциальной проблемы и иметь возможность для маневра, просто заложив под это дело место на плате. Поэтому и спросил в первую очередь, будет ли эта конструкция работоспособна. Так что на мой взгляд, вопрос ставить, или не ставить скорее философский)
  4. Конктректного экрана пока нет, т.к. хочу найти самый дешевый экран, который есть на AliExpress. Мои ожидания от него: разрешение 320х240 или выше (желательно около 480х320), емкостной тач, контроллер что-то типа ILI948x или ST77xx. Это частота обновления картинки 40+ кадров в секунду
  5. Подключение LCD через FSMC

    Всем доброго времени суток, и с наступившим Новым Годом! Разрабатываю одну железку, как личный проект, потом, если получиться, открою под свободной лицензией для всех желающих. В устройстве хочу применить китайский микроконтроллер и цветной экранчик, скорее всего разрешением 320х240 или побольше, и к тому же получить более-менее плавную картинку. Поэтому хочу применить экранчик с 16-битной параллельной шиной, а также фрейм-буфер целиком хранить в оперативной памяти, и после отображать на экране. Микроконтроллер планирую CH32V307VCT6, т.к. он всем меня устраивает (просто поковырять RISC-V) и ещё имеет контролер внешней памяти, через которой и буду загружать этот фрейм-буфер в экранчик. Но мне не хочется тратить много оперативной памяти на этот фрейм-буфер (да и в самом микроконтроллере её столько нет), и этот фрейм-буфер думаю формировать во внешней SRAM (256Кх16), а после через DMA отправлять его из микросхемы SRAM в экран. По идее, должно получиться, что пнул DMA чтобы закинул в SRAM очередной фрейм, потом опять пнул DMA, и дальше всё само записалось куда надо, а процессорное ядро в это время свободно. Возможно, что алгоритм пинания DMA потом будет другой. Конечно, можно было бы поставить что-нибудь пожирнее, но, как понимаю, китайский микроконтроллер + микросхема SRAM + немного логики будут в сумме дешевле более жирного микроконтроллера, да и детальки уже купил, так что деваться мне некуда) Ещё плюс – захотел экранчик с большим разрешением, то просто поставил микросхему SRAM побольше и всё. Да, я прекрасно понимаю, что не обязательно формировать весь фрейм, а можно только изменяющуюся его часть и тем самым вовсе обойтись без всякой внешней памяти, но хочу сделать именно так, с внешней памятью и целым фреймом в нём. Сейчас думаю, как подключить микросхему памяти и экран к FSMC. Блок FSMC выглядит так (что написано по-китайски – мне не известно), но очень похож на таковой в STM32, да и сам чип CH32V307VCT6 совпадает по ногам с STM32F407VCT6, поэтому блок FSMC, предполагаю, будет очень похож на таковой от STMicroelectronics. С STM32, так получилось, что особо дело не имел, но с микроконтроллерами на ARM возился часто. Тут RISC-V, но опять же, ядро на суть вопроса не влияет. Шина данных у него мультиплексирована с адресами А0-А15, и поэтому надо разделить её защелками типа 74HC573, для доступа к всей SRAM. На странице 113 Reference Manual есть табличка, какие в принципе есть ноги у FSMC. Мне вроде ясно, что сигналы AD0-AD15, A16-A23, NOE, NEW, NWAIT будут общими для LCD и SRAM, сигналы NE1, NBL0, NBL1 будут для SRAM, а NCE2 для LCD, и примерно набросал следующую схемку (Schematic.pdf вложении). Также, исходя из примера для LCD (примеры для LCD и SRAM во вложении), экран нормально работает и без защёлок, а для SRAM они нужны. Для экрана сигнал LCD_RS хочу дергать лининей адреса А18. А для SRAM чуть непонятно, когда защёлкивать адрес? Судя из диаграмм, скорее всего сигналом FSMC_NADV, и подавать его на входы LE микросхем-защёлок. Но этого сигнала что-то не нашёл в составе FSMC, есть только информация, что порт PB7 мапится на этот сигнал, и в примере с SRAM он используется. Поэтому надежда на то, что так и есть. Сигналы тактового сигнала FSMC_CK и сигнал FSMC_NWAIT мне, судя по всему, не нужны. В целом, вопрос вот в чём. Верны ли мои рассуждения насчёт работы FSMC (пусть с точки зрения STM32)? В схеме верно ли, что сигнал FSMC_NE1 идет на защелки DD7, DD8 (вход OE#)? И в целом, работоспособна в теории приведенная схема? Также, хотелось бы услышать вашего мнения насчёт логичности и оправданности такого решения, что может быть с вашей точки зрения в нём неоптимального, кроме того, что это потенциально три ненужные микросхемы? Reference Manual на GitHub https://github.com/openwch/ch32v307/tree/main/Datasheet, или на сайте WCH http://www.wch-ic.com/downloads/CH32FV2x_V3xRM_PDF.html, он 7 МБ, и не получается его закинуть во вложение. P.S. В микросхеме SRAM IS62WV25616BLL есть ещё CS2, но он опциональный, есть версии микросхем только с CS1#. Если микросхема с CS2, то куда этот CS2 подключить? Мои предположения, что это для того, чтобы несколько микросхем цеплять на одну шину, и планирую просто притянуть его к лог. 1. P.P.S. На схеме в желтых квадратах указано, как подключены SRAM и LCD в приложенных примерах кода. CH32_FSMC_Example.zip
  6. Добрый день. Мы разрабатываем девайсину, к которой повышенные требования к надежности, и нам понадобились 2 микросхемы USB Hub: одна на 4 нисходящих порта, другая на портов 7-8. Требования к микросхеме не зверские, достаточно чтобы был USB 2.0 HS или быстрее, всякого контроля заряда не надо, защита от перегрузки - через внешний драйвер, а также, особенно в данное время, важное условие её доступности. Ну, и чтобы совместима с Linux была, хотя, как понимаю, почти всё будет поддерживаться в Linux. Повышенная надежности нужна, т.к. девайсина должна работать непрерывно днями, с очень активным трафиком по USB. Смотрел на всякие китайские FE1.1, FE2.1, GL850, но народ пишет, что скорость низкая и отваливаются часто, а это нам не допустимо. Думал насчёт 4-портового HUB TUSB4041 от TI, но в продаже особо не нашёл. На 7 портов пока склоняюсь к USB2517. На 4-порта скорее всего пока тоже к микросхемам от MicroChip смотрю, исходя из доступности. Хотел поинтересоваться, что можете рекомендовать к использованию? Кто сталкивался с выбором микросхемы USB Hub, поделитесь опытом, пожалуйста. -- С уважением, Сергей
  7. Доброго всем дня. Я разрабатываю устройство и столкнулся со проблемой подключения экрана с параллельной шиной к одноплатному ПК. Но обо всё по порядку. У меня есть 24-битный дисплеи NHD-7.0-800480EF-ATXL#-CTP и NHD-5.0-800480TF-ATXL#-CTP с параллельной шиной и одноплатный ПК Eaglet c i.MX6 с двухканальным LVDS. Это у меня уже есть, и надо это связать между собой. Для достижения этого хочу разработать преобразователь из двухканального LVDS в 24-битную параллельную шину. Только меня смущает двухканальный LVDS, я не знаю, можно ли использовать лишь один канал. Пока в голове есть две идеи: 1. Применить микросхему DS90CF388A, подключить два канала LVDS, но использовать только один порт 24-битной параллельной шины (см. Рисунок 1) 2. Применить микросхему DS90CF384A для подключения по одному каналу LVDS и оставить один канал свободно висящим в разъеме (см. Рисунок 2). Как тут лучше поступить? В целом, мои мысли верные?
  8. Добрый день. Я отлаживаю железку, в которой USB Hub USB7216, структура железки выглядит примерно так: там есть одноплатный ПК формата MXM3 (p/n EDM1-IMX6D-10-R10-MSD-9377) и в силу того, что у него один USB, к нему подключен USB-Hub на 6 портов USB7216. К мосту подключены уже USB-UART, микроконтроллер (его нет на картинке), и несколько соединителей USB. В качестве Reference Design использовать схему отладочной платы EVB-USB7216 (схема в pdf файле, во вложении). Я предполагал, что выбрав одну из двух предустановленных опций USB Hub, мне не надо будет его отдельно конфигурировать, и он должен сразу заработать. Сейчас, установлены перемычки J18,J19,J21,J25,J26,J27,J31-J37,J39,J71,J72 (выделены на схеме желтым). Но на практике я получил такое поведение: иногда он определяется как один хаб, иногда как два хаба, и чаще всего не определяется совсем. Во всех случаях, подключенные к хабу USB устройства не определяется операционной системой. Это вывод с Linux, если мост определяется вывод, когда он не определяется и когда определяется лишь его "часть" я не могу сейчас поймать что-то, как поймаю, дополню пост. Когда определяется лишь "часть" устройства, он отображается примерно так Bus 001 Device 083: ID 0424:4216 Standard Microsystems Corp. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Кто сталкивался с этим семейством USB Hub от MicroChip? В чём может быть причина? Буду рад любой помощи, спасибо. hw_platform_usb_hub1.pdf
  9. Спасибо за ответы. Я когда рисовал эту схему, следовал следующими соображениями: т.к. каждый SPI уходит через соединитель дальше в прибор, то линия должна быть помехоустойчивой. И на мой взгляд, 8 проводников подключенных к одной точке менее помехозащищены, нежели линия точка-точка. Может у меня просто такой стререотип выработался. Конечно, можно мультиплексировать только FSS, а остальные сигналы оставить просто соединёнными между собой. Но в таком случае мне потребуется буфер перед каждым разъемом, чтобы не оставлять порты микроконтроллера подключенные напрямую в недра прибора. А тут подумал, почему бы не поставить микросхемы 138 и 151 (ток они могут дать около 10 мА), и не ставить буфер перед разъемом. Но если это решение рабочее, тогда буду думать, как его лучше прилепить.
  10. Добрый день. Сейчас думаю над устройством, где есть микроконтроллер, к которому подключены 8-SLAVE SPI. Т.к. мне все это SLAVE одновременно не нужны, да и в примененом мной микроконтроллере нет столько SPI, хочу мультиплексировать линии. Типа вот такой вот штуки должно получится Решил нагородить из стандартной логики SN74HC138 и SN74HC151 некий мультиплексор/демультиплексор, который выглядит примерно так (если плохо видно, есть во вложении схема Test.pdf): Предполагаю, что выставив 3-битный адрес устройства (линии SELA, SELB, SELC) в нужное число от 0 до 7, я выберу необходимый мне SLAVE. У меня собственно вопросы такие: 1. Нужны ли буферы (типа SN74HC244) после мультиплексора/демультиплексора? 2. Какие могут быть неприятности в таком решении? 3. Не считается такой костыль из стандартной логики чем-то жутко плохим? 4. Вообще, рабочее это решение/схема? :) -- С уважением, Kirra
  11. Отлично. И у меня ещё небольшой вопрос, но уже по поводу соединителей. С экранчиков выходят шлейфы на гибко-жеских платах. Рекомендованный Winstar разъем я не нашел. По какому принципу эти разъемы выбираются? Просто использовал соединители от Hirose Electric серии FH34SRJ, которые обзываются FPC/FFC Connectors, и у них в этой же серии есть подходящие, на мой взгляд, соединители FH34SRJ-10S-0.5SH(99), FH34SRJ-40S-0.5SH(99) и FH34SRJ-50S-0.5SH(99) Должны ли подойти эти соединители к экранам от Winstar? P.S. Прошу прощения за столь глупые вопросы про разъемы, просто это моя больная тема, в каждой разработке я обязательно ошибусь с разъемом :) могу безошибочно поместить на плату 700-ногий BGA, но с каким-нибудь соединителем обязательно будет что-то не так :) ed_FH34_20191223.pdf
  12. Я как раз хотел приложение на Qt писать. А в качестве ОС использовать Ubuntu. А чём может быть сложность с тачем в Qt? Это весьма крутой проект. Верно ли я понял, что допустим, я выберу экран от Winstar WF50BTIAGDNGC (5 дюймов) и WF70GTIAGDNGC (7 дюймов), они используют для обработки сенсора чип FT5426 (который поддерживается в проекте от Watterrott) и сделаю плату на TFP401A, то по сути, подключив к нему HDMI и USB получу сенсорный монитор? P.S. Просто мои скиллы позволют разработать без особых проблем сложную плату, и осуществить монтаж, типа 0402 и пр., поэтому больше склоняюсь к аппаратному решению задачи :) P.P.S. Кстати, этих вилок PLLD 1.27mm у меня предостаточно валяется :)
  13. Изначально я хотел подключить экранчики WF50BTIAGDNGC (5 дюймов) и WF70GTIAGDNGC (7 дюймов). В итоге, как я понял, надо настроить драйвер для сенсора (используетяс чип FT5426), и контроллеров экрана HX8264+HX8664 и пересобрать его вместе с ядром. Конечно то ещё развлечение. Но мне важно, чтобы этот одноплатник с экраном были минимальной толщины (насколько это возможно), поэтому я искал варианты без всяких HDMI. Как понимаю, на этом одноплатнике есть ещё DSI (и он на том же разъёме, что и камера). С ним такое же приключение предстоит? Просто мне всё равно предстоит развлечение примерно следующего характера: сделать плату, на одной стороне которой MXM-3 соединитель для платы с i.MX6, а на другой - соединители для экрана с сенсорной панелью. Ну и ещё там всякой всячины. Вариант, без развлечений с пересборкой, есть лишь с экраном по HDMI и сенсором по USB? В силу этих размышлений, может есть смысл прикрутить микросхему преобразователя HDMI в 24-битный RGB, типа TFP401A от TI? Но тем не менее вопрос с сенсором остается открытый..
  14. Доброго всем вечера. Есть одноплатный ПК от Wandboard на i.MX6 Dual. И я хочу прикрутить к нему сенсорный экранчик. Посмотрев на схему, для экрана у этого ПК есть некоторая 24-разрядная шина (на 21-й странице схемы). Мне не понятны две вещи: 1. Сенсорная панель цепляется, как понимаю, отдельно, по SPI/I2C и пр. Куда её цеплять к этому одноплатному ПК? 2. Если выбрать какой-нибудь экран, то вероятность его поднятия зависит от того, есть ли для этого экрана (точнее для контроллера в этом экране) драйвер в Linux. Если есть драйвер для контроллера экрана, то этого достаточно, чтобы он заработал? P.S. Если у вас есть опыт применения экрана, то можете что-нибудь посоветовать, с емкостным сенсором, диагональною 5-7 дюймов, и примерным разрешением 800х480? Желательно, чтобы его можно было без проблем купить в России, до 8000 руб. P.P.S. Прошу прощения, что задаю глупые вопросы из разряда "возьми, да загугли", просто уже запутался что-то.. До этого одноплатный ПК подключал только по HDMI к монитору.. wandboard-user-guide-20130208.pdf
  15. Либо я дурной, либо вправду что-то не так. Создал пустой проект, добавил main.c Пробую мигать светодиодом, но при сборке ругается, что не определен ps7_init(). Но он находится в описании аппаратной части, и пути в проекте у меня до него настроены Делал для этого C/C++ Build -> Settings -> Directories и туда добавлены пути как для текущего проекта "${workspace_loc:/${ProjName}}", так и для описания платформы "${workspace_loc:/zynq_test0_wrapper_hw_platform_0}" Собственно в саму функцию по клавише F3 могу зайти, но всё равно ругается, что она неопределенна Пробовал создавать проект с HelloWorld, там тоже самое. В комментариях к init_platform() написано, что если будешь это дело вызывать вне SDK, то раскомментируй функции ps7_init() и psu_init(), а также раскомментируй подключени хедеров ps7_init.h и psu_init.h Но это ровным счётом приводит к такому же результату, ps7_init() не определен. Без вызова функции ps7_init() всё собирается без ошибок, но отладчик не заходит в программу, всегда куда-нибудь улетает Как понимаю, тут есть некая тонкость, о которой я не догадываюсь. Что я делаю не так? Сейчас мучаюсь с проектом zynq_test0_hello, проект на Яндекс.Диске
×
×
  • Создать...