Jump to content

    

murmur

Участник
  • Content Count

    541
  • Joined

  • Last visited

Community Reputation

0 Обычный

About murmur

  • Rank
    Знающий

Recent Profile Visitors

2960 profile views
  1. Друзья! При работе с TouchGFX стала появляться ошибка. Программа влетает в MemManage_Handler. При просмотре регистра MMFSR установлено, что равен единице бит IACCVIOL CallStack внятной информации не содержит (там болтается функция main и все). Как отследить ошибку?
  2. Вместо SelectedCallback нужно использовать PressedCallback.
  3. Друзья, я так поняла, многие имеют опыт работы с TOuchGFX. Пришлось столкнуться с интересной проблемой. На форму добавлен ScrollList. При прикосновении и перемещении содержимое его прокручивается, как и положено. Пытаюсь ловить выбор элемента - scrollList1ItemSelectedHandler(int16_t itemSelected) { } И вот какое дело получается - если коснуться пальцем и не шевелить - то система воспринимает это как выбор. Если коснуться и подвигать - то выбора элемента не происходит - только прокрутка. Это прекрасно работало на плате Discovery. А на собственной плате с экраном 1024х600 событие не вызывалось. Лишь через полдня стало понятно почему - экран очень чувствительный с высоким разрешением. Невозможно прикоснуться и не вызвать движение. Даже если палец не смещается, то в процессе самого нажатия и деформации подушечки пальца система детектирует смещение на 1-2 пикселя и событие не вызывается. Не хочется искусственно загрублять экран. Нельзя ли настроить так, чтобы выбор эелемента срабатывал в любом случае, даже если палец движется после прикосновения?
  4. Это какая-то, извините, жопа.... XH=TS_IO_Read(TS_I2C_ADDRESS,0x98); XL=TS_IO_Read(TS_I2C_ADDRESS,0x99); YH=TS_IO_Read(TS_I2C_ADDRESS,0x9A); YL=TS_IO_Read(TS_I2C_ADDRESS,0x9B); выдает 0x04, 0x00 (1024) и 0x02, 0x58 (600). При этом координаты в крайних точках экрана выдает 800 и 480. Подтверждается практикой ибо приложение нормально работает только так *X = 1024-(coord*(1024/800)); *Y = 600-(coord*(600/480)); Уточню, что у меня. Изначально на buydisplay.com был куплен дисплей 1024х600 с тачскрином в комплекте (комплектовал продавец). Потом я заказала 800х480+тачскрин, продавец не только скомплектовал, но и наклеил. Перепаять контроллера я сочла более простым и безопасным делом, чем отдирать и переклеивать панели. Может так быть, что отличаются не только контроллеры, но и сами дисплеи? То есть контроллер имея в регистрах 1024х600, будучи посажен на не подходящий дисплей, искренне думает что работает в другой "системе координат"? Наверное это все таки не те регистры. Ибо вот такое издевательство TS_IO_Write(TS_I2C_ADDRESS,0x98,0x50); TS_IO_Write(TS_I2C_ADDRESS,0x99,0x50); TS_IO_Write(TS_I2C_ADDRESS,0x9A,0x50); TS_IO_Write(TS_I2C_ADDRESS,0x9B,0x50); XH=TS_IO_Read(TS_I2C_ADDRESS,0x98); XL=TS_IO_Read(TS_I2C_ADDRESS,0x99); YH=TS_IO_Read(TS_I2C_ADDRESS,0x9A); YL=TS_IO_Read(TS_I2C_ADDRESS,0x9B); действительно записывает по указанным адресам 0x50, но на показаниях панели это не сказывается. Простите, в голову не пришло, что команда записи по i2C может писать в EEPROM. То есть, я даже не рассчитывала на такое удобство. Я думала, что регистры, с которыми работает эта команда, есть суть оперативная память и их нужно инициализировать каждый раз. А вот чтобы изменить какие-то базовые настройки нужно плясать с бубном. Приятно было ошибиться.
  5. В чем проблема мой пост повнимательней почитать? Попробую по иному объяснить. В библиотеке, которая работает и выдает координаты 0-800, 0-480, нет обращения к указанным выше регистрам. А посему вызывает удивление, что тачскрин к моменту запуска уже настроен на эти параметры, а в даташите не сказано, что эти регистры имеют какое-либо значение по умолчанию. Я разве писала, что мне проблема внести что-то в регистры? Просто удивила наблюдаемая картина.
  6. Похоже на то. Эти регистры кстати R/W. Но в библотеке, с которой я работаю (подсунутой мне калокубом) нет обращения к этим регистрам. Может быть конечно 800х480 это згачение по умолчанию, но в даташите об этом ни слова. Хотя для других регистров дефолтные згаченря указаны. Что ж, попробую пописАть в эти регистры.
  7. С одной стороны... уже не надо. Потыкав стало понятно, что в калибровке, в общем-то он не нуждается, но..... Я писала в соседней теме о проблемах с тачскрином, там оказался горелый контроллер. Так вот, заказав новый, я с удивлением обнаружила, что он, с точно такой же маркировкой, выдает 800х480 точек. Я никогда не работала раньше с емкостными и наивно полагала, что экран будет просто выдвавать квадратное множество 256х256, которое нужно просто отмасштабировать. Так вот проблему то я решила - отмасштабировала 800х480 в нужные мне 1024х600. Точность устраивает. Но все равно что-то гложет. Эти контроллеры (FT5316) их как-то перепрошивать надо под нужное разрешение? Ибо в даташите я не нашла, чтобы разрешение можно было настраивать при инициализации.
  8. Хочется поточнее проверить координаты нажатий. Палец имеет слишком больную площадь. Даже женский. У соседа есть хомяк, но..... боюсь что эта идея не понравится ни соседу, ни хомяку..... Что-нибудь способно оказывать на экран такое же воздействие, что и палец?
  9. А 100 ps - это что за единица? Я так понимаю, это характеристика сигнала в пикосекундах? А как ее в поллитры перевести?
  10. Ну а допустимая погрешность в разнице длины? Учитывая, что это HS ?
  11. А если все же припаяться к надкусанному otg кабелю... ровно отрезать провода, немножко припоя, потом в термоусадку - есть риск получить рассогласование диффпары?
  12. Друзья! Есть проект на stm32 + usb3300. Планируется настроить эту связку в режиме host и подключать флешку. На плате микроразъем jst smd 6 pin, 3 крайних пина под землю, остальные под остальное. Кабель от платы до разъема флешки короткий, около 10 см. У меня есть два варианта. 1. Соблазнительно простой - у меня есть ответный микроразъем с 6 отдельными проводами, он готовый, контакты надежно обжаты, остается только припаять противоположные концы проводов к разъему под флешку на куске текстолита. 3. Правильный, но не очень удобный - есть у меня кабель usb otg, с одного конца разъем под флешку, с другого microusb. Надо откусить microusb, а дальше ад - как-то обжимать эти микроконтакты. У меня есть кримпер на 32awg, но даже для него клеммы мелковаты. В первом случае получаем неэкранированный кабель, пусть и с тремя землями в пучке. Во втором - экранированный. Вопрос - на скорости usb hs, при относительно небольшой длине кабеля не скажется ли отрицательно его качество? То есть отсутствие экранирования? Очень не хочется возиться с заделкой проводников otg кабеля в имеющийся разъем. Да и клемм у меня под него сейчас нет. Как вариант - могу спаять оба кабеля, но не скажется ли это на работе. На на плате дорожки d+ и d - выполнены с учетом импеданса, а тут вдруг за разъемом будет такая вакханалия... В общем, как лучше поступить?
  13. Фирмварь на сайте выложена. Осталось разобраться, как ее прошивать.
  14. C5 - это тот самый конденсатор, о котором кто-то говорил выше, необходимый для задержки. На моей панели его нет. А все остальное есть, даже нумерация идентичная. У меня уже заказана еще одна панель. Как получу, первым делом прозвоню RST. А пока заказала еще парочку FT5316DME на алиэкспрессе. Не выбрасывать же панель.
  15. Ну что я хочу сказать. Была у меня колодка переходник - FPC -> IDC. Взяла я разъем на 10 пинов, под шлейф, припаяла на переходник, пощупала осциллографом - та же картина - ничем не перетягиваемый ноль на RESET. Отодрала я пленку, покрывавшую ЧИП контроллера, подключилась иголочками от тестера непосредственнно к контактам микросхемы (сенсорная панель, естественно, отключена ото всего). И выявила короткое замыкание между RST и GND. Монтаж чистый, соплей нет.... Сдула контроллер со шлейфа - прозвонила ножки RST и VSS - коротыш. Простите за глупый вопрос - так ведь быть не должно?