Взлом монитор Autool X50 OBD2 на основе GD32 и диагностический дисплей '

Carl0s
Ср 11 апреля 2018 г., 17:27
Привет!

Я Карл

Надеюсь, что мой первый проект с STM32 будет получить некоторый код на эту плату GD32F103 и управлять ЖК -дисплеев. Мне сначала нужно выяснить, что такое драйвер. Похоже, он использует 17 булавок.. Надеюсь, ILI9341.

Затем я буду использовать это в качестве экрана / контроллера для моего Datalogger моего транспортного средства, который я уже построил на Adafruit Feather M0.

Вот что я хочу взломать..

Обратите внимание, что Mini-USB на заднем плане на самом деле предназначен для соединения OBD транспортного средства, и будет ожидать +12V, а также K-Line, L-Line, Can-Hi/Can-Lo и т. Д.. Это * не * соединение Mini-USB!

(В большинстве веб-браузеров вы можете щелкнуть правой кнопкой мыши на изображениях ниже и выбрать открытое изображение в новой вкладке, чтобы просмотреть в полном разрешении).

Изображение

Изображение

Изображение

Изображение

Изображение

Rogerclark
Ср 11 апреля 2018 г., 21:56
добро пожаловать..

Я отказался от попыток поддержать GD32, потому что мы нашли его’S не совсем совместим с STM32.
GD32 основан на спецификации для STM32, но это’S, где заканчивается сходство.

Некоторые вещи работают, но другие надевают’Т.

Эн.глин. SPI не сделал’Кажется, это работает так же. (возможно, какая -то проблема с режимом)
Это не сработало с этим дисплеем.

Есть различные причины, почему это’S не совместим, включая использование “сдержанный” Части регистров управления, что означает потенциально большую часть функциональности GD32, не настроена на ядро.

Кроме того.

Я оставил папки варианта GD32 в ядре F1, я просто удалил линии с досок.TXT, который включает использование этого варианта, так что вы можете восстановить эти линии.

Однако, если что -то не делает’T работа, вам, вероятно, нужно отладить его на уровне оборудования, чтобы определить, что’Сйдет не так.
Вам также нужно будет попытаться найти некоторую документацию на GD32 и сравнить регистры аппаратного обеспечения, чтобы увидеть, что могло или не может быть настроено

Я помню, по крайней мере, год назад российский веб -сайт, где кто -то задокументировал по крайней мере 20 различий между GD32 и STM32, но я суспендирую, что сейчас почти невозможно найти эту информацию, если кто -то не опубликовал ссылку на этот форум, когда GD32 был изначально запущен

Carl0s
Ср 11 апреля 2018 г., 22:00
Спасибо, Роджер. Все очень полезно! Может быть, я просто держу экран. В конце концов, моя охота была просто для экрана, который находится внутри датчика или корпуса, который я мог бы использовать с моим почти законченным проектом (на Adafruit Feather M0). Но мне любопытно посмотреть, смогу ли я что -нибудь сделать со всей ее частью MCU, теперь видя, что это здесь и уже подключено к экрану. Я пытаюсь заставить ST Link поговорить с ней в данный момент, но для меня все это новое.

Rogerclark
Ср 11 апреля 2018 г., 22:27
Я думаю, что если на GD32 было потрачено достаточно времени, его можно было бы заставить работать, но, поскольку было так мало доступных досок GD32, вряд ли не было доски, у которого было время и навыки, чтобы решить проблемы

Если вы увлекся инструментом с горячим воздухом, вы можете распаковать GD32 и припаять STM32F103C8 на его месте.

Однако я попытался сделать это, и в итоге вытащил дорожки доски и разрушил ее :-(

Вероятно, легче получить еще один разъем ленточного кабеля и синюю плату таблеток и использовать его вместо платы MCU, которая на этом устройстве.

Carl0s
Ср 11 апреля 2018 г., 22:49
Хм. Это хороший крик на синюю таблетку - учитывая, что она уже хорошо поддерживается.

Другая моя проблема в том, что я еще не знаю, что это за контроллер дисплея.

Я только что заставил OpenOCD поговорить с этой доской после просмотра выводов SWD, и.. хорошо.. Пока я чувствую, что добился некоторого прогресса (я понятия не имею, что на самом деле делаю.. Я смог остановить, читать регистры и сбросить MCU, вот и все), я полагаю, что надеялся попробовать просто загрузить какой-то предварительно построенный код для 64-контактного STM32F103, который подключен к ILI9341 через SPI и посмотрите, если какое -то чудо, которое он забежал, и что -то отображало на экране.

OTOH, вы вполне правы, я мог бы потратить вечность, пытаясь переоборудовать эту недокументированную вещь, или вместо этого я мог бы иметь правильный план с синей таблеткой. Мое время может быть лучше потрачено, пытаясь выяснить, что происходит вверх/вниз по плоскому гибкому. У меня есть 4 -канальный объем и один из этих дешевых логических анализаторов Salae, поэтому, если это SPI, я смогу увидеть это.

Кстати, я на самом деле намереваюсь использовать немного другую версию этой вещи в конце концов. Я искал высоко и низко для ЖК -дисплея в хорошем корпусе, в идеале датчик для мотоцикла. 2 Line Dot Matrix LCD была бы сделана, и я был близок к сдаче. Итак, чтобы найти это для 20 Quid было радостью. Мне пришлось заказать стиль издава один из Китая, поэтому я получил этот стиль POD, который я демонтировал от Amazon. Я уверен, что они будут такими же внутри. У них такая же система, работающая на них, та же кнопка/набор.. предположительно сделано той же компанией.


Изображение

Carl0s
Чт 12 апреля 2018 г. 12:03
Все правильно. Я убил его!

Я думаю, что MWW в OpenOCD писал, чтобы Flash...

:)

Ахулл
Чт 12 апреля 2018 г., 7:02
Если вы убили его, вам нечего больше свободно : D Вы можете прошить любой код, который вам нравится сейчас. Однако, прежде чем сделать это, возможно, стоит попытаться прочитать оригинальную вспышку (хотя я подозреваю, что она защищена от позаботуемых глаз).

Я бы начал с того, что выяснил, какие штифты на дисплее включены, а затем пропустили некоторые демонстрации дисплея и посмотрели, сделает ли он что -нибудь интересное.

Если вы сделаете немного глубокого погружения в Google Trawling, вам даже повезло, чтобы выпустить оригинальную прошивку на каком -то неясном китайском форуме или на сайте обмена файлами.

Ахулл
Чт 12 апреля 2018 г., 7:56 утра
Этот дисплей может быть этим -> http: // www.панель.com/claa024guf1_cpt ... 31211.HTML

CPT CLAA024GUF1 Детали электроники
Драйвер IC: COG встроенный ST7789VI

http: // www.Allshore.com/pdf/st7789v.PDF (Старая версия DataSheet)
https: // newhavendisplay.com/appnotes/da ... T7789V.PDF

Вероятно, запускать в 8 -битном параллельном режиме.
Вы рассмотрели ленточный кабель и разбрызгивают булавки на главной плате, чтобы выяснить, что происходит, где.

Мадиас
Чт 12 апреля 2018 г. 8:14
[Rogerclark - Ср 11 апреля 2018 г. 22:27] - Если вы увлекся инструментом с горячим воздухом, вы можете распаковать GD32 и припаять STM32F103C8 на его месте.
Однако я попытался сделать это, и в итоге вытащил дорожки доски и разрушил ее :-(
Роджер: О перепроллетеле чип:
Я успешно перепродавли (и обменялся) 1284a с моей доски принтеров Melzi с обычным магазином DIY Hot Air Gun (эта штука для удаления лака):
  • Оберните все, чтобы не перепродать детали в оловой (несколько слоев, свободно обернутый) только позволяют лишь бесплатно чипку.
    Взорвать чип вверх дном, он падает через некоторое время
    Паячка нового чипа: используйте пайки! Распределите его на контакты слоя, поставьте на него чип и используйте пистолет с горячим воздухом или общий паяльник.

Carl0s
Чт 12 апреля 2018 г., 10:04
[Ахулл - Чт 12 апреля 2018 г. 7:56] - Этот дисплей может быть этим -> http: // www.панель.com/claa024guf1_cpt ... 31211.HTML

CPT CLAA024GUF1 Детали электроники
Драйвер IC: COG встроенный ST7789VI

http: // www.Allshore.com/pdf/st7789v.PDF (Старая версия DataSheet)
https: // newhavendisplay.com/appnotes/da ... T7789V.PDF

Вероятно, запускать в 8 -битном параллельном режиме.
Вы рассмотрели ленточный кабель и разбрызгивают булавки на главной плате, чтобы выяснить, что происходит, где.
Привет, Энди. Спасибо за это. Я новичок во всем этом, но я думаю, что я следую..
8 -битный параллельный режим 8080 -I будет использовать 8 линий данных (D0 - D7) и 5 ​​линий управления (RDX, WRX, D/CX, CSX и RESX), что составляет 13 проводов, плюс, возможно, еще 2 - 4 для подсветка? Из ленты ясно, что 2 провода не переходят непосредственно к чипу контроллера дисплея. Похоже, они охватывают отдельный пробег FFC (помеченный как CN3 на FFC). У нас есть CN1 = от 1 до 18, с одним манекеном / отсутствующим на конце, CN2 = от 1 до 96, перейдя к контроллеру дисплея, с некоторой плотностью соединений лишь слегка к левой середине IC и CN3 = 2 соединения Переход к верхнему краю ЖК -дисплея, где я думаю, что некоторые пассивы расположены.

Что заставляет вас думать, что это может быть ST7789BVI, а не ИЛИ, кстати, кстати?

Rogerclark
Чт 12 апреля 2018 г., 10:14
Матиас

Хорошая идея о алюминиевой фольге.

Я знаю, что не получил его достаточно жарко.

Carl0s
Чт 12 апреля 2018 г., 10:22 утра
[Rogerclark - Ср 11 апреля 2018 г. 22:27] - Я думаю, что если на GD32 было потрачено достаточно времени, его можно было бы заставить работать, но, поскольку было так мало доступных досок GD32, вряд ли не было доски, у которого было время и навыки, чтобы решить проблемы
Я явно ошибаюсь по этому поводу, учитывая, что вы, ребята, поддерживаете синюю таблетку, но не GD32, но.. Я думал, что где-то прочитал, что эти доски STM32F103 STM32F103 должны использовать повторные клоны STM, чтобы быть такими дешевыми (я.эн. GD32) '.

Я думаю, это не так?

Carl0s
Чт 12 апреля 2018 г., 10:30 утра
[Ахулл - Чт 12 апреля 2018 г. 7:56] - Этот дисплей может быть этим -> http: // www.панель.com/claa024guf1_cpt ... 31211.HTML

CPT CLAA024GUF1 Детали электроники
Драйвер IC: COG встроенный ST7789VI

http: // www.Allshore.com/pdf/st7789v.PDF (Старая версия DataSheet)
https: // newhavendisplay.com/appnotes/da ... T7789V.PDF

Вероятно, запускать в 8 -битном параллельном режиме.
Вы рассмотрели ленточный кабель и разбрызгивают булавки на главной плате, чтобы выяснить, что происходит, где.
Эй, Энди.. Я не заметил, что панеллоук позвольте вам получить таблицы данных (только 1, хотя..! без оплаты).
Я получил таблицу, но в нем говорится, что панель только SPI.

http: // www.InternetSome.com/autool ... 24GUF1.PDF

Похоже, что это панель - хорошая работа - спасибо! Не подключенный PIN-3 точно соответствует.

Rogerclark
Чт 12 апреля 2018 г. 11:18 утра
Мы спросили ST, и они не знают о каких -либо клонах STM32.

GD32 - это совсем другое устройство.
Это’F -функционал был скопирован из листа данных STM32, но гигадевики добавили некоторые усовершенствования.
Они также не сделали’T удается полностью дублировать функциональность в спецификации. (У них есть ошибки в оборудовании)
У гигадевиков есть лицензия на использование ядра ARM процессора, поэтому они не нарушают никаких законов, делая то, что они сделали.

Это’S в основном используется компаниями в Китае, которые разрабатывают продукты с нуля, и они используют стандартные файлы периферийной библиотеки GD32.


Bluepill и т. Д. Все используют официальные чипы ST32.

Carl0s
Чт 12 апреля 2018 г., 11:38
[Rogerclark - Чт 12 апреля 2018 г. 11:18] - Мы спросили ST, и они не знают о каких -либо клонах STM32.

GD32 - это совсем другое устройство.
Это’F -функционал был скопирован из листа данных STM32, но гигадевики добавили некоторые усовершенствования.
Они также не сделали’T удается полностью дублировать функциональность в спецификации. (У них есть ошибки в оборудовании)
У гигадевиков есть лицензия на использование ядра ARM процессора, поэтому они не нарушают никаких законов, делая то, что они сделали.

Это’S в основном используется компаниями в Китае, которые разрабатывают продукты с нуля, и они используют стандартные файлы периферийной библиотеки GD32.


Bluepill и т. Д. Все используют официальные чипы ST32.
Понятно, спасибо. Я видел пост здесь, где кто -то объяснил несколько ошибок/различий, в частности, я помню, что SPI должен быть выбран между мастером или рабом, который не требуется на STM32, и пара других вещей.. Думаю, был список из 8 вещей, но они не звучали большим.

Я все равно хочу попытаться получить код на эту штуку. Я заказал «чертех». Я не уверен, что это будет физически вписаться в мой круглый манд, который у меня есть по заказу, хотя. Adafruit Itsy M0 подойдет.. Но это еще 12 фунтов стерлингов, когда у меня уже есть более мощный MCU, с Can Can Tranceivers и всевозможными встроенными Gubbins. Кроме того, подключение к этому 18-контактному FFC на экране будет лаваш, если я использую другую плату.

Carl0s
Чт 12 апреля 2018 г., 11:42
[Ахулл - Чт 12 апреля 2018 г. 7:56] - Этот дисплей может быть этим -> http: // www.панель.com/claa024guf1_cpt ... 31211.HTML
Это на 100%, эта панель! На рисунке CAD есть тот же номер детали на нем!!

Как вы нашли это? Я даже не могу найти его, когда ищу панеллеку.com для "18 PIN" или "18PIN" и т. Д. ?? спасибо.

Вы бы поверили, что нигде нет 18-контактных досок FFC? Они идут 10, 12, 14, 16, 20... и т. д.!!

Я заказал около 18 контактных разъемов FFC и несколько 20 PIN -вырывочных печатных плат, но это еще одна причина, по которой было бы проще, если бы я мог использовать существующий MCU & доска.

Ахулл
Чт 12 апреля 2018 г. 13:29
Было бы интереснее использовать существующий процессор GD и гораздо более чистое решение.

Чтобы сделать это, нам нужно немного переоборудовать печатную плату.

Нам нужно знать, какие булавки идут туда, где между БД и ЖК -дисплей.

Как только мы узнаем об этом, мы сможем попробовать некоторые из существующих примеров ST7789BVI, хотя им может потребоваться небольшая настройка, чтобы заставить их работать на GD, а не STM. Если вы готовы к многочисленным исследованиям с вашим мультиметром и достаточным количеством царапин головы, я подозреваю, что мы можем заставить его работать.

ЖК -дисплей также имеет подсветку, для которой нам нужно определить PIN (ы). Вероятно, он проходит через PWM и один из этих транзисторов.

Вероятно, это первое, что нам нужно идентифицировать, как чтение дисплея будет довольно сложным без подсветки : D

Я не могу разобрать написание на всех чипах на вашей доске, вы можете определить цифры на них всех?

У вас есть список ebay/aliexpress/taobao для того, что вы купили, и тот другой, который вы связали?

Carl0s
Чт 12 апреля 2018 г. 13:33
[Ахулл - Чт 12 апреля 2018 г. 13:29] - Было бы интереснее использовать существующий процессор GD и гораздо более чистое решение.

Чтобы сделать это, нам нужно немного переоборудовать печатную плату.

Нам нужно знать, какие булавки идут туда, где между БД и ЖК -дисплей.

Как только мы узнаем об этом, мы сможем попробовать некоторые из существующих примеров ST7789BVI, хотя им может потребоваться небольшая настройка, чтобы заставить их работать на GD, а не STM. Если вы готовы к многочисленным исследованиям с вашим мультиметром и достаточным количеством царапин головы, я подозреваю, что мы можем заставить его работать.

ЖК -дисплей также имеет подсветку, для которой нам нужно определить PIN (ы). Вероятно, он проходит через PWM и один из этих транзисторов.

Вероятно, это первое, что нам нужно идентифицировать, как чтение дисплея будет довольно сложным без подсветки : D

Я не могу разобрать написание на всех чипах на вашей доске, вы можете определить цифры на них всех?

У вас есть список ebay/aliexpress/taobao для того, что вы купили, и тот другой, который вы связали?
Я определенно готов к этому! :-)

Есть только один непрерывный чип. Вы можете получить разбивку чипсов здесь: http: // brano2.блог.сопутствующий.Великобритания/2017/09/RO ... -автоматическое.HTML
Пратовая плата включает в себя следующие интегрированные схемы:
U1 LM393 (K, L-Line Conversion)
U2 TJA1050 (приемопередатчик HS-CAN 5V)
U3 MP1482DS (шаг 2a, Sync ertified)
U4 LM6206N3 (Стабилизатор линейного напряжения 1,5-3,3V 0,25A OZN 662K)
U5?
U6 GD32F103RBT6 ARM Cortex-M3 3.3V 36-45MA 128KB Flash, 20 КБ SRAM, USB2.0, can2.0b, case lqfp64
U7 S25FL216KIF PDF (2MB Serial Flash 3V)

Верхняя часть печатной платы от внутренней (верхней) стороны ссылки существует кристалл 8 МГц, зуммер, разъем для дисплея.
Как описано, это версия 4.3. Сверху справа находится разъем J1, который содержит 3.3 /5 В последовательный выход из процессора (шина I2C № 2 или RX / TX USART3).

В правом верхнем углу разъем J2, который используется для программирования флэш -памяти.
Вот сигналы с помощью записи, GND, SI / IO и SCK из внешней вспышки U7 SPI.
Разъем дисплея имеет 18 контактов, 13 используется для ЖК -экрана, 4 для светодиодной подсветки и один неиспользованный.
Дисплей показывает TFT240QV1-V1.0-15Z01, кабель 024GUF1-V4-207581 2015-53, белая метка HYXS062563103752 на кабеле.
За исключением того, что на моем 2MB Serial Flash-это другой чип, для которого я не могу найти данные, и я не смог прочитать ее в цикле с моим Sofi SP8A. Может быть, это ожидается, когда он все еще будет на доске, хотя.


Я был в этом до 3:30 утра сегодня утром. Я не уверен, что подруга разрешит это снова сегодня вечером, но я буду держать ветку. Спасибо за помощь и поддержку.

Ахулл
Чт 12 апреля 2018 г. 13:37
[Carl0s - Чт 12 апреля 2018 г. 11:42] - Как вы нашли это? Я даже не могу найти его, когда ищу панеллеку.com для "18 PIN" или "18PIN" и т. Д. ?? спасибо.
Я искал 024GUF1, который отпечатана на кабеле FPC. Часто между этими дисплеями часто бывает небольшая разница, за исключением макета ленточного кабеля, так что это часто может быть лучшим из многих случайных чисел на дисплее для поиска. В прошлом у меня был такой же успех в поисках показов для старых камер канонов.

Я был немного разочарован тем, что не появился больше информации, например, какое -то потребительское устройство, такое как камера, или GPS, которые использовали этот точный дисплей, но я не потратил много времени на задачу, так что вам может повезти и найти больше информации, если вы продолжаете тратить.

Carl0s
Чт 12 апреля 2018 г. 13:50
[Ахулл - Чт 12 апреля 2018 г. 13:37] -
[Carl0s - Чт 12 апреля 2018 г. 11:42] - Как вы нашли это? Я даже не могу найти его, когда ищу панеллеку.com для "18 PIN" или "18PIN" и т. Д. ?? спасибо.
Я искал 024GUF1, который отпечатана на кабеле FPC. Часто между этими дисплеями часто бывает небольшая разница, за исключением макета ленточного кабеля, так что это часто может быть лучшим из многих случайных чисел на дисплее для поиска. В прошлом у меня был такой же успех в поисках показов для старых камер канонов.

Я был немного разочарован тем, что не появился больше информации, например, какое -то потребительское устройство, такое как камера, или GPS, которые использовали этот точный дисплей, но я не потратил много времени на задачу, так что вам может повезти и найти больше информации, если вы продолжаете тратить.
Спасибо, Энди.

Ахулл
Чт 12 апреля 2018 г. 14:24
Еще один поиск, который может быть полезен, - это любые комбинации ST7789 Arduino Shipe Shematic Pinout "18 PIN" и так далее.

Вы также можете попробовать "интерфейс ST7789V i8080". Вы никогда не знаете, что вы можете привести точный клон дисплея, который у вас есть.

Что касается флэш-чипа, попробуйте удержать GD32 в сбросе, используя клон ST-LinkV2 при расследовании внешнего флеш-чипа, в случае, если GD32 снимает автобус и останавливает работу читателя. Если все остальное не удалось, вы, конечно, не задержаны, но это может быть немного сложно. Я склонен потворствовать операции только в том случае, если пациент абсолютно требует этого, или уже мертв : D

Есть много очень похожих устройств от разных производителей, с аналогичными расписками, так что у вас может быть просто не совсем правильные параметры.

Ахулл
Чт 12 апреля 2018 г. 15:05
Подсветка довольно легко идентифицировать. Ищите контакты A и K на FPCB (ленточный кабель). Они почти наверняка (а) узел и (k) атрод светодиодов (ов), кроме того. Еще одна возможность состоит в том, что черная лента может покрыть некоторые перемычки для конфигурации, используемые для установки режима интерфейса.

Поместите свой мультиметр в режим испытания диодов и зонд между контактами A и K, и вы вполне можете быть вознаграждены тусклым сиянием от подсветки.
Оттуда это вопрос выяснения, где эти булавки идут на основную печатную плату.

Посмотрите внимательно на изображение, которое вы разместили в FPCB, интерфейс может быть относительно легко выяснить.

Хотя контроллер имеет изумительный массив возможных режимов интерфейса, мы можем устранить большинство из них из -за относительно низкого количества контактов на разъеме.

Сам разъем имеет 18 контактов, и один из них остался пустым, так что оставляет 17, если мы предполагаем минимум два дополнительных контакта, по одному для мощности и GND, и он кажется двумя контактами для светодиода (хотя это может Иметь общий наземный или питательный штифт, поэтому он может использовать только один), тогда у нас осталось только 13 пин, поэтому мы не можем использовать 16 -битные параллельные режимы. Может быть возможно дальнейшее устранение булавок, поскольку у нас может быть заземленный штифт между каждым сигналом. Если это так, то мы можем смотреть только на шесть или семь линий сигнала.

Если гаджет все еще работал, мы могли бы наклеить на него логический анализатор и получить правильный ответ довольно быстро, но, поскольку это не так, нам может потребоваться исключить оставшиеся режимы путем проб и ошибок.

Я предполагаю, что у дисплея нет сенсорного экрана.

Интерфейс кнопки также должен быть относительно легко выяснить с тестером непрерывности на вашем мультиметре.

Carl0s
Чт 12 апреля 2018 г. 15:22
[Ахулл - Чт 12 апреля 2018 г. 15:05] - Подсветка довольно легко идентифицировать. Ищите контакты A и K на FPCB (ленточный кабель). Они почти наверняка (а) узел и (k) атрод светодиодов (ов), кроме того. Еще одна возможность состоит в том, что черная лента может покрыть некоторые перемычки для конфигурации, используемые для установки режима интерфейса.

Поместите свой мультиметр в режим испытания диодов и зонд между контактами A и K, и вы вполне можете быть вознаграждены тусклым сиянием от подсветки.
Оттуда это вопрос выяснения, где эти булавки идут на основную печатную плату.

Посмотрите внимательно на изображение, которое вы разместили в FPCB, интерфейс может быть относительно легко выяснить.

Хотя контроллер имеет изумительный массив возможных режимов интерфейса, мы можем устранить большинство из них из -за относительно низкого количества контактов на разъеме.

Сам разъем имеет 18 контактов, и один из них остался пустым, так что оставляет 17, если мы предполагаем минимум два дополнительных контакта, по одному для мощности и GND, и он кажется двумя контактами для светодиода (хотя это может Иметь общий наземный или питательный штифт, поэтому он может использовать только один), тогда у нас осталось только 13 пин, поэтому мы не можем использовать 16 -битные параллельные режимы. Может быть возможно дальнейшее устранение булавок, поскольку у нас может быть заземленный штифт между каждым сигналом. Если это так, то мы можем смотреть только на шесть или семь линий сигнала.

Если гаджет все еще работал, мы могли бы наклеить на него логический анализатор и получить правильный ответ довольно быстро, но, поскольку это не так, нам может потребоваться исключить оставшиеся режимы путем проб и ошибок.
Ну, как это происходит, я заказал еще один из тех же гаджетов в 3 часа ночи сегодня утром. Должен иметь это завтра ;-)
Если защита отчитывания не установлена, я прочитаю вспышку и напишу ее на мой сломан.
Я могу получить свой USB L/A.

Вот разгоны FFC, так что я думаю, это просто вопрос, с какими штифтами SPI на GD они связаны.
Изображение

Rogerclark
Чт 12 апреля 2018 г., 21:26
Я думаю, что основное отличие с вариантом GD32 в ядре заключалось в том, что все платы использовали кристалл 12 МГц, где, как большинство плат STM32 используют 8 МГц

Вы могли бы попробовать просто выбрать общую плату STM32F103C, если ваша плата использует кристалл 8 МГц (я думаю, на фотографиях, которые она делает)

Примечание, Дон’T Выберите F103CB в качестве GD32F103C8. Только каждый имеет 64K Flash в отличие от чипа STM, где вы обычно получаете 128K даже на версии 64K (потому что ST’S Производственный доходность настолько хороша, что они надевают’T есть Duff Chips, чтобы продать в качестве версии 64K)

Однако привлечение дисплея будет включать отладку SPI на уровне аппаратного обеспечения с использованием логического анализатора


Это’На самом деле жаль, что компании в Китае, которые создали доски GD32, первоначально так много взимали для них, а затем прекратили производство из -за отсутствия спроса, так как я думаю, что большинство людей были бы рады использовать GD32, как это’S намного быстрее, чем STM32.

Однако, возможно, внутренний рынок в Китае обнаружил, что GD32 не так совместимо, как утверждалось, и, следовательно, он не сделал’Получите требование, которое они ожидали для этих досок.

Эн.глин. Никто не заметил каких -либо ключей Stlink или других подобных досок, появляющихся с MCU GD32 на них.
Таким образом, соотношение цены / риска GD32 может’это делает его экономическим для производителей в Китае, чтобы широко его использовать

Rogerclark
Чт 12 апреля 2018 г., 21:33
Я только что проверил Aliexpress, и цена на GD32 кажется такой же, как у STM32.

Я могу’tse не вижу стимула для большинства компаний использовать его.

GD32 должен быть достаточно дешевле, например,. Половина цены STM32, чтобы иметь экономический смысл, чтобы рискнуть на новом устройстве.

Carl0s
Чт 12 апреля 2018 г., 22:29
Может быть, GD также намеревается на рынке на основе функций (более быстрые часы, Shadow Ram Flash Thingy). Я заметил, что у Fujitsu есть страница, посвященная гигадевисам. У них, кажется, есть какое -то партнерство.

В любом случае, у меня есть таблица данных как для ЖК -дисплея, так и для ЖК -драйвера, и я сегодня выбил все булавки, и все это имеет смысл. Экран подключен к PB12 -PB15 (ALT MODE: SPI2). Катодные выводы (оба) ЖК -подсветки проходят через 2.Резистор 2K OHM от PB1 через какое -то транзистор (Q6 на печатной плате). Я немного невежественен и только изучаю электронику, но я понимаю, что транзистор - это переключатель..

Data/Command Select (LCD FFC PIN8 в таблице выше) подключен к PA11. ЖК -сброс (FFC #9 в таблице выше) подключен к PA15.

Я буду диаграмма все это на выходных с лучшими фотографиями печатной платы.

Rogerclark
Чт 12 апреля 2018 г. 23:54
Re: GD32

Трудно понять, как они продают GD32. Я забыл, насколько это быстрее. Возможно на 25% быстрее в лучшем случае.
Как ни странно, GD32 имеет возможность работать на 120 МГц с функционированием USB, однако чип должен работать только на уровне 108 МГц, и для поддержания USB скорость должна упасть до 96 МГц. Так что, похоже, их качество производства или кремниевый фальшивый дизайн не соответствовал их первоначальной спецификации

Ахулл
Пт 13 апреля 2018 г. 5:48 утра
[Carl0s - Чт 12 апреля 2018 г. 22:29] - экран подключен к PB12 к PB15 (ALT Mode: SPI2). Катодные выводы (оба) ЖК -подсветки проходят через 2.Резистор 2K OHM от PB1 через какое -то транзистор (Q6 на печатной плате). Я немного невежественен и только изучаю электронику, но я понимаю, что транзистор - это переключатель..
Если мы настроем мигающий эскиз на PB1, мы должны быть вознаграждены вспыхиванием подсветки. Подсветка, которую я предполагаю, должна нарисовать около 30 мА (для простоты мы можем считать его одним светодиодом с двумя x 2.2K резисторы параллельно, но на самом деле это, вероятно, несколько небольших светодиодов параллельно друг с другом, серированные с каждым резистором) и должны быть довольно яркими при этом. Затем мы можем попробовать использовать PWM на этом выводе, что должно дать нам полный контроль над яркостью подсветки.

Я подозреваю, что из описания, что настройка высокого уровня выключения выключит подсвет. : D

Rogerclark
Пт 13 апреля 2018 г., 6:24
@carl0s

Можете ли вы опубликовать ссылку на то, где вы ее купили ?

(Я предполагаю, что вы купили его онлайн ??)

Ахулл
Пт 13 апреля 2018 г., 10:00 утра
У этого гаджета, кажется, есть несколько имен и несколько вариантов.

Использование строки поиска eBay "x50 Plus автомобиль"

Самый дешевый, который я могу найти на eBay.com есть:-

https: // www.eBay.com/itm/autool-x50-plu ... Swvkty9xxl

Лучшая британская цена 17 фунтов стерлингов.21

https: // www.eBay.сопутствующий.Великобритания/ITM/AUTOOL-X50-P ... Swvkty9xxl

Я не могу быть абсолютно уверен, что это то же устройство, что и «Ancel A202 Smart Obdii -измеритель автомобиля», но картинки выглядят достаточно близко, чтобы предложить 99.9% это, вероятно, то же устройство. Дисплей выглядит так же, и он имеет тот же разъем LDR и USB на задней панели, та же кнопка пробега/нажмите на переднюю часть и т. Д.

Изменить: только что нашел это в инструкциях.

"7.Время резервного времени приборов после того, как автомобиль пламен выпала, достигается установленное значение, и X50 Plus будет автоматически спать."

Не говорите, что вы не были предупреждены ;)

Carl0s
Пт 13 апреля 2018 г. 10:24
[Ахулл - Пт 13 апреля 2018 г. 10:00] - У этого гаджета, кажется, есть несколько имен и несколько вариантов.

Использование строки поиска eBay "x50 Plus автомобиль"

Самый дешевый, который я могу найти на eBay.com есть:-

https: // www.eBay.com/itm/autool-x50-plu ... Swvkty9xxl

Лучшая британская цена 17 фунтов стерлингов.21

https: // www.eBay.сопутствующий.Великобритания/ITM/AUTOOL-X50-P ... Swvkty9xxl

Я не могу быть абсолютно уверен, что это то же устройство, что и «Ancel A202 Smart Obdii -измеритель автомобиля», но картинки выглядят достаточно близко, чтобы предложить 99.9% это, вероятно, то же устройство. Дисплей выглядит так же, и он имеет тот же разъем LDR и USB на задней панели, та же кнопка пробега/нажмите на переднюю часть и т. Д.

Изменить: только что нашел это в инструкциях.

"7.Время резервного времени приборов после того, как автомобиль пламен выпала, достигается установленное значение, и X50 Plus будет автоматически спать."

Не говорите, что вы не были предупреждены ;)

Ха -ха, да, это правильное устройство!

В конце концов, я буду использовать Autool X60, который является стилем круглого калибра, но я мог бы найти только из Китая. Итак, я получил вышеперечисленное от Amazon (за 29 фунтов стерлингов.99 .. Но я хотел на следующий день на Prime!)

Что они имеют в инструкциях, так это то, что, поскольку автомобиль +12 В в разъеме OBD постоянно живет (на разъеме OBD нет в прямом эфире), вместо этого он будет спать, когда значения чтения от OBD показывают, что двигатель имеет ушел на определенное время.

Carl0s
Пт 13 апреля 2018 г., 10:30 утра
[Ахулл - Пт 13 апреля 2018 г. 5:48] -
[Carl0s - Чт 12 апреля 2018 г. 22:29] - экран подключен к PB12 к PB15 (ALT Mode: SPI2). Катодные выводы (оба) ЖК -подсветки проходят через 2.Резистор 2K OHM от PB1 через какое -то транзистор (Q6 на печатной плате). Я немного невежественен и только изучаю электронику, но я понимаю, что транзистор - это переключатель..
Если мы настроем мигающий эскиз на PB1, мы должны быть вознаграждены вспыхиванием подсветки. Подсветка, которую я предполагаю, должна нарисовать около 30 мА (для простоты мы можем считать его одним светодиодом с двумя x 2.2K резисторы параллельно, но на самом деле это, вероятно, несколько небольших светодиодов параллельно друг с другом, серированные с каждым резистором) и должны быть довольно яркими при этом. Затем мы можем попробовать использовать PWM на этом выводе, что должно дать нам полный контроль над яркостью подсветки.

Я подозреваю, что из описания, что настройка высокого уровня выключения выключит подсвет. : D
Мне просто нужно выяснить, как создать/компилировать код STM32Duino, а затем загрузить его с помощью ST Link v2. Я использую Platformio для своих вещей Arduino на сегодняшний день.

Carl0s
Пт 13 апреля 2018 г. 10:43
[Ахулл - Пт 13 апреля 2018 г. 5:48] -
[Carl0s - Чт 12 апреля 2018 г. 22:29] - экран подключен к PB12 к PB15 (ALT Mode: SPI2). Катодные выводы (оба) ЖК -подсветки проходят через 2.Резистор 2K OHM от PB1 через какое -то транзистор (Q6 на печатной плате). Я немного невежественен и только изучаю электронику, но я понимаю, что транзистор - это переключатель..
Если мы настроем мигающий эскиз на PB1, мы должны быть вознаграждены вспыхиванием подсветки. Подсветка, которую я предполагаю, должна нарисовать около 30 мА (для простоты мы можем считать его одним светодиодом с двумя x 2.2K резисторы параллельно, но на самом деле это, вероятно, несколько небольших светодиодов параллельно друг с другом, серированные с каждым резистором) и должны быть довольно яркими при этом. Затем мы можем попробовать использовать PWM на этом выводе, что должно дать нам полный контроль над яркостью подсветки.

Я подозреваю, что из описания, что настройка высокого уровня выключения выключит подсвет. : D
Есть только один 2.2K резистор, который я могу видеть для подсветки, кстати (R7). 18-контактный ЖК-дисплей FFC имеет два светодиодных анода и два светодиодных катодах, но они, кажется, связаны вместе. Таким образом, оба катода переходят в транзистор Q6, который затем подключается к GD32 через 2.2K Резистор R7.

Аноды также объединены и выходят из транзистора Q4, который также питает V-in регулятора напряжения U4 (662K - https: // www.Микроконтроллер.net/attachm ... 6206n3.PDF )

Вот печатная плата, и вот мой рисунок в таблице данных. Мой действительно плохой рисунок в левом нижней части таблицы - та же ориентация, что и на печатном порядке, и я схема. Единственные булавки, с которыми я не беспокоил, - это в основном земля и +VCC.

Изображение

Изображение

Кроме того, вот таблица данных для GD32F103 на английском языке: http: // www.InternetSome.com/autool ... аэшит.PDF

Вот 850 -страничное руководство пользователя для GD32F103 на английском языке: http: // www.InternetSome.com/autool ... N_v2.0.PDF

А вот и LCD -таблица DataShing: http: // www.InternetSome.com/autool ... 24GUF1.PDF

Ахулл
Пт 13 апреля 2018 12:10
Хороший прогресс. : D
Как насчет переключателей для интерфейса слева/правого/щелчка и LDR, вы уже определили их?

Carl0s
Пт 13 апреля 2018 12:30
[Ахулл - Пт 13 апреля 2018 12:10] - Хороший прогресс. : D
Как насчет переключателей для интерфейса слева/правого/щелчка и LDR, вы уже определили их?
Нет, но я сделаю :-)

Ахулл
Пт 13 апреля 2018 г. 14:06
В конце концов, я буду использовать Autool X60, который является стилем круглого калибра, но я мог бы найти только из Китая. Итак, я получил вышеперечисленное от Amazon (за 29 фунтов стерлингов.99 .. Но я хотел на следующий день на Prime!) А Autotool X60 выглядит почти идентично (его «круглый» дисплей может быть на самом деле квадратный в круглом рамке). Будет интересно сравнить два.
Что они имеют в инструкциях, так это то, что, поскольку автомобиль +12 В в разъеме OBD постоянно живет (на разъеме OBD нет в прямом эфире), вместо этого он будет спать, когда значения чтения от OBD показывают, что двигатель имеет ушел на определенное время. Ой.. Так что нет реального пламени в этом «пламени..." стыд... Я скажу пожарной бригаде Трумптона, чтобы встать ;)


Carl0s
Пт 13 апреля 2018 г., 15:11
РЖУ НЕ МОГУ : D

Да, я ожидаю, что это будет квадратный дисплей, но я хочу корпус в стиле датчика :)

Carl0s
Пт 13 апреля 2018 г., 21:19
Eeeeeee Это работает :-)




Я использовал Platformio и просто выбрал «STM32F103R8 (20K ОЗУ. 64 Flash) "как доска.

Rogerclark
Пт 13 апреля 2018 г., 22:25
Хорошо.

Я не сделал’Я понял, что это пришло с разъемом OBD и т. Д.

Ахулл
SAT 14 апреля 2018 г. 9:00 утра
[Carl0s - Пт 13 апреля 2018 г., 21:19] - Eeeeeee Это работает :-)
Blinkey Flashey Stuff! : D Далее.. дисплей, который я предполагаю. Это может потребоваться немного больше царапины головы.

Вы также можете попробовать прочитать LDR и использовать его для управления яркостью подсветки.

Carl0s
SAT 14 апреля 2018 г. 9:04
[Ахулл - Сб 14 апреля 2018 г. 9:00] -
[Carl0s - Пт 13 апреля 2018 г., 21:19] - Eeeeeee Это работает :-)
Blinkey Flashey Stuff! : D Далее.. дисплей, который я предполагаю. Это может потребоваться немного больше царапины головы.

Вы также можете попробовать прочитать LDR и использовать его для управления яркостью подсветки.
Я купил рабочую замену блок. Я собирался вернуть его сейчас, когда я вижу, что прошивка заблокирована. Как ты думаешь, я должен сохранить это?

Я надеялся, что будет библиотека GFX для контроллера дисплея, и мне, возможно, просто придется изменить задание SPI или что -то в этом роде. Это немного оптимистично ? :-)

Кроме того, как вы думаете, я должен приступить к получению консоли серийной отладки, чтобы сделать много серийных.print () вещи? Если это так, я должен использовать USB в GD32 On-Chip или я должен просто использовать его UART с TTL для USB на моем компьютере?

Я исследовал LDR вчера вечером, так что у меня есть булавки. Вот где я думаю, что серийная отладка может помочь мне. Также я пока не знаю об этих вещах. Я надеюсь, что вы сможете установить аппаратное обеспечение для этого и просто приспособиться при необходимости, так как программное оборотное колесо наверняка будет съесть огромное количество циклов и потребует, чтобы абсолютно никаких задержек или блокировки кода не возникают в целом во время основного цикла.

Ахулл
SAT 14 апреля 2018 г. 9:38 утра
Дисплей должен быть относительно простым для взаимодействия. На самом деле Адафрут сделал (все еще?) дисплей на основе ST7789

https: // www.Адафрут.com/продукт/3787

Вы должны быть в состоянии сравнить, как это работает, скажем, STM32Duino Adafruit_ili9341_STM Примеры. Я думаю, что два контроллера похожи.

Я думаю, что вы можете контролировать подсветку с помощью AnalaogWrite, так что что -то вроде.. (непроверенный)..
#define TFT_LED PB1 #define LRD_PIN {whatever you discovered} ... ... pinMode(TFT_LED, OUTPUT); analogWrite(TFT_LED, 127); ... etc.

Carl0s
SAT 14 апреля 2018 г. 9:47 утра
[Ахулл - Сб 14 апреля 2018 г. 9:38] - Дисплей должен быть относительно простым для взаимодействия. На самом деле Адафрут сделал (все еще?) дисплей на основе ST7789

https: // www.Адафрут.com/продукт/3787

Вы должны быть в состоянии сравнить, как это работает, скажем, STM32Duino Adafruit_ili9341_STM Примеры. Я думаю, что два контроллера похожи.

Я думаю, что вы можете контролировать подсветку с помощью AnalaogWrite, так что что -то вроде.. (непроверенный)..
#define TFT_LED PB1 #define LRD_PIN {whatever you discovered} ... ... pinMode(TFT_LED, OUTPUT); analogWrite(TFT_LED, 127); ... etc.

Ахулл
SAT 14 апреля 2018 г. 10:01
Все пять контактов USB Connector Go *где -то *, или, по крайней мере, есть треки, ведущие к VIAS на печатной плате. Было бы полезно узнать, куда они идут.
Скриншот с 2018-04-14 11-02-30.jpg
Скриншот с 2018-04-14 11-02-30.JPG (106.66 киб) просмотрено 349 раз

Ахулл
SAT 14 апреля 2018 г. 10:07
Что касается ST7789, я также обнаружил сайт, который выполняет (оплаченный) водитель, который также предполагает, что между ST7789 и ILI9431 существует большое сходство. -> https: // www.ramtex.DK/Display-Controlle ... ST7789.htm

Carl0s
SAT 14 апреля 2018 г., 10:08
[Ахулл - Сб 14 апреля 2018 г. 10:01] - Все пять контактов USB Connector Go *где -то *, или, по крайней мере, есть треки, ведущие к VIAS на печатной плате. Было бы полезно узнать, куда они идут.
Скриншот с 2018-04-14 11-02-30.JPG
Я буду отследить их. Но поставляемый кабель имеет мини -USB на одном конце и 16 -контактный разъем OBD2 на другом. Так что будет может быть, может, может быть низкая, k-line, может быть, L-line (оба ISO 9141, L-Line обычно не нужны), GND и +12V я ожидаю.

Ахулл
SAT 14 апреля 2018 г. 10:10
[Carl0s - Сб 14 апреля 2018 г. 10:08] -
[Ахулл - Сб 14 апреля 2018 г. 10:01] - Все пять контактов USB Connector Go *где -то *, или, по крайней мере, есть треки, ведущие к VIAS на печатной плате. Было бы полезно узнать, куда они идут.
Скриншот с 2018-04-14 11-02-30.JPG
Я буду отследить их. Но поставляемый кабель имеет мини -USB на одном конце и 16 -контактный разъем OBD2 на другом. Так что будет может быть, может, может быть низкая, k-line, может быть, L-line (оба ISO 9141, L-Line обычно не нужны), GND и +12V я ожидаю.
Изменить: тем не менее, было бы интересно посмотреть, какие булавки идут туда, куда идут. Мы можем использовать некоторые из контактов на этом странном USB -разъеме для наших собственных целей. Я смутно помню, что он STM32 использует ту же область памяти для USB и CAN, и, возможно, даже те же булавки. Если в кабеле есть какая-то активная схема, USB-порт может на самом деле иметь D+ и D- непосредственно к GD32.. В этом случае вы никогда не знаете, вы можете использовать USB -разъем в качестве разъема USB. Я бы проверил на получение высоких напряжений из него, прежде чем я рискую подключить его к ПК, конечно.

Возможно, что высокие напряжения должны быть включены в программном обеспечении, и поэтому порт может включаться как USB -порт и перейти в режим ODB только тогда, когда программное обеспечение инструктирует его.

Carl0s
SAT 14 апреля 2018 г. 10:14
[Ахулл - SAT 14 апреля 2018 г. 10:10] -
[Carl0s - Сб 14 апреля 2018 г. 10:08] -
[Ахулл - Сб 14 апреля 2018 г. 10:01] - Все пять контактов USB Connector Go *где -то *, или, по крайней мере, есть треки, ведущие к VIAS на печатной плате. Было бы полезно узнать, куда они идут.
Скриншот с 2018-04-14 11-02-30.JPG
Я буду отследить их. Но поставляемый кабель имеет мини -USB на одном конце и 16 -контактный разъем OBD2 на другом. Так что будет может быть, может, может быть низкая, k-line, может быть, L-line (оба ISO 9141, L-Line обычно не нужны), GND и +12V я ожидаю.
Тем не менее, было бы интересно посмотреть, какие булавки идут туда, куда идут. Мы можем использовать некоторые из контактов на этом странном USB -разъеме для наших собственных целей.
Да, правда. Я думал то же самое.. Измените Canbus или LM393 (используется для линии K) для чего -то другого, может быть.

Ахулл
SAT 14 апреля 2018 г. 10:17 утра
Возможно, что высокие напряжения должны быть включены в программном обеспечении, и поэтому порт может включаться как USB -порт и перейти в режим ODB только тогда, когда программное обеспечение инструктирует его.

Rogerclark
SAT 14 апреля 2018 г. 10:38
Я думаю, что если вы выберете загрузку Stlink, она все равно оставляет USB -серийный

Я бы порекомендовал вам выбрать универсальный STM32F103C8 и Stlink

Запустите установщик драйвера

Загрузите, затем загрузите любой эскиз с USB, подключенным к ПК.

И посмотрите, появится ли что -нибудь в диспетчере устройств Windows

Carl0s
SAT 14 апреля 2018 г., 10:41
[Rogerclark - Сб 14 апреля 2018 г. 10:38] - Я думаю, что если вы выберете загрузку Stlink, она все равно оставляет USB -серийный

Я бы порекомендовал вам выбрать универсальный STM32F103C8 и Stlink

Запустите установщик драйвера

Загрузите, затем загрузите любой эскиз с USB, подключенным к ПК.

И посмотрите, появится ли что -нибудь в диспетчере устройств Windows
Спасибо, Роджер, я попробую после того, как нашел USB -концентратор, чтобы изолировать его из USB -портов моего ноутбука. Я только что попытался запустить его (рабочее устройство) с зажигательного адаптера с сигаретом автомобиля, который запускает мой панель инструментов, и не было никаких признаков жизни. Нет звукового сигнала или экрана на.

Ахулл
SAT 14 апреля 2018 г., 10:49
Вот как должна быть «настоящая» заглушка USB.
Скриншот с 2018-04-14 11-47-33.png
Скриншот с 2018-04-14 11-47-33.PNG (23.64 киб) просмотрено 204 раза

Ахулл
SAT 14 апреля 2018 г., 11:07
Я подозреваю, что D+ и D-, вероятно, идут (прямо или косвенно) в PA11 и PA12, поскольку это булавки как для USB-/USB+, так и CanRX/CANTX


Изображение

Carl0s
SAT 14 апреля 2018 12:11
[Ахулл - Сб 14 апреля 2018 г. 11:07] - Я подозреваю, что D+ и D-, вероятно, идут (прямо или косвенно) в PA11 и PA12, поскольку это булавки как для USB-/USB+, так и CanRX/CANTX


Изображение
Can RX и CAN TX должны пройти через чип CAN PRESCEIVER. Это чип U2 на доске.

Ахулл
SAT 14 апреля 2018 г., 13:22
Can RX и CAN TX должны пройти через чип CAN PRESCEIVER. Это чип U2 на доске. Действительно, но выход U2 не обязательно должен перейти к D+ и D-PINS USB-разъема.

Поскольку VBU, похоже, не присутствует, это оставляет потенциально четыре булавки из пяти, (другой - GND), которые мы на самом деле не нанесли на карту.

Я все еще думаю, было бы интересно следовать за этими треками от USB -разъема, чтобы увидеть, куда они идут.

Carl0s
SAT 14 апреля 2018 г., 19:34
Фу.. Пришло время попытаться использовать фритцинг. Я собираюсь попробовать сейчас.

Вот что у меня есть до сих пор, если вы даже можете следовать за ним.

Вот одна вещь, которую я не понимаю. Ldr. Это идет GND->Лдр->PA2<-R14 (10K)<-3.3В.

Я понимаю, что это разделитель напряжения, и именно так PA2 может прочитать значение LDR. Чего я не понимаю, то почему значение, которое показывает мой мультиметр для R14 от 7K до 8K в зависимости от того, покрыта ли у меня LDR или нет? У меня есть счетчик прямо через R14. 10K - это значение, напечатанное на нем.


Изображение

Изображение


Как видите, я положил U1 (Comparator LM393, используемый для линии K/L ISO9141), в двух местах на диаграмме. Я уезжаю в Tesco за пивом, тогда я собираюсь проверить Fritzing.

Carl0s
SAT 14 апреля 2018 г., 22:43
Шиш. Это тоже нелегко, и ни один из них не! Любые рекомендации ?

Неважно. Я думаю, что Diptrace - это то.

Rogerclark
Солнце 15 апреля 2018 г. 11:56 утра
Используйте Кикад

Не в пакетах CAD прост, но Кикад открыт и предпочитает большинство людей на форуме

Carl0s
Солнце 15 апреля 2018 12:09
[Rogerclark - Солнце 15 апреля 2018 г. 11:56] - Используйте Кикад

Не в пакетах CAD прост, но Кикад открыт и предпочитает большинство людей на форуме
Я установил Кикад. Я посмотрю. Я большой фанатик Libre с открытым исходным кодом. Diptrace выглядела легко, потому что у него уже есть детали LQFP64 STM32 и по разумной цене, что выглядит как высококачественное программное обеспечение.
Может быть, я смогу скачать компоненты LQFP-64 STM32 для KICAD. Части STM32F407 LQFP-64, по-видимому, имеют практически идентичные названия/числа PIN-код для LQFP-64 F103


Я сейчас пытаюсь разобраться с транзисторами.. Я знаю, что это должно быть просто, но я никогда раньше не пытался понять.

Зуммер (пьезо) на этой плате, по-видимому, имеет его +VE, вывод о выходе основного понижения IC (MP1482).
Его -ве подключен к коллекционеру транзистора NPN общего назначения (1:00).
Основание этого транзистора NPN проходит через 2K резистор R8 до PB6 MCU
И излучатель идет в GND.

Как это работает тогда? NPN Transistor включается с помощью PB6 поднимается высоким (потому что именно так NPN работают, по -видимому,?). Это тогда просто переключите коллектор <-> Излучатель на. Коллекционер и излучатель обратно на фронт в этом, или это не имеет значения?

Извините за элементарные вопросы.

Carl0s
Солнце 15 апреля 2018 12:36
Хорошо, ну, это скорее тик, а не гул или звуковой сигнал, но, по крайней мере, у меня есть правильная штифта MCU для пьезо -зуммера.

Я думаю, тебе нужно, чтобы провести зуммер..



Ахулл
Солнце 15 апреля 2018 13:58
Думаю, нам просто нужно знать, какова эта тенденция с LDR, я.эн. Если он видит меньше света, нам необходимо увеличить яркость ЖК -дисплея и наоборот, поэтому, если значение ADC увеличивается, яркости уменьшается (при условии, что LDR настроен таким образом). Диапазон типичного LDR довольно широкий, поэтому все, от нескольких сотен омов в ярком свете до, возможно, мегома или более в полной темноте.

Использование относительных значений должно быть выполнено, не обязательно не зная точных чисел, поступающих из АЦП.

Если вы немного мазохист, вы, конечно, могли бы мигает цифры в коде Морзе : P
Люди вы моргнули в прошивке так, но я дон’не думаю, что мы вполне отчаянно.
http: // chdk.Викия.com/wiki/bling_the ... _интерфейс

Carl0s
Солнце 15 апреля 2018 г. 14:09
[Ахулл - Солнце 15 апреля 2018 г. 13:58] - Думаю, нам просто нужно знать, какова эта тенденция с LDR, я.эн. Если он видит меньше света, нам необходимо увеличить яркость ЖК -дисплея и наоборот, поэтому, если значение ADC увеличивается, яркости уменьшается (при условии, что LDR настроен таким образом). Диапазон типичного LDR довольно широкий, поэтому все, от нескольких сотен омов в ярком свете до, возможно, мегома или более в полной темноте.

Использование относительных значений должно быть выполнено, не обязательно не зная точных чисел, поступающих из АЦП.

Если вы немного мазохист, вы, конечно, могли бы мигает цифры в коде Морзе : P
Люди вы моргнули в прошивке так, но я дон’не думаю, что мы вполне отчаянно.
http: // chdk.Викия.com/wiki/bling_the ... _интерфейс
: D

Да, я вернусь к этому. Я попытался делить на 4 (так как анагенс подходит до 1023, а аналоговая запись поднимается до 254 ?) и также делить на 2, но я не вижу никаких изменений. Мой DMM показывает, что напряжение проходит между 1 В в гостиной, до 1.5 или 1.8 В, когда LDR покрыт. У меня не хватает рук, чтобы проверить с фонариком!

Carl0s
Солнце 15 апреля 2018 г. 15:15
При (очень) удаленном шансе я подумал, что попробую примеры STM32Duino ILI9341. Я установил правильные булавки в примере кода.
Само собой разумеется, что это не работает, однако, этот TFT подключен к SPI2 на PINS PB12 до PB15), что вписывается в Vassilis, написанный здесь: ViewTopic.PHP?t = 278

Я не могу не видеть нигде, где (если вообще) мне нужно изменить библиотеку STM32Duino ILI9341 для SPI2 вместо SPI1, хотя. Похоже, он просто настраивает SPI на любых выводах, установленных в основной программе. Любые мысли?


ооо. SetModule.

Ахулл
Солнце 15 апреля 2018 г. 15:17
Если мы предположим, что аналогичное значение 1023 = 3V3 и 0 равно 0 В, то наш диапазон для уровней напряжения, которые вы видели, будет приблизительно...

Для 1V5 ..... (1.5/3.3)*1023 = 465
до 1V8 ..... (1.8/3.3)*1023 = 558

... Итак, диапазон 93 единиц.

Таким образом, мы могли бы сделать что -то довольно грубое, чтобы вычислить подходящее значение аналогового пласта для подсветки, подобного вычтите наше значение из 570, и удвоить его.

Грубое, но, вероятно, мы увидим некоторый эффект (и, поскольку мы используем умножение, а не разделение, безопасно код, так как мы не можем разделить на ноль).

Ахулл
Солнце 15 апреля 2018 г. 15:18
Я не эксперт по SPI, так что, возможно, кто -то другой может приехать в. (Также у меня нет подходящих досок для тестирования).

Однако у меня есть версия Свинья Код, который я запускал на доске GD32 долгое время назад, что может дать некоторые подсказки, см. Ниже.
/*. (c) Andrew Hull - 2015 STM32-O-Scope - aka "The Pig Scope" or pigScope released under the GNU GENERAL PUBLIC LICENSE Version 2, June 1991 https://github.com/pingumacpenguin/STM32-O-Scope Adafruit Libraries released under their specific licenses Copyright (c) 2013 Adafruit Industries. All rights reserved. */ #include "Adafruit_ILI9341_STM.h" #include "Adafruit_GFX_AS.h" // Be sure to use the latest version of the SPI libraries see stm32duino.com - http://stm32duino.com/viewtopic.php?f=13&t=127 #include #define PORTRAIT 0 #define LANDSCAPE 1 // Define the orientation of the touch screen. Further // information can be found in the UTouch library documentation. #define TOUCH_SCREEN_AVAILABLE #define TOUCH_ORIENTATION LANDSCAPE #if defined TOUCH_SCREEN_AVAILABLE // UTouch Library // http://www.rinkydinkelectronics.com/library.php?id=56 #include #endif // Initialize touchscreen // ---------------------- // Set the pins to the correct ones for your STM32F103 board // ----------------------------------------------------------- // // STM32F103C8XX Pin numbers - chosen for ease of use on the "Red Pill" and "Blue Pill" board // Touch Panel Pins // T_CLK T_CS T_DIN T_DOUT T_IRQ // PB12 PB13 PB14 PB15 PA8 // Example wire colours Brown,Red,Orange,Yellow,Violet // -------- Brown,Red,Orange,White,Grey #if defined TOUCH_SCREEN_AVAILABLE UTouch myTouch( PB12, PB13, PB14, PB15, PA8); #endif // RTC and NVRam initialisation #include "RTClock.h" RTClock rt (RTCSEL_LSE); // initialise uint32 tt; // Define the Base address of the RTC registers (battery backed up CMOS Ram), so we can use them for config of touch screen and other calibration. // See http://stm32duino.com/viewtopic.php?f=15&t=132&hilit=rtc&start=40 for a more details about the RTC NVRam // 10x 16 bit registers are available on the STM32F103CXXX more on the higher density device. #define BKP_REG_BASE (uint32_t *)(0x40006C00 +0x04) // Defined for power and sleep functions pwr.h and scb.h #include #include // #define NVRam register names for the touch calibration values. #define TOUCH_CALIB_X 0 #define TOUCH_CALIB_Y 1 #define TOUCH_CALIB_Z 2 // Time library - https://github.com/PaulStoffregen/Time #include "Time.h" #define TZ "UTC+1" // End RTC and NVRam initialization // SeralCommand -> https://github.com/kroimon/Arduino-SerialCommand.git #include /* For reference on STM32F103CXXX variants/generic_stm32f103c/board/board.h:#define BOARD_NR_SPI 2 variants/generic_stm32f103c/board/board.h:#define BOARD_SPI1_NSS_PIN PA4 variants/generic_stm32f103c/board/board.h:#define BOARD_SPI1_MOSI_PIN PA7 variants/generic_stm32f103c/board/board.h:#define BOARD_SPI1_MISO_PIN PA6 variants/generic_stm32f103c/board/board.h:#define BOARD_SPI1_SCK_PIN PA5 variants/generic_stm32f103c/board/board.h:#define BOARD_SPI2_NSS_PIN PB12 variants/generic_stm32f103c/board/board.h:#define BOARD_SPI2_MOSI_PIN PB15 variants/generic_stm32f103c/board/board.h:#define BOARD_SPI2_MISO_PIN PB14 variants/generic_stm32f103c/board/board.h:#define BOARD_SPI2_SCK_PIN PB13 */ // Additional display specific signals (i.e. non SPI) for STM32F103C8T6 (Wire colour) #define TFT_DC PA0 // (Green) #define TFT_CS PA1 // (Orange) #define TFT_RST PA2 // (Yellow) // Hardware SPI1 on the STM32F103C8T6 *ALSO* needs to be connected and pins are as follows. // // SPI1_NSS (PA4) (LQFP48 pin 14) (n.c.) // SPI1_SCK (PA5) (LQFP48 pin 15) (Brown) // SPI1_MOSO (PA6) (LQFP48 pin 16) (White) // SPI1_MOSI (PA7) (LQFP48 pin 17) (Grey) // #define TFT_LED PA3 // Backlight #define TEST_WAVE_PIN PB1 // PWM 500 Hz // Create the lcd object Adafruit_ILI9341_STM TFT = Adafruit_ILI9341_STM(TFT_CS, TFT_DC, TFT_RST); // Using hardware SPI // LED - blinks on trigger events - leave this undefined if your board has no controllable LED // define as PC13 on the "Red/Blue Pill" boards and PD2 on the "Yellow Pill R" #define BOARD_LED PB0 // Display colours #define BEAM1_COLOUR ILI9341_GREEN #define BEAM2_COLOUR ILI9341_RED #define GRATICULE_COLOUR 0x07FF #define BEAM_OFF_COLOUR ILI9341_BLACK #define CURSOR_COLOUR ILI9341_GREEN // Analog input #define ANALOG_MAX_VALUE 4096 const int8_t analogInPin = PB1; // Analog input pin: any of LQFP44 pins (PORT_PIN), 10 (PA0), 11 (PA1), 12 (PA2), 13 (PA3), 14 (PA4), 15 (PA5), 16 (PA6), 17 (PA7), 18 (PB0), 19 (PB1) float samplingTime = 0; // Variables for the beam position uint16_t signalX ; uint16_t signalY ; uint16_t signalY1; int16_t xZoomFactor = 1; // yZoomFactor (percentage) int16_t yZoomFactor = 200; int16_t yPosition = -150 ; // Startup with sweep hold off or on boolean triggerHeld = 0 ; unsigned long sweepDelayFactor = 1; unsigned long timeBase = 100; // Timebase in microseconds // Screen dimensions int16_t myWidth ; int16_t myHeight ; //Trigger stuff boolean notTriggered ; // Sensitivity is the necessary change in AD value which will cause the scope to trigger. // If VAD=3.3 volts, then 1 unit of sensitivity is around 0.8mV but this assumes no external attenuator. Calibration is needed to match this with the magnitude of the input signal. int32_t triggerSensitivity = 20; int16_t retriggerDelay = 10; int8_t triggerType = 1; //Array for trigger points uint16_t triggerPoints[2]; // Serial output of samples - off by default. Toggled from UI/Serial commands. boolean serialOutput = false; // Create Serial Command Object. SerialCommand sCmd; // Create USB serial port USBSerial serial_debug; // Samples - depends on available RAM 6K is about the limit on an STM32F103C8T6 // Bear in mind that the ILI9341 display is only able to display 240x320 pixels, at any time but we can output far more to the serial port, we effectively only show a window on our samples on the TFT. # define maxSamples 1024*6 uint32_t startSample = 10; uint32_t endSample = maxSamples ; // Array for the ADC data //uint16_t dataPoints[maxSamples]; uint32_t dataPoints32[maxSamples / 2]; uint16_t *dataPoints = (uint16_t *)&dataPoints32; // End of DMA indication volatile static bool dma1_ch1_Active; #define ADC_CR1_FASTINT 0x70000 // Fast interleave mode DUAL MODE bits 19-16 void setup() { // BOARD_LED blinks on triggering assuming you have an LED on your board. If not simply dont't define it at the start of the sketch. #if defined BOARD_LED pinMode(BOARD_LED, OUTPUT); digitalWrite(BOARD_LED, HIGH); delay(1000); digitalWrite(BOARD_LED, LOW); delay(1000); #endif serial_debug.begin(); delay(1000); serial_debug.println("# STM-32-Oscope started."); delay(1000); adc_calibrate(ADC1); adc_calibrate(ADC2); setADCs(); //Setup ADC peripherals for interleaved continuous mode. // // Serial command setup // Setup callbacks for SerialCommand commands sCmd.addCommand("timestamp", setCurrentTime); // Set the current time based on a unix timestamp sCmd.addCommand("date", serialCurrentTime); // Show the current time from the RTC sCmd.addCommand("sleep", sleepMode); // Experimental - puts system to sleep #if defined TOUCH_SCREEN_AVAILABLE sCmd.addCommand("touchcalibrate", touchCalibrate); // Calibrate Touch Panel #endif sCmd.addCommand("s", toggleSerial); // Turns serial sample output on/off sCmd.addCommand("h", toggleHold); // Turns triggering on/off sCmd.addCommand("t", decreaseTimebase); // decrease Timebase by 10x sCmd.addCommand("T", increaseTimebase); // increase Timebase by 10x sCmd.addCommand("z", decreaseZoomFactor); // decrease Zoom sCmd.addCommand("Z", increaseZoomFactor); // increase Zoom sCmd.addCommand("r", scrollRight); // start onscreen trace further right sCmd.addCommand("l", scrollLeft); // start onscreen trae further left sCmd.addCommand("e", incEdgeType); // increment the trigger edge type 0 1 2 0 1 2 etc sCmd.addCommand("y", decreaseYposition); // move trace Down sCmd.addCommand("Y", increaseYposition); // move trace Down sCmd.addCommand("P", toggleTestPulseOn); // Toggle the test pulse pin from high impedence input to square wave output. sCmd.addCommand("p", toggleTestPulseOff); // Toggle the Test pin from square wave test to high impedence input. sCmd.setDefaultHandler(unrecognized); // Handler for command that isn't matched (says "Unknown") sCmd.clearBuffer(); // Backlight, use with caution, depending on your display, you may exceed the max current per pin if you use this method. // A safer option would be to add a suitable transistor capable of sinking or sourcing 100mA (the ILI9341 backlight on my display is quoted as drawing 80mA at full brightness) // Alternatively, connect the backlight to 3v3 for an always on, bright display. //pinMode(TFT_LED, OUTPUT); //analogWrite(TFT_LED, 127); // Setup Touch Screen // http://www.rinkydinkelectronics.com/library.php?id=56 #if defined TOUCH_SCREEN_AVAILABLE myTouch.InitTouch(); myTouch.setPrecision(PREC_EXTREME); #endif // The test pulse is a square wave of approx 3.3V (i.e. the STM32 supply voltage) at approx 1 kHz // "The Arduino has a fixed PWM frequency of 490Hz" - and it appears that this is also true of the STM32F103 using the current STM32F03 libraries as per // STM32, Maple and Maple mini port to IDE 1.5.x - http://forum.arduino.cc/index.php?topic=265904.2520 // therefore if we want a precise test frequency we can't just use the default uncooked 50% duty cycle PWM output. timer_set_period(Timer3, 1000); toggleTestPulseOn(); // Set up our sensor pin(s) pinMode(analogInPin, INPUT_ANALOG); serial_debug.println("# Setting up display."); TFT.begin(); // initialize the display clearTFT(); TFT.setRotation(PORTRAIT); myHeight = TFT.width() ; myWidth = TFT.height(); TFT.setTextColor(CURSOR_COLOUR, BEAM_OFF_COLOUR) ; #if defined TOUCH_SCREEN_AVAILABLE touchCalibrate(); #endif TFT.setRotation(LANDSCAPE); clearTFT(); showCredits(); // Honourable mentions ;¬) showGraticule(); delay(5000) ; clearTFT(); notTriggered = true; showGraticule(); showLabels(); } void loop() { #if defined TOUCH_SCREEN_AVAILABLE readTouch(); #endif sCmd.readSerial(); // Process serial commands if ( !triggerHeld ) { // Wait for trigger trigger(); showGraticule(); if ( !notTriggered ) { blinkLED(); //Blank out previous plot TFTSamples(BEAM_OFF_COLOUR); showLabels(); // Show the showGraticule showGraticule(); //notTriggered = true; // Take our samples takeSamples(); // Display the Labels ( uS/Div, Volts/Div etc). showLabels(); //Display the samples TFTSamples(BEAM1_COLOUR); } // Display the RTC time. showTime(); } // Wait before allowing a re-trigger delay(retriggerDelay); // DEBUG: increment the sweepDelayFactor slowly to show the effect. // sweepDelayFactor ++; } void showGraticule() { TFT.drawRect(0, 0, myHeight, myWidth, GRATICULE_COLOUR); // Dot grid - ten distinct divisions (9 dots) in both X and Y axis. for (uint16_t TicksX = 1; TicksX < 10; TicksX++) { for (uint16_t TicksY = 1; TicksY < 10; TicksY++) { TFT.drawPixel( TicksX * (myHeight / 10), TicksY * (myWidth / 10), GRATICULE_COLOUR); } } // Horizontal and Vertical centre lines 5 ticks per grid square with a longer tick in line with our dots for (uint16_t TicksX = 0; TicksX < myWidth; TicksX += (myHeight / 50)) { if (TicksX % (myWidth / 10) > 0 ) { TFT.drawFastHLine( (myHeight / 2) - 2 , TicksX, 5, GRATICULE_COLOUR); } else { TFT.drawFastHLine( (myHeight / 2) - 6 , TicksX, 11, GRATICULE_COLOUR); } } for (uint16_t TicksY = 0; TicksY < myHeight; TicksY += (myHeight / 50) ) { if (TicksY % (myHeight / 10) > 0 ) { TFT.drawFastVLine( TicksY, (myWidth / 2) - 2 , 5, GRATICULE_COLOUR); } else { TFT.drawFastVLine( TicksY, (myWidth / 2) - 5 , 11, GRATICULE_COLOUR); } } } void setADCs() { // const adc_dev *dev = PIN_MAP[analogInPin].adc_device; int pinMapADCin = PIN_MAP[analogInPin].adc_channel; adc_set_sample_rate(ADC1, ADC_SMPR_13_5); adc_set_sample_rate(ADC2, ADC_SMPR_13_5); // adc_reg_map *regs = dev->regs; adc_set_reg_seqlen(ADC1, 1); ADC1->regs->SQR3 = pinMapADCin; ADC1->regs->CR2 |= ADC_CR2_CONT; // | ADC_CR2_DMA; // Set continuous mode and DMA ADC1->regs->CR1 |= ADC_CR1_FASTINT; // Interleaved mode ADC1->regs->CR2 |= ADC_CR2_SWSTART; ADC2->regs->CR2 |= ADC_CR2_CONT; // ADC 2 continuos ADC2->regs->SQR3 = pinMapADCin; } // Crude triggering on positive or negative or either change from previous to current sample. void trigger() { notTriggered = true; switch (triggerType) { case 1: triggerNegative() ; break; case 2: triggerPositive() ; break; default: triggerBoth() ; break; } } void triggerBoth() { triggerPoints[0] = analogRead(analogInPin); delayMicroseconds(20); if (((analogRead(analogInPin) - triggerPoints[0] ) < triggerSensitivity) or ((triggerPoints[0] - analogRead(analogInPin) ) < triggerSensitivity)) { notTriggered = false ; } } void triggerPositive() { triggerPoints[1] = analogRead(analogInPin); if ((triggerPoints[1] - triggerPoints[0] ) > triggerSensitivity) { notTriggered = false; } triggerPoints[0] = analogRead(analogInPin); } void triggerNegative() { triggerPoints[1] = analogRead(analogInPin); if ((triggerPoints[0] - triggerPoints[1] ) > triggerSensitivity) { notTriggered = false; } triggerPoints[0] = analogRead(analogInPin); } void incEdgeType() { triggerType += 1; if (triggerType > 2) { triggerType = 0; } /* serial_debug.println(triggerPoints[0]); serial_debug.println(triggerPoints[1]); serial_debug.println(triggerType); */ } void clearTFT() { TFT.fillScreen(BEAM_OFF_COLOUR); // Blank the display } void blinkLED() { #if defined BOARD_LED digitalWrite(BOARD_LED, LOW); delay(10); digitalWrite(BOARD_LED, HIGH); #endif } // Grab the samples from the ADC // Theoretically the ADC can not go any faster than this. // // According to specs, when using 72Mhz on the MCU main clock,the fastest ADC capture time is 1.17 uS. As we use 2 ADCs we get double the captures, so .58 uS, which is the times we get with ADC_SMPR_1_5. // I think we have reached the speed limit of the chip, now all we can do is improve accuracy. // See; http://stm32duino.com/viewtopic.php?f=19&t=107&p=1202#p1194 void takeSamples () { // This loop uses dual interleaved mode to get the best performance out of the ADCs // dma_init(DMA1); dma_attach_interrupt(DMA1, DMA_CH1, DMA1_CH1_Event); adc_dma_enable(ADC1); dma_setup_transfer(DMA1, DMA_CH1, &ADC1->regs->DR, DMA_SIZE_32BITS, dataPoints32, DMA_SIZE_32BITS, (DMA_MINC_MODE | DMA_TRNS_CMPLT));// Receive buffer DMA dma_set_num_transfers(DMA1, DMA_CH1, maxSamples / 2); dma1_ch1_Active = 1; // regs->CR2 |= ADC_CR2_SWSTART; //moved to setADC dma_enable(DMA1, DMA_CH1); // Enable the channel and start the transfer. //adc_calibrate(ADC1); //adc_calibrate(ADC2); samplingTime = micros(); while (dma1_ch1_Active); samplingTime = (micros() - samplingTime); dma_disable(DMA1, DMA_CH1); //End of trasfer, disable DMA and Continuous mode. // regs->CR2 &= ~ADC_CR2_CONT; } void TFTSamples (uint16_t beamColour) { signalX = 1; while (signalX < myWidth - 2) { // Scale our samples to fit our screen. Most scopes increase this in steps of 5,10,25,50,100 250,500,1000 etc // Pick the nearest suitable samples for each of our myWidth screen resolution points signalY = ((myHeight * dataPoints[signalX * ((endSample - startSample) / (myWidth * timeBase / 100)) + 1]) / ANALOG_MAX_VALUE) * (yZoomFactor / 100) + yPosition; signalY1 = ((myHeight * dataPoints[(signalX + 1) * ((endSample - startSample) / (myWidth * timeBase / 100)) + 1]) / ANALOG_MAX_VALUE) * (yZoomFactor / 100) + yPosition ; TFT.drawLine ( signalY * 99 / 100 + 1, signalX, signalY1 * 99 / 100 + 1 , signalX + 1, beamColour) ; signalX += 1; } } /* // Run a bunch of NOOPs to trim the inter ADC conversion gap void sweepDelay(unsigned long sweepDelayFactor) { volatile unsigned long i = 0; for (i = 0; i < sweepDelayFactor; i++) { __asm__ __volatile__ ("nop"); } } */ void showLabels() { TFT.setRotation(LANDSCAPE); TFT.setTextSize(2); TFT.setCursor(10, 190); // TFT.print("Y="); //TFT.print((samplingTime * xZoomFactor) / maxSamples); TFT.print(float (float(samplingTime) / float(maxSamples))); TFT.setTextSize(1); TFT.print(" uS/Sample "); TFT.setTextSize(2); TFT.setCursor(10, 210); TFT.print("3.0"); TFT.setTextSize(1); TFT.print(" V/Div "); TFT.setTextSize(2); TFT.print(samplingTime); TFT.setTextSize(1); TFT.print(" us for "); TFT.print(maxSamples); TFT.print(" samples "); //showTime(); TFT.setRotation(PORTRAIT); } void showTime () { // Show RTC Time. TFT.setTextSize(1); TFT.setRotation(LANDSCAPE); if (rt.getTime() != tt) { tt = rt.getTime(); TFT.setCursor(5, 10); if (hour(tt) < 10) { TFT.print("0"); } TFT.print(hour(tt)); TFT.print(":"); if (minute(tt) < 10) { TFT.print("0"); } TFT.print(minute(tt)); TFT.print(":"); if (second(tt) < 10) { TFT.print("0"); } TFT.print(second(tt)); TFT.print(" "); TFT.print(day(tt)); TFT.print("-"); TFT.print(month(tt)); TFT.print("-"); TFT.print(year(tt)); TFT.print(" "TZ" "); // TFT.print(tt); } TFT.setRotation(PORTRAIT); } void serialSamples () { // Send *all* of the samples to the serial port. serial_debug.println("#Time(uS), ADC Number, value, diff"); for (int16_t j = 1; j < maxSamples ; j++ ) { // Time from trigger in milliseconds serial_debug.print((samplingTime / (maxSamples))*j); serial_debug.print(" "); // raw ADC data serial_debug.print(j % 2 + 1); serial_debug.print(" "); serial_debug.print(dataPoints[j] ); serial_debug.print(" "); serial_debug.print(dataPoints[j] - dataPoints[j - 1]); serial_debug.print(" "); serial_debug.print(dataPoints[j] - ((dataPoints[j] - dataPoints[j - 1]) / 2)); serial_debug.print("\n"); // delay(100); } serial_debug.print("\n"); } void toggleHold() { triggerHeld ^= 1 ; //serial_debug.print("# "); //serial_debug.print(triggerHeld); if (triggerHeld) { serial_debug.println("# Toggle Hold on"); } else { serial_debug.println("# Toggle Hold off"); } } void toggleSerial() { serialOutput = !serialOutput ; serial_debug.println("# Toggle Serial"); serialSamples(); } void unrecognized(const char *command) { serial_debug.print("# Unknown Command.["); serial_debug.print(command); serial_debug.println("]"); } void decreaseTimebase() { clearTrace(); /* sweepDelayFactor = sweepDelayFactor / 2 ; if (sweepDelayFactor < 1 ) { serial_debug.print("Timebase="); sweepDelayFactor = 1; } */ if (timeBase > 100) { timeBase -= 100; } showTrace(); serial_debug.print("# Timebase="); serial_debug.println(timeBase); } void increaseTimebase() { clearTrace(); serial_debug.print("# Timebase="); if (timeBase < 10000) { timeBase += 100; } //sweepDelayFactor = 2 * sweepDelayFactor ; showTrace(); serial_debug.print("# Timebase="); serial_debug.println(timeBase); } void increaseZoomFactor() { clearTrace(); if ( xZoomFactor < 21) { xZoomFactor += 1; } showTrace(); serial_debug.print("# Zoom="); serial_debug.println(xZoomFactor); } void decreaseZoomFactor() { clearTrace(); if (xZoomFactor > 1) { xZoomFactor -= 1; } showTrace(); Serial.print("# Zoom="); Serial.println(xZoomFactor); //clearTFT(); } void clearTrace() { TFTSamples(BEAM_OFF_COLOUR); showGraticule(); } void showTrace() { showLabels(); TFTSamples(BEAM1_COLOUR); } void scrollRight() { clearTrace(); if (startSample < (endSample - 120)) { startSample += 100; } showTrace(); Serial.print("# startSample="); Serial.println(startSample); } void scrollLeft() { clearTrace(); if (startSample > (120)) { startSample -= 100; showTrace(); } Serial.print("# startSample="); Serial.println(startSample); } void increaseYposition() { if (yPosition < myHeight ) { clearTrace(); yPosition ++; showTrace(); } Serial.print("# yPosition="); Serial.println(yPosition); } void decreaseYposition() { if (yPosition > -myHeight ) { clearTrace(); yPosition --; showTrace(); } Serial.print("# yPosition="); Serial.println(yPosition); } void atAt() { serial_debug.println("# Hello"); } void toggleTestPulseOn () { pinMode(TEST_WAVE_PIN, OUTPUT); analogWrite(TEST_WAVE_PIN, 75); serial_debug.println("# Test Pulse On."); } void toggleTestPulseOff () { pinMode(TEST_WAVE_PIN, INPUT); serial_debug.println("# Test Pulse Off."); } uint16 timer_set_period(HardwareTimer timer, uint32 microseconds) { if (!microseconds) { timer.setPrescaleFactor(1); timer.setOverflow(1); return timer.getOverflow(); } uint32 cycles = microseconds * (72000000 / 1000000); // 72 cycles per microsecond uint16 ps = (uint16)((cycles >> 16) + 1); timer.setPrescaleFactor(ps); timer.setOverflow((cycles / ps) - 1 ); return timer.getOverflow(); } /** * @brief Enable DMA requests * @param dev ADC device on which to enable DMA requests */ void adc_dma_enable(const adc_dev * dev) { bb_peri_set_bit(&dev->regs->CR2, ADC_CR2_DMA_BIT, 1); } /** * @brief Disable DMA requests * @param dev ADC device on which to disable DMA requests */ void adc_dma_disable(const adc_dev * dev) { bb_peri_set_bit(&dev->regs->CR2, ADC_CR2_DMA_BIT, 0); } static void DMA1_CH1_Event() { dma1_ch1_Active = 0; } void setCurrentTime() { char *arg; arg = sCmd.next(); String thisArg = arg; serial_debug.print("# Time command ["); serial_debug.print(thisArg.toInt() ); serial_debug.println("]"); setTime(thisArg.toInt()); time_t tt = now(); rt.setTime(tt); serialCurrentTime(); } void serialCurrentTime() { serial_debug.print("# Current time - "); if (hour(tt) < 10) { serial_debug.print("0"); } serial_debug.print(hour(tt)); serial_debug.print(":"); if (minute(tt) < 10) { serial_debug.print("0"); } serial_debug.print(minute(tt)); serial_debug.print(":"); if (second(tt) < 10) { serial_debug.print("0"); } serial_debug.print(second(tt)); serial_debug.print(" "); serial_debug.print(day(tt)); serial_debug.print("/"); serial_debug.print(month(tt)); serial_debug.print("/"); serial_debug.print(year(tt)); serial_debug.println("("TZ")"); } #if defined TOUCH_SCREEN_AVAILABLE void touchCalibrate() { // showGraticule(); for (uint8_t screenLayout = 0 ; screenLayout < 4 ; screenLayout += 1) { TFT.setRotation(screenLayout); TFT.setCursor(0, 10); TFT.print(" Press and hold centre circle "); TFT.setCursor(0, 20); TFT.print(" to calibrate touch panel."); } TFT.setRotation(PORTRAIT); TFT.drawCircle(myHeight / 2, myWidth / 2, 20, GRATICULE_COLOUR); TFT.fillCircle(myHeight / 2, myWidth / 2, 10, BEAM1_COLOUR); //delay(5000); readTouchCalibrationCoordinates(); clearTFT(); } void readTouchCalibrationCoordinates() { int calibrationTries = 6000; int failCount = 0; int thisCount = 0; uint32_t tx = 0; uint32_t ty = 0; boolean OK = false; while (OK == false) { while ((myTouch.dataAvailable() == false) && thisCount < calibrationTries) { thisCount += 1; delay(1); } if ((myTouch.dataAvailable() == false)) { return; } // myGLCD.print("* HOLD! *", CENTER, text_y_center); thisCount = 0; while ((myTouch.dataAvailable() == true) && (thisCount < calibrationTries) && (failCount < 10000)) { myTouch.calibrateRead(); if (!((myTouch.TP_X == 65535) || (myTouch.TP_Y == 65535))) { tx += myTouch.TP_X; ty += myTouch.TP_Y; thisCount++; } else failCount++; } if (thisCount >= calibrationTries) { for (thisCount = 10 ; thisCount < 100 ; thisCount += 10) { TFT.drawCircle(myHeight / 2, myWidth / 2, thisCount, GRATICULE_COLOUR); } delay(500); OK = true; } else { tx = 0; ty = 0; thisCount = 0; } if (failCount >= 10000) // Didn't calibrate so just leave calibration as is. return; } serial_debug.print("# Calib x: "); serial_debug.println(tx/thisCount,HEX); serial_debug.print("# Calib y: "); serial_debug.println(ty/thisCount,HEX); // Change calibration data from here.. // cx = tx / iter; // cy = ty / iter; } void readTouch() { if (myTouch.dataAvailable()) { myTouch.read(); // Note: This is corrected to account for different orientation of screen origin (x=0,y=0) in Adafruit lib from UTouch lib uint32_t touchY = myWidth - myTouch.getX(); uint32_t touchX = myTouch.getY(); // serial_debug.print("# Touched "); serial_debug.print(touchX); serial_debug.print(","); serial_debug.println(touchY); TFT.drawPixel(touchX, touchY, BEAM2_COLOUR); } } #endif void showCredits() { TFT.setTextSize(2); // Small 26 char / line //TFT.setTextColor(CURSOR_COLOUR, BEAM_OFF_COLOUR) ; TFT.setCursor(0, 50); TFT.print(" STM-O-Scope by Andy Hull") ; TFT.setCursor(0, 70); TFT.print(" Inspired by"); TFT.setCursor(0, 90); TFT.print(" Ray Burnette."); TFT.setCursor(0, 130); TFT.print(" Victor PV"); TFT.setCursor(0, 150); TFT.print(" Roger Clark"); TFT.setCursor(0, 170); TFT.print(" and all at stm32duino.com"); TFT.setCursor(0, 190); TFT.print(" CH1 Probe STM32F Pin ["); TFT.print(analogInPin); TFT.print("]"); TFT.setCursor(0, 220); TFT.setTextSize(1); TFT.print(" GNU GENERAL PUBLIC LICENSE Version 2 "); TFT.setTextSize(2); TFT.setRotation(PORTRAIT); } static inline int readBKP(int registerNumber) { if (registerNumber > 9) { registerNumber += 5; // skip over BKP_RTCCR,BKP_CR,BKP_CSR and 2 x Reserved registers } return *(BKP_REG_BASE + registerNumber) & 0xffff; } static inline void writeBKP(int registerNumber, int value) { if (registerNumber > 9) { registerNumber += 5; // skip over BKP_RTCCR,BKP_CR,BKP_CSR and 2 x Reserved registers } *(BKP_REG_BASE + registerNumber) = value & 0xffff; } void sleepMode() { serial_debug.println("# Nighty night!"); // Set PDDS and LPDS bits for standby mode, and set Clear WUF flag (required per datasheet): PWR_BASE->CR |= PWR_CR_CWUF; PWR_BASE->CR |= PWR_CR_PDDS; // set sleepdeep in the system control register SCB_BASE->SCR |= SCB_SCR_SLEEPDEEP; // Now go into stop mode, wake up on interrupt // disableClocks(); asm("wfi"); }

Fredbox
Солнце 15 апреля 2018 г. 15:21
Если мы предположим, что аналогичное значение 1023 = 3V3 и 0 равно 0 В, то наш диапазон для уровней напряжения, которые вы видели, будет приблизительно... Вы не используете Arduino, поэтому 0-1023 не применяется. Это 0-4095.
Видеть http: // docs.Leaflabs.com/static.Leaflab ... следовать.HTML

Carl0s
Солнце 15 апреля 2018 г. 15:22
[Fredbox - Солнце 15 апреля 2018 г. 15:21] - Если мы предположим, что аналогичное значение 1023 = 3V3 и 0 равно 0 В, то наш диапазон для уровней напряжения, которые вы видели, будет приблизительно... Вы не используете Arduino, поэтому 0-1023 не применяется. Это 0-4095.
Видеть http: // docs.Leaflabs.com/static.Leaflab ... следовать.HTML
Ах. Хорошее место. Спасибо!

Carl0s
Солнце 15 апреля 2018 г. 15:24
[Ахулл - Солнце 15 апреля 2018 г. 15:18] - Я не эксперт по SPI, так что, возможно, кто -то другой может приехать в.
Я действительно мусор в C ++, но, похоже, он создает новый экземпляр SPI, называемый MSPI, используя значения PIN. Просто CS, DS и RST. void Adafruit_ILI9341_STM::begin(SPIClass & spi, uint32_t freq) { mSPI = spi; _freq = freq; _safe_freq = (freq>SAFE_FREQ) ? SAFE_FREQ : _freq; pinMode(_dc, OUTPUT); pinMode(_cs, OUTPUT); csport = portSetRegister(_cs); cspinmask = digitalPinToBitMask(_cs); cs_set(); // deactivate chip dcport = portSetRegister(_dc); dcpinmask = digitalPinToBitMask(_dc); mSPI.beginTransaction(SPISettings(_safe_freq, MSBFIRST, SPI_MODE0, DATA_SIZE_8BIT)); // toggle RST low to reset if (_rst > 0) { pinMode(_rst, OUTPUT); digitalWrite(_rst, HIGH); delay(5); digitalWrite(_rst, LOW); delay(20); digitalWrite(_rst, HIGH); delay(150); }

Ахулл
Солнце 15 апреля 2018 г. 15:49
[Fredbox - Солнце 15 апреля 2018 г. 15:21] - Если мы предположим, что аналогичное значение 1023 = 3V3 и 0 равно 0 В, то наш диапазон для уровней напряжения, которые вы видели, будет приблизительно... Вы не используете Arduino, поэтому 0-1023 не применяется. Это 0-4095.
Видеть http: // docs.Leaflabs.com/static.Leaflab ... следовать.HTML
Хорошо, попробуйте это..
Если мы предположим 4096 = 3v3, то наш диапазон для уровней напряжения, которые вы видели, будет приблизительно...


Из 1V5 ..... (1.5/3.3)*4096 = 1861
до 3V3 ..... (1.8/3.3)*4096 = 2234

... Итак, диапазон 373 единиц. Таким образом, мы могли бы сделать что -то довольно грубое, похожее на то, что вычтите нашу стоимость из 2300 и вдвое и вдвое.

Также стоит прочитать ..

http: // docs.Leaflabs.com/static.Leaflab ... анализа
http: // docs.Leaflabs.com/static.Leaflab ... писать.HTML
http: // docs.Leaflabs.com/static.Leaflab ... 65B9CBD98C

Carl0s
Солнце 15 апреля 2018 г. 16:29
[Ахулл - Солнце 15 апреля 2018 г. 15:49] -
[Fredbox - Солнце 15 апреля 2018 г. 15:21] - Если мы предположим, что аналогичное значение 1023 = 3V3 и 0 равно 0 В, то наш диапазон для уровней напряжения, которые вы видели, будет приблизительно... Вы не используете Arduino, поэтому 0-1023 не применяется. Это 0-4095.
Видеть http: // docs.Leaflabs.com/static.Leaflab ... следовать.HTML
Хорошо, попробуйте это..
Если мы предположим 4096 = 3v3, то наш диапазон для уровней напряжения, которые вы видели, будет приблизительно...


Из 1V5 ..... (1.5/3.3)*4096 = 1861
до 3V3 ..... (1.8/3.3)*4096 = 2234

... Итак, диапазон 373 единиц. Таким образом, мы могли бы сделать что -то довольно грубое, похожее на то, что вычтите нашу стоимость из 2300 и вдвое и вдвое.

Также стоит прочитать ..

http: // docs.Leaflabs.com/static.Leaflab ... анализа
http: // docs.Leaflabs.com/static.Leaflab ... писать.HTML
http: // docs.Leaflabs.com/static.Leaflab ... 65B9CBD98C
Я должен признать, что немного спустился по ЖК -дисплеев / SPI кроличь.

Я понял, что это было глупо, пытаясь заставить работу ILI работать, а также материал STM32Duino ILI, похоже, не расширяет объекты ERM, которые проходят MOSI и SCLK. Я думаю. У Adafruit есть два определения, в которых вы передаете Mosi и Sclk, и одно, где вы этого не делаете, и я думаю, что это просто предполагает SPI1.

В любом случае, я просто пробую библиотеку Adafruit ST7735 и, ну, ну, ну, ну, хорошо... что -то происходит, по крайней мере! Хотя я думаю, что это должно провести несколько цветов, а потом написать «Привет, мир». Очевидно, что много работы еще.. :)




Хотя, согласно это обсуждение, Я должен иметь возможность использовать библиотеку IL9341..

Эта библиотека ST7735 предназначена для гораздо более низкого разрешения, чем ST7789

Ахулл
Солнце 15 апреля 2018 г., 17:28
Хорошо выглядит. Я подозреваю, что возникает либо небольшая проблема скорости/времени времени, либо один из ваших булавок плавает или неверна, дважды проверьте режимы вывода и определения штифтов.

Также попробуйте библиотеку IL9341.. Это вполне может быть лучше, чем библиотека ST7735

Я смутно вспоминаю один из моих неизменных дешевых дисплеев, в которых говорилось, что это было что-то или другое в списках, но работая с водителем ILI9341.

Тот факт, что вы получаете ответ, означает, что мы движемся в правильном направлении.

Здесь станет поздно, так что я проверю по утрам. Удачи. : D

Рик Кимбалл
Солнце 15 апреля 2018 г. 18:05
[Carl0s - Солнце 15 апреля 2018 г. 13:51] - Я собирался попробовать какой -нибудь код, чтобы изменить яркость экрана на основе LDR, но без серийной консоли я не знаю, какие цифры возвращаются из анализа (LDR_PIN), поэтому я не знаю, какие математики делать Для аналога с TFT_LED.

Я подхожу к этому правильно? Должен ли я вернуться к нему, когда у меня будет серийная консоль?
Вы можете использовать своего программиста Stlink в качестве отладчика и посмотреть на значения в Arm-none-ebi-gdb ... AL из Hackaday сделал хорошее видео, описывающее, как сделать базовую отладку.

https: // www.YouTube.com/watch?V = D-MBC9N5U7O

Carl0s
Солнце 15 апреля 2018 г. 20:53
[Рик Кимбалл - Солнце 15 апреля 2018 г. 18:05] -
[Carl0s - Солнце 15 апреля 2018 г. 13:51] - Я собирался попробовать какой -нибудь код, чтобы изменить яркость экрана на основе LDR, но без серийной консоли я не знаю, какие цифры возвращаются из анализа (LDR_PIN), поэтому я не знаю, какие математики делать Для аналога с TFT_LED.

Я подхожу к этому правильно? Должен ли я вернуться к нему, когда у меня будет серийная консоль?
Вы можете использовать своего программиста Stlink в качестве отладчика и посмотреть на значения в Arm-none-ebi-gdb ... AL из Hackaday сделал хорошее видео, описывающее, как сделать базовую отладку.

https: // www.YouTube.com/watch?V = D-MBC9N5U7O
Ох, мне было интересно об этом.

Я также записал зонд черной магии.. звучит как крутая вещь, конечно, для чтения EEPROM и т. Д., Но, возможно, больше..

Carl0s
Солнце 15 апреля 2018 г. 20:56
[Ахулл - Солнце 15 апреля 2018 г., 17:28] - Хорошо выглядит. Я подозреваю, что возникает либо небольшая проблема скорости/времени времени, либо один из ваших булавок плавает или неверна, дважды проверьте режимы вывода и определения штифтов.

Также попробуйте библиотеку IL9341.. Это вполне может быть лучше, чем библиотека ST7735

Я смутно вспоминаю один из моих неизменных дешевых дисплеев, в которых говорилось, что это было что-то или другое в списках, но работая с водителем ILI9341.

Тот факт, что вы получаете ответ, означает, что мы движемся в правильном направлении.

Здесь станет поздно, так что я проверю по утрам. Удачи. : D
Спасибо, Энди! Я думаю, мне нужно называть это день на сегодня.

Я думаю, что понимаю, как вы должны использовать библиотеку ILI9341_STM с SPI2. Я сказал вам, что я мусор в C/C ++, но.. Я думаю, я наконец понимаю, что вы должны сделать: SPIClass mySPI2(2); Adafruit_ILI9341_STM tft = Adafruit_ILI9341_STM(TFT_CS, TFT_DC); tft.begin(mySPI2);

Стивестронг
Солнце 15 апреля 2018 г., 21:49
Я думаю, что вам также нужно определить третий параметр, линия сброса: Adafruit_ILI9341_STM tft(TFT_CS, TFT_DC, TFT_RST);

Rogerclark
Солнце 15 апреля 2018 г. 22:01
Может’T вы просто используете SPI.SetModule (2)

Тогда ваши библиотеки используют SPI 2, даже когда они думают, что используют SPI 1

Carl0s
Солнце 15 апреля 2018 11:39
[Стивестронг - Солнце 15 апреля 2018 г. 9:49 вечера] - Я думаю, что вам также нужно определить третий параметр, линия сброса: Adafruit_ILI9341_STM tft(TFT_CS, TFT_DC, TFT_RST);

Carl0s
Солнце 15 апреля 2018 11:40
[Rogerclark - Солнце 15 апреля 2018 г. 22:01] - Может’T вы просто используете SPI.SetModule (2)

Тогда ваши библиотеки используют SPI 2, даже когда они думают, что используют SPI 1
Пробовал тоже! Я вернусь завтра с прицелом, чтобы посмотреть, выходит ли SPI в MCU.

Rogerclark
Пн, 16 апреля 2018 г. 12:10
ХОРОШО

Одна вещь, которую я не думаю, требует вовлечения во внимание, если эта максимальная скорость SPI2 вдвое меньше, чем у SPI1, но я использовал SetModule () для некоторых либеров, и это действительно работало

Ахулл
Пн, 16 апреля 2018 г., 6:28
[Carl0s - Солнце 15 апреля 2018 11:40] -
[Rogerclark - Солнце 15 апреля 2018 г. 22:01] - Может’T вы просто используете SPI.SetModule (2)

Тогда ваши библиотеки используют SPI 2, даже когда они думают, что используют SPI 1
Пробовал тоже! Я вернусь завтра с прицелом, чтобы посмотреть, выходит ли SPI в MCU.
Я подозреваю, что, поскольку у вас есть «статический» шаблон, который вы отправляете * некоторые * команды на дисплей. Они могут быть изуродованы, или они могут не применяться к этому конкретному контроллеру, поэтому нам нужно проверить формы волны на булавках.

Ахулл
Пн, 16 апреля 2018 г., 6:40
[Рик Кимбалл - Солнце 15 апреля 2018 г. 18:05] -
[Carl0s - Солнце 15 апреля 2018 г. 13:51] - Я собирался попробовать какой -нибудь код, чтобы изменить яркость экрана на основе LDR, но без серийной консоли я не знаю, какие цифры возвращаются из анализа (LDR_PIN), поэтому я не знаю, какие математики делать Для аналога с TFT_LED.

Я подхожу к этому правильно? Должен ли я вернуться к нему, когда у меня будет серийная консоль?
Вы можете использовать своего программиста Stlink в качестве отладчика и посмотреть на значения в Arm-none-ebi-gdb ... AL из Hackaday сделал хорошее видео, описывающее, как сделать базовую отладку.

https: // www.YouTube.com/watch?V = D-MBC9N5U7O
Спасибо, Рик, я не заметил этого видео. Хорошая находка.

Carl0s
Пн, 16 апреля 2018 г., 10:33
[Ахулл - Пн, 16 апреля 2018 г. 6:28] -
[Carl0s - Солнце 15 апреля 2018 11:40] -
[Rogerclark - Солнце 15 апреля 2018 г. 22:01] - Может’T вы просто используете SPI.SetModule (2)

Тогда ваши библиотеки используют SPI 2, даже когда они думают, что используют SPI 1
Пробовал тоже! Я вернусь завтра с прицелом, чтобы посмотреть, выходит ли SPI в MCU.
Я подозреваю, что, поскольку у вас есть «статический» шаблон, который вы отправляете * некоторые * команды на дисплей. Они могут быть изуродованы, или они могут не применяться к этому конкретному контроллеру, поэтому нам нужно проверить формы волны на булавках.
Привет. Проблема в том, что использовала библиотеку ST7735. ST7735 имеет максимальное разрешение 132 x 162, поэтому, я полагаю, довольно безнадежно ожидать, что это будет работать с дисплеем / чипом 240 x 320 (ST7789V, который у меня есть)? Или более вероятно, что быть из того же производителя было бы легче настроить эту библиотеку, чем, скажем, библиотека ILI9341? Как я писал ранее, кто -то сказал, что ILI9341 и ST7789 были совместимы, кроме заказа RGB (но все еще работает.. Просто неправильные цвета), но я не уверен, что это только при использовании параллельного режима 8080 вместо SPI.

Я попробовал ILI9341_STM LIB, с Spiclass MySpi2, как указано выше. Я также попробовал оригинал Adafruit ILI9341 Последний из GitHub, который принимает дополнительные параметры tft_clk, tft_miso и tft_mosi. Мне пришлось настраивать/принудительно привести к типам RWREG, который не был установлен, чтобы заставить это собрать, но все еще не кубики.

Мой логический анализатор - клон Saleae, говорит, что это 24 МГц. У этого есть шанс на работу, если я установите частоту SPI на 18 МГц? Есть вся эта вещь, о которой я недостаточно знаю.

В качестве альтернативы, моя область - один из тех популярных взломанных Риголс. 100 МГц 4 канал со SPI Decode.

Rogerclark
Пн, 16 апреля 2018 г. 10:56 утра
Основная проблема, с которой я столкнулся с GD32, заключалась в том, что SPI не работает так же, как и STM32, поэтому я думаю, что вам нужно прикрепить свой логический анализатор и тщательно посмотреть на сигналы, я подозреваю контрольные регистры.

Gigadevices, в своей мудрости, решили, что любой «зарезервированный» бит в регистрах может использоваться для добавления дополнительных функциональных возможностей, что хорошо при написании кода с использованием их CMSIS и т. Д., Но при использовании кода для STM32 может оставить различные «биты» в Регистры со значениями, которые влияют на работу периферического.

Или это могут быть проблемы с времени, так как GD32 может работать с нулевыми состояниями ожидания во флэш -.

Ахулл
Пн, 16 апреля 2018 г., 11:05
Глядя на таблицы данных для ILI9341 и ST7789V Они, кажется, очень близки с точки зрения своей структуры и формата команд. Они даже используют очень похожую формулировку в таблице данных, предполагая, что один из них является производной от другого.

Они также, по -видимому, поддерживают те же инструкции, например, если вы посмотрите на инструкцию «Читать CABC минимальная яркость (5FH)» в таблице данных ILI9341 (стр. 150) и сравните с той же инструкцией на ST7789 (стр. 244) Описание, формулировка и макет страницы почти идентичны, поэтому я думаю, что мы можем быть уверены, что эти два устройства чрезвычайно тесно связаны. Может быть разница в геометрии памяти, которая будет объяснять цветовые сдвиги, но я думаю, что базовый дизайн почти идентичен.

Поскольку интерфейс - это просто метод получения данных в процессор инструкций, я подозреваю, что если мы сможем отправить допустимые данные на устройство, мы можем ожидать, что он ответит таким образом, что мы можем понять, независимо от того, как эти данные попадают (SPI , параллель или что -то еще).

Ахулл
Пн, 16 апреля 2018 г. 11:11
Мой логический анализатор - клон Saleae, говорит, что это 24 МГц. У этого есть шанс на работу, если я установите частоту SPI на 18 МГц? Есть вся эта вещь, о которой я недостаточно знаю. Да, для логического анализа ваш клон Saleae 24 МГц должен быть в состоянии не отставать от SPI на 18 МГц.

Если вы используете Сигрок, вы должны быть в состоянии декодировать SPI от ваших захватов. Я не уверен, что ваш область может декодировать SPI, вам нужно будет проверить его спецификацию.

Carl0s
Пн, 16 апреля 2018 г., 11:13
[Ахулл - Пн, 16 апреля 2018 г. 11:05] - Глядя на таблицы данных для ILI9341 и ST7789V Они, кажется, очень близки с точки зрения своей структуры и формата команд. Они даже используют очень похожую формулировку в таблице данных, предполагая, что один из них является производной от другого.

Они также, по -видимому, поддерживают те же инструкции, например, если вы посмотрите на инструкцию «Читать CABC минимальная яркость (5FH)» в таблице данных ILI9341 (стр. 150) и сравните с той же инструкцией на ST7789 (стр. 244) Описание, формулировка и макет страницы почти идентичны, поэтому я думаю, что мы можем быть уверены, что эти два устройства чрезвычайно тесно связаны. Может быть разница в геометрии памяти, которая будет объяснять цветовые сдвиги, но я думаю, что базовый дизайн почти идентичен.

Поскольку интерфейс - это просто метод получения данных в процессор инструкций, я подозреваю, что если мы сможем отправить допустимые данные на устройство, мы можем ожидать, что он ответит таким образом, что мы можем понять, независимо от того, как эти данные попадают (SPI , параллель или что -то еще).
Итак, возможно, проблема в том, что библиотека ILI9341 не работает на SPI2 с GD32, но библиотека ST7735 была (но совершенно несовместима из -за различного разрешения). Я проверю активность SPI2 с прицелом позже.

Я как раз собирался нажать кнопку на лучшем «дешевом» логике анализатора. Один с FPGA & буфер хранения (Dslogic Plus). Может я должен успокоиться и подождать, хотя.. Попробуйте прицел & дрянный логический анализатор за 5 24 МГц, который у меня уже есть.

Carl0s
Пн, 16 апреля 2018 г., 11:14
[Ахулл - Пн, 16 апреля 2018 г., 11:11]] - Мой логический анализатор - клон Saleae, говорит, что это 24 МГц. У этого есть шанс на работу, если я установите частоту SPI на 18 МГц? Есть вся эта вещь, о которой я недостаточно знаю. Да, для логического анализа ваш клон Saleae 24 МГц должен быть в состоянии не отставать от SPI на 18 МГц.

Если вы используете Сигрок, вы должны быть в состоянии декодировать SPI от ваших захватов. Я не уверен, что ваш область может декодировать SPI, вам нужно будет проверить его спецификацию.
Хорошо, я попробую.

Да, мой прицел на 100 МГц делает SPI. У него есть все параметры установлены/включены: https: // www.Ригол-Юк.сопутствующий.Великобритания/Риголь-DS1104 ... S1104Z.htm

Carl0s
Пн, 16 апреля 2018 г., 11:24
[Rogerclark - Пн, 16 апреля 2018 г. 10:56] - Основная проблема, с которой я столкнулся с GD32, заключалась в том, что SPI не работает так же, как и STM32, поэтому я думаю, что вам нужно прикрепить свой логический анализатор и тщательно посмотреть на сигналы, я подозреваю контрольные регистры.

Gigadevices, в своей мудрости, решили, что любой «зарезервированный» бит в регистрах может использоваться для добавления дополнительных функциональных возможностей, что хорошо при написании кода с использованием их CMSIS и т. Д., Но при использовании кода для STM32 может оставить различные «биты» в Регистры со значениями, которые влияют на работу периферического.

Или это могут быть проблемы с времени, так как GD32 может работать с нулевыми состояниями ожидания во флэш -.
Привет, Роджер. От старого обсуждения (2.5 лет назад).. Я не уверен, что это актуально..
ViewTopic.PHP?t = 485&начало = 30
GD32 При использовании SPI конфигурация ввода -навода должна быть строго наблюдаемой мастер из конфигурации режима ввода и вывода,
STM32 не является таким требованием, соответствующий код выглядит следующим образом:

Конфигурация режима хоста IO (например, Host to SPI):
Gpio_initstructure.Gpio_mode = gpio_mode_af_pp;
Gpio_initstructure.Gpio_speed = gpio_speed_50mhz;
Gpio_initstructure.Gpio_pin = gpio_pin_5 | Gpio_pin_7;
Gpio_init (gpioa, & Gpio_initstructure);
Gpio_initstructure.Gpio_mode = gpio_mode_in_floating;
Gpio_initstructure.Gpio_pin = gpio_pin_6;
Gpio_init (gpioa, & Gpio_initstructure);

IO настроен в режиме рабов (пример Slave In Spi2):
Gpio_initstructure.Gpio_mode = gpio_mode_in_floating;
Gpio_initstructure.Gpio_speed = gpio_speed_50mhz;
Gpio_initstructure.Gpio_pin = gpio_pin_13 | Gpio_pin_15;
Gpio_init (gpiob, & Gpio_initstructure);
Gpio_initstructure.Gpio_mode = gpio_mode_af_pp;
Gpio_initstructure.Gpio_pin = gpio_pin_14;
Gpio_init (gpiob, & Gpio_initstructure);

3) В такточном сигнале SPI GD32 на высоком уровне необходимо настроить на высокий уровень, чтобы обеспечить стабильность данных,
Конкретный код следующим образом: код красного шрифта
Spi_initstructure.Spi_direction = spi_direction_2lines_fullduplex;
Spi_initstructure.Spi_mode = spi_mode_master;

Rogerclark
Пн, 16 апреля 2018 г., 11:53
Хорошо.

Похоже, есть ряд потенциальных причин, почему код STM32 SPI не сделал’T Работа.

Я помню, как делал тест на петлю назад, и он работал нормально, но он не отправит данные на дисплей ILI9341

Таким образом, состояние холостого хода могло быть проблемой, так как из -за того, что я помню, данные обратного цикла выглядели нормально на моем анализатора

Carl0s
Пн, 16 апреля 2018 г., 11:54
[Rogerclark - Пн, 16 апреля 2018 г. 11:53] - Хорошо.

Похоже, есть ряд потенциальных причин, почему код STM32 SPI не сделал’T Работа.

Я помню, как делал тест на петлю назад, и он работал нормально, но он не отправит данные на дисплей ILI9341

Таким образом, состояние холостого хода могло быть проблемой, так как из -за того, что я помню, данные обратного цикла выглядели нормально на моем анализатора
Да, я прочитал твое обсуждение об этом :)

Надеюсь, мы сможем добраться туда. Я постараюсь сыграть позже. Я в опасности расстроить подругу, уделяя компьютеру слишком много внимания.

Carl0s
Пн, 16 апреля 2018 г., 11:57 утра
Интересно, по умолчанию GD32 на высокую тактовую скорость, которую они упоминают в маркетинге/данных? 108 МГц ? Это будет означать, что мне определенно нужно изменить часовые перегородки и т. Д.

Кроме того, я только что заметил из таблицы данных, что в нем говорится, что SPI составляет максимум 18 МГц. Я думал (ошибочно?) что 36 МГц или даже 50 МГц было стандартным, по крайней мере, для SPI1, на STM32 ?

Хотя, я думаю, уже попытался дать частоту 18 МГц в качестве TFT.начинать (myspi2, 18000000);

Я ничего не сделал с разделителями, хотя.

Упс.. неважно. Это 18 Мбит / с SPI, а не 18 МГц. То же, что и STM32

Ахулл
Пн, 16 апреля 2018 12:42
Мне любопытно узнать, когда дисплей меняется с пустой дисплеи с подсветкой на этот «снежный».
Делает ... tft.begin(mySPI2, 18000000);

Carl0s
Пн, 16 апреля 2018 г. 12:44
Я могу узнать позже. Помните, что снежный материал был с кодом ST7735.. Все, что я сделал, это изменил назначения PIN -кода в коде примера.

Ахулл
Пн, 16 апреля 2018 г. 12:51
Код ST7735, похоже, что -то сделал тогда. Что если что -то вы увидите с помощью ILI9341 LIB?

Carl0s
Пн, 16 апреля 2018 12:52
[Ахулл - Пн, 16 апреля 2018 г. 12:51]] - Код ST7735, похоже, что -то сделал тогда. Что если что -то вы увидите с помощью ILI9341 LIB?
Ничего вообще с ILI9341 LIB :-(

Ахулл
Пн, 16 апреля 2018 г., 13:03
[Carl0s - Пн, 16 апреля 2018 г. 12:52] -
[Ахулл - Пн, 16 апреля 2018 г. 12:51]] - Код ST7735, похоже, что -то сделал тогда. Что если что -то вы увидите с помощью ILI9341 LIB?
Ничего вообще с ILI9341 LIB :-(
Сравните распина.

Как минимум, отправляя writedata(0x01); writedata(0x29);

Стивестронг
Пн, 16 апреля 2018 г., 13:52
Вы пробовали это: https: // github.com/adafruit/adafruit-st7735-библиотека?

Или эта конфигурация: https: // github.com/prentiedavid/mcufri ... .CPP#L1509 ?

Carl0s
Пн, 16 апреля 2018 г. 14:03
[Стивестронг - Пн, 16 апреля 2018 г. 13:52] - Вы пробовали это: https: // github.com/adafruit/adafruit-st7735-библиотека?

Или эта конфигурация: https: // github.com/prentiedavid/mcufri ... .CPP#L1509 ?
Да, 7735 - это разрешение 160x120, и то, что дало мне белый шум. McUfriend, который я пробовал, но немного застрял. Я думаю, что это не предназначено для SPI.

Ахулл
Пн, 16 апреля 2018 г., 14:20
Последовательность сброса из этой LIB похожа.
static const uint8_t PROGMEM Bcmd[] = { // Initialization commands for 7735B screens 18, // 18 commands in list: ST7735_SWRESET, DELAY, // 1: Software reset, no args, w/delay 50, // 50 ms delay ST7735_SLPOUT , DELAY, // 2: Out of sleep mode, no args, w/delay 255, // 255 = 500 ms delay ST7735_COLMOD , 1+DELAY, // 3: Set color mode, 1 arg + delay: 0x05, // 16-bit color 10, // 10 ms delay ST7735_FRMCTR1, 3+DELAY, // 4: Frame rate control, 3 args + delay: 0x00, // fastest refresh 0x06, // 6 lines front porch 0x03, // 3 lines back porch 10, // 10 ms delay ST7735_MADCTL , 1 , // 5: Memory access ctrl (directions), 1 arg: 0x08, // Row addr/col addr, bottom to top refresh ST7735_DISSET5, 2 , // 6: Display settings #5, 2 args, no delay: 0x15, // 1 clk cycle nonoverlap, 2 cycle gate // rise, 3 cycle osc equalize 0x02, // Fix on VTL ST7735_INVCTR , 1 , // 7: Display inversion control, 1 arg: 0x0, // Line inversion ST7735_PWCTR1 , 2+DELAY, // 8: Power control, 2 args + delay: 0x02, // GVDD = 4.7V 0x70, // 1.0uA 10, // 10 ms delay ST7735_PWCTR2 , 1 , // 9: Power control, 1 arg, no delay: 0x05, // VGH = 14.7V, VGL = -7.35V ST7735_PWCTR3 , 2 , // 10: Power control, 2 args, no delay: 0x01, // Opamp current small 0x02, // Boost frequency ST7735_VMCTR1 , 2+DELAY, // 11: Power control, 2 args + delay: 0x3C, // VCOMH = 4V 0x38, // VCOML = -1.1V 10, // 10 ms delay ST7735_PWCTR6 , 2 , // 12: Power control, 2 args, no delay: 0x11, 0x15, ST7735_GMCTRP1,16 , // 13: Magical unicorn dust, 16 args, no delay: 0x09, 0x16, 0x09, 0x20, // (seriously though, not sure what 0x21, 0x1B, 0x13, 0x19, // these config values represent) 0x17, 0x15, 0x1E, 0x2B, 0x04, 0x05, 0x02, 0x0E, ST7735_GMCTRN1,16+DELAY, // 14: Sparkles and rainbows, 16 args + delay: 0x0B, 0x14, 0x08, 0x1E, // (ditto) 0x22, 0x1D, 0x18, 0x1E, 0x1B, 0x1A, 0x24, 0x2B, 0x06, 0x06, 0x02, 0x0F, 10, // 10 ms delay ST7735_CASET , 4 , // 15: Column addr set, 4 args, no delay: 0x00, 0x02, // XSTART = 2 0x00, 0x81, // XEND = 129 ST7735_RASET , 4 , // 16: Row addr set, 4 args, no delay: 0x00, 0x02, // XSTART = 1 0x00, 0x81, // XEND = 160 ST7735_NORON , DELAY, // 17: Normal display on, no args, w/delay 10, // 10 ms delay ST7735_DISPON , DELAY, // 18: Main screen turn on, no args, w/delay 255 }, // 255 = 500 ms delay Rcmd1[] = { // Init for 7735R, part 1 (red or green tab) 15, // 15 commands in list: ST7735_SWRESET, DELAY, // 1: Software reset, 0 args, w/delay 150, // 150 ms delay ST7735_SLPOUT , DELAY, // 2: Out of sleep mode, 0 args, w/delay 255, // 500 ms delay ST7735_FRMCTR1, 3 , // 3: Frame rate ctrl - normal mode, 3 args: 0x01, 0x2C, 0x2D, // Rate = fosc/(1x2+40) * (LINE+2C+2D) ST7735_FRMCTR2, 3 , // 4: Frame rate control - idle mode, 3 args: 0x01, 0x2C, 0x2D, // Rate = fosc/(1x2+40) * (LINE+2C+2D) ST7735_FRMCTR3, 6 , // 5: Frame rate ctrl - partial mode, 6 args: 0x01, 0x2C, 0x2D, // Dot inversion mode 0x01, 0x2C, 0x2D, // Line inversion mode ST7735_INVCTR , 1 , // 6: Display inversion ctrl, 1 arg, no delay: 0x07, // No inversion ST7735_PWCTR1 , 3 , // 7: Power control, 3 args, no delay: 0xA2, 0x02, // -4.6V 0x84, // AUTO mode ST7735_PWCTR2 , 1 , // 8: Power control, 1 arg, no delay: 0xC5, // VGH25 = 2.4C VGSEL = -10 VGH = 3 * AVDD ST7735_PWCTR3 , 2 , // 9: Power control, 2 args, no delay: 0x0A, // Opamp current small 0x00, // Boost frequency ST7735_PWCTR4 , 2 , // 10: Power control, 2 args, no delay: 0x8A, // BCLK/2, Opamp current small & Medium low 0x2A, ST7735_PWCTR5 , 2 , // 11: Power control, 2 args, no delay: 0x8A, 0xEE, ST7735_VMCTR1 , 1 , // 12: Power control, 1 arg, no delay: 0x0E, ST7735_INVOFF , 0 , // 13: Don't invert display, no args, no delay ST7735_MADCTL , 1 , // 14: Memory access control (directions), 1 arg: 0xC8, // row addr/col addr, bottom to top refresh ST7735_COLMOD , 1 , // 15: set color mode, 1 arg, no delay: 0x05 }, // 16-bit color Rcmd2green[] = { // Init for 7735R, part 2 (green tab only) 2, // 2 commands in list: ST7735_CASET , 4 , // 1: Column addr set, 4 args, no delay: 0x00, 0x02, // XSTART = 0 0x00, 0x7F+0x02, // XEND = 127 ST7735_RASET , 4 , // 2: Row addr set, 4 args, no delay: 0x00, 0x01, // XSTART = 0 0x00, 0x9F+0x01 }, // XEND = 159 Rcmd2red[] = { // Init for 7735R, part 2 (red tab only) 2, // 2 commands in list: ST7735_CASET , 4 , // 1: Column addr set, 4 args, no delay: 0x00, 0x00, // XSTART = 0 0x00, 0x7F, // XEND = 127 ST7735_RASET , 4 , // 2: Row addr set, 4 args, no delay: 0x00, 0x00, // XSTART = 0 0x00, 0x9F }, // XEND = 159 Rcmd2green144[] = { // Init for 7735R, part 2 (green 1.44 tab) 2, // 2 commands in list: ST7735_CASET , 4 , // 1: Column addr set, 4 args, no delay: 0x00, 0x00, // XSTART = 0 0x00, 0x7F, // XEND = 127 ST7735_RASET , 4 , // 2: Row addr set, 4 args, no delay: 0x00, 0x00, // XSTART = 0 0x00, 0x7F }, // XEND = 127 Rcmd2green160x80[] = { // Init for 7735R, part 2 (mini 160x80) 2, // 2 commands in list: ST7735_CASET , 4 , // 1: Column addr set, 4 args, no delay: 0x00, 0x00, // XSTART = 0 0x00, 0x7F, // XEND = 79 ST7735_RASET , 4 , // 2: Row addr set, 4 args, no delay: 0x00, 0x00, // XSTART = 0 0x00, 0x9F }, // XEND = 159 Rcmd3[] = { // Init for 7735R, part 3 (red or green tab) 4, // 4 commands in list: ST7735_GMCTRP1, 16 , // 1: Magical unicorn dust, 16 args, no delay: 0x02, 0x1c, 0x07, 0x12, 0x37, 0x32, 0x29, 0x2d, 0x29, 0x25, 0x2B, 0x39, 0x00, 0x01, 0x03, 0x10, ST7735_GMCTRN1, 16 , // 2: Sparkles and rainbows, 16 args, no delay: 0x03, 0x1d, 0x07, 0x06, 0x2E, 0x2C, 0x29, 0x2D, 0x2E, 0x2E, 0x37, 0x3F, 0x00, 0x00, 0x02, 0x10, ST7735_NORON , DELAY, // 3: Normal display on, no args, w/delay 10, // 10 ms delay ST7735_DISPON , DELAY, // 4: Main screen turn on, no args w/delay 100 }; // 100 ms delay

Carl0s
Пн, 16 апреля 2018 г., 18:40
На макетинге, готов к работе.. ха

Изображение

Carl0s
Пн, 16 апреля 2018 г., 18:57
Хмммм. Я немного не в глубине с этим, но часы, кажется, в лучшем случае показывают 2 МГц, и команды, кажется, не соответствуют тому, что, я думаю, библиотека должна посылать.

Вы можете открыть это в Logic Saleae (скачать бесплатно из https: // www.Сали.com/загрузки )

http: // www.InternetSome.com/autool ... .LogicData


хм. В прицеле показаны часы на 18 МГц, хотя. Это более правдоподобно.

Carl0s
Пн, 16 апреля 2018 г., 19:16
Верно. тфу.начать (mySpi2); дает часы на 18 МГц, а логический анализатор 24 МГц $ 5 не может справиться с ним.

тфу.начинать (mySpi2, 8000000); дает 4.Часы 5 МГц в соответствии с прицелом и 4 МГц в соответствии с L/A. Хотя это довольно грязно.

Carl0s
Пн, 16 апреля 2018 г., 19:41
Похоже, d/c (данные/команда) никогда не меняется.

Интересно, есть ли проблема с PA11 ?

Я только что узнал о выпуске PA15 (он подключен для TFT_RST здесь), и, поскольку я использую ST Link, я установил AFIO_CFG_DEBUG_PORTS (AFIO_DEBUG_SW_ONLY);

Carl0s
Пн, 16 апреля 2018 г., 20:00
Верно! При 1 МГц SPI, который по какой -то причине дает часы 500 кГц, правильные команды интерпретируются моим действительно чертовым логическим анализатором.

Это хороший знак!
сравнивать:
Изображение

с: https: // github.com/adafruit/adafruit_il ... 1.CPP#L270

Но я думаю, что линия D/C никогда не меняется
http: // www.InternetSome.com/autool ... .LogicData

Стивестронг
Пн, 16 апреля 2018 г., 21:01
PA11/12 - USB -булавки.

Carl0s
Пн, 16 апреля 2018 г., 21:03
[Стивестронг - Пн, 16 апреля 2018 г., 21:01] - PA11/12 - USB -булавки.
В моем случае они не подключены как таковые. Есть ли какой -то код, который переключает их в режим USB, который я могу попытаться переопределить?

По умолчанию чип - PA11, чтобы быть PA11. Видимо USB - альтернативный режим.

У меня нет порта USB в настоящее время!

Стивестронг
Пн, 16 апреля 2018 г., 21:05
Они настроены в качестве контактов USB при сбросе.

Rogerclark
Пн, 16 апреля 2018 г., 21:07
Для загрузки Stlink USB включен по умолчанию в ядре

Посмотрите на доски.TXT в опции меню для последовательной загрузки, поскольку у него есть переключатели, чтобы отключить USB -сериал, поскольку он использует аппаратный сериал

Carl0s
Пн, 16 апреля 2018 г., 21:12
[Rogerclark - Пн, 16 апреля 2018 г., 21:07] - Для загрузки Stlink USB включен по умолчанию в ядре

Посмотрите на доски.TXT в опции меню для последовательной загрузки, поскольку у него есть переключатели, чтобы отключить USB -сериал, поскольку он использует аппаратный сериал
Я возится с доской.CPP и доска.h как мы говорим, хотя я не совсем уверен, что делаю ;) Комментируя назначения USB, увеличение Board_nr_adc_pins, добавив PA11 в список BoardAdcpins. Все еще нет трудоустройства ;)

Ой. PA11 в любом случае не является PIN -код ADC. Я попробую добавить в pwmpins

Rogerclark
Пн, 16 апреля 2018 г., 21:16
Изменить доски.txt не плата.CPP

Я думаю, что есть что -то вроде -deserial_usb

В опцию «Загрузка» для STLINK

Просто удалите это и сохраните, а затем осознал IDE

Carl0s
Пн, 16 апреля 2018 г., 21:18
[Rogerclark - Пн, 16 апреля 2018 г., 21:16] - Изменить доски.txt не плата.CPP

Я думаю, что есть что -то вроде -deserial_usb

В опцию «Загрузка» для STLINK

Просто удалите это и сохраните, а затем осознал IDE
Вы знаете?

Rogerclark
Пн, 16 апреля 2018 г., 21:19
Нет,

Но я думаю, что это должно сохранить некоторые из этих конфигура

Вы могли бы попытаться убедиться, что serial_usb (или, возможно, это’s usb_serial) не определяется как ядро ​​будет использовать его в качестве флага для запуска всего серийного кода USB

Carl0s
Пн, 16 апреля 2018 г., 21:20
Святое дерьмо


Святое дерьмо

Carl0s
Пн, 16 апреля 2018 г., 21:25
Я только что сделал это:

Изображение

И теперь у меня есть это : D

Изображение

Carl0s
Пн, 16 апреля 2018 г., 21:34
Он отлично работает с SPI 48 МГц (я удалил частоту из TFT.начинать. Я думаю, что тогда используется 48 МГц. Хотя мои прицелы показывают часы как 18 МГц.)

Таким образом, проблемы были просто первым пин -кодом, заявляемая JTAG, а PIN -код D/C был заявлен USB.


Кроме того, мне пришлось переключить ширину и высоту в файле ILI9341_STM:
#define ili9341_tftwidth 320
#define ili9341_tftheight 240


Rogerclark
Пн, 16 апреля 2018 г. 11:18
Прохладный

КСТАТИ. GD32 будет работать нормально на 120 МГц, а также с нулевым состоянием ожидания во вспышке, так что вы можете изменить свои настройки, так как это даст вам значительный повышение производительности даже в течение 108 МГц, он может быть в настоящее время работает в.

Carl0s
Пн, 16 апреля 2018 г., 23:31
[Rogerclark - Пн, 16 апреля 2018 г., 23:18] - Прохладный

КСТАТИ. GD32 будет работать нормально на 120 МГц, а также с нулевым состоянием ожидания во вспышке, так что вы можете изменить свои настройки, так как это даст вам значительный повышение производительности даже в течение 108 МГц, он может быть в настоящее время работает в.
Спасибо, Роджер! Ну, я использую genericstm32f103r в качестве определения платы.

Я не уверен, как переопределить настройки платы в платформе. Я подозреваю твои доски.TXT может быть втянут в базу данных или кэширован... Может быть, после того, как я создал проект и выбрал определение платы. Конечно, я попытался удалить -deserial_usb из вариантов загрузки, но это не сработало для моей проблемы с TFT. Я по -прежнему могу заставить его работать с вышеупомянутым изменением функции init в досках.CPP.

Должен сказать, что я довольно разбит, что все это возможно. Когда я заказал эту вещь, я подумал, хммм.. Интересно, смогу ли я использовать экран. Кто -то на форумах Arduino сказал, что у него может быть капля эпоксидной смоф /контроллер и отдельное устройство Datalogger).

Carl0s
Пн, 16 апреля 2018 г., 23:47
[Rogerclark - Пн, 16 апреля 2018 г., 23:18] - Прохладный

КСТАТИ. GD32 будет работать нормально на 120 МГц, а также с нулевым состоянием ожидания во вспышке, так что вы можете изменить свои настройки, так как это даст вам значительный повышение производительности даже в течение 108 МГц, он может быть в настоящее время работает в.
Я нашел это :) Вы должны разместить варианты в Platformio.INI в рамках проекта.

Я мог выбрать только 128 МГц, хотя. Я получил "Ошибка: 'board_rcc_pllmul' не был объявлен в этой области", если я попробовал 120 МГц.

Экран, безусловно, выглядит быстро с процессором на 128 МГц : D

Scope говорит, что часы SPI теперь 32 МГц.

Между прочим, я не смог получить часы SPI выше 18 МГц любым другим способом. Я попытался установить делитель на Div2, а также указать частоту в TFT.Начните, но я никогда не получал часы SPI выше 18 МГц. Он использует разделитель 4 по сравнению с процессором, независимо от.


Carl0s
Вт 17 апреля 2018 г. 12:24
Кстати, будучи версией чипа RB (GD32F103RBT6), у этого есть полное официальное 128 КБ вспышки. Я думаю, несколько человек думали, что это не так.

Rogerclark
Вт 17 апреля 2018 г. 12:50
Ах ОК

Я думал, что это был GD32F103C8, который имеет только 64K Flash (и у него всего 64K Shadow / Program Ram)

Rogerclark
Вт 17 апреля 2018 г. 12:53 утра
Видеть

https: // github.com/rogerclarkmelbourne/ ... 9E1AA8C15A

Измените это на состояния нулевого ожидания, так как только STM32 нуждаются в состояниях ожидания

Carl0s
Вт 17 апреля 2018 г. 12:55
[Rogerclark - Вт 17 апреля 2018 г. 12:50] - Ах ОК

Я думал, что это был GD32F103C8, который имеет только 64K Flash (и у него всего 64K Shadow / Program Ram)
Видимо нет! :)

Я только что исправил цвета BGR / RGB, так что я счастлив. Я мог бы пойти спать наконец :-)

Я изменил madctl_bgr на madctl_rgb в adafruit_ili9341_stm :: setrotation (uint8_t m)

Carl0s
Вт 17 апреля 2018 г. 1:02
[Rogerclark - Вт 17 апреля 2018 г. 12:53] - Видеть

https: // github.com/rogerclarkmelbourne/ ... 9E1AA8C15A

Измените это на состояния нулевого ожидания, так как только STM32 нуждаются в состояниях ожидания
Сделанный :)

Как я узнаю, что это сделает что -то? Экран вращается быстрее, чем я могу видеть в любом случае, и я думаю, что я ограничен своими часами SPI на 32 МГц для этого?

Rogerclark
Вт 17 апреля 2018 г. 1:24
Часы SPI не изменятся

Программы просто бегут немного быстрее, я.e необработанная скорость вычисления увеличивается

Ахулл
Вт 17 апреля 2018 г., 3:24
: D Это оставляет только аппаратное обеспечение CAN/ODB для взлома, и у нас есть полный контроль. Это было немного проще, чем я ожидал. Я впечатлен.

Carl0s
Вт 17 апреля 2018 г. 10:40
[Ахулл - Вторник 17 апреля 2018 г. 3:24 утра] - : D Это оставляет только аппаратное обеспечение CAN/ODB для взлома, и у нас есть полный контроль. Это было немного проще, чем я ожидал. Я впечатлен.
: D

Я буду проследить приемопередатчик CAN и скорости LM393 в ближайшее время.

Учитывая, что PA11 и PA12 помечены как CAN TX/RX на Maple, *Но *, PA11 используется для LCD D/C на этой плате, я ожидаю решают как таковые.

LM393 будет входить в UART, для последовательных данных, похожих на K/L (ISO 9141), что хорошо, потому что, если я хочу какое-то подключение UART, я могу изменить этот IC или подключение на его месте.

Не похоже на то, что подключение к неиспользованным булавкам на GD32 будет возможным, потому что на LQFP64 настолько хорошо.

Я полагаю, было бы хорошо взглянуть на 2MB -вспышку, проверьте, что я могу читать/написать из нее. Может быть, получите растровую карту и отобразите его как картинку запуска на ЖК -дисплее.

Ахулл
Вт 17 апреля 2018 г. 14:38
Как ни странно, я собирался напомнить вам, что мы не сбросили 2MB Flash Chip.

Есть вероятность, что они удвоились на PIN PA11, так как дисплей будет игнорировать все, пока он не будет выбран, и они могут позволить себе приемопередатчику только тогда, когда это необходимо, но ваша идея, что они используют PD0 и PD1 больше вероятный. Какие булавки используют 2MB Flash?

Carl0s
Вт 17 апреля 2018 г., 20:13
[Ахулл - Вторник 17 апреля 2018 г. 14:38] - Как ни странно, я собирался напомнить вам, что мы не сбросили 2MB Flash Chip.

Есть вероятность, что они удвоились на PIN PA11, так как дисплей будет игнорировать все, пока он не будет выбран, и они могут позволить себе приемопередатчику только тогда, когда это необходимо, но ваша идея, что они используют PD0 и PD1 больше вероятный. Какие булавки используют 2MB Flash?
Я еще не уверен. Я полагаю, это будет i2c или spi это? Прошло много времени с тех пор, как мне пришлось прочитать чип eeprom. Как я упоминал ранее, мой Sofi SP8A не смог прочитать его в цикле. У меня есть зонд черной магии, хотя, и я считаю, что другой набор головных голов на этой печатной плате идут непосредственно к этому чипу, поэтому, если я выясню, что происходит (что-то держат низко или что-то в этом роде или что-то в этом роде) , тогда я должен быть в состоянии прочитать его через эти булавки, так как я ожидаю, как это запрограммировано на фабрике. PINS J2 Header для SWD-Debug для программирования MCU и штифтов J1 для программирования 2 МБ (это 2 Мбит или 2 мба. Я думаю, что это 2 МБ.. он говорит 25C16 или что -то в этом роде, 16 мегабитов).

Я также понял, что ничего не знаю об использовании внешней вспышки с Arduino. Ясно, что нет файловой системы I.эн. толстый или что -нибудь еще. Я полагаю, вы просто храните переменные в локациях адреса вручную и читаете их обратно, и это нанесло на карту внешнюю вспышку. Я все равно найду демо -код, чтобы попробовать.

Я еще не сделал трехстороннюю пробежку. Это ключевой, но легко !

У меня есть одно большое беспокойство, хотя. Вы знаете, что мой план состоит в том, чтобы использовать другую модель этой вещи - Autool X60, который находится в стиле калибра, а не в стиле POD. Что ж, я уверен, что это будет очень же то же самое внутри, но я не узнаю, пока он не прибудет из Китая, так как для него не было продавцов Великобритании, но смотри.. Этот экран явно 1: 1 квадрат, а не прямоугольник или 4: 3. Я волнуюсь, что после всех этих усилий по работе с LCD ST7789, ну, в конце концов, у него будет другая TFT-панель и чип драйвера:-/

Увидимся сами..

Изображение

Изображение

Кроме того, это, очевидно, совершенно новая часть комплекта, потому что единственное видео на YouTube, которое я мог бы найти для него, - это вчера и на русском языке:


Ахулл
Ср 18 апреля 2018 г. 10:43
25C16 звучит больше как 16 -кибитичный eEPROM https: // www.Бучек.Имя/PDF/24C16.PDF

Вот эскиз, который должен прочитать его и сбрасывать в серийный порт. Смотрите этот пост, если вы хотите узнать * почему * я недавно сбрасывал 24c16 eeproms. -> http: // stm32duino.com/viewtopic.PHP?F = 45&t = 3322

Я подозреваю, что это будет работать без каких -либо изменений, кроме как настройка правильного последовательного порта (по умолчанию использует USB -последовательный.
// -------------------------------------- // Modified i2c_scanner to find, dump and update a SOR/T SOR/R Dosimeter 24C16 EEPROM (and probably related devices). // to hack in missing features. // // See http://stm32duino.com/viewtopic.php?f=45&t=3322 // for more about hacking these devices // Latest code should be checked out with git sith something on the lones of... // git clone https://github.com/pingumacpenguin/SOR-T-SOR-R-Dosimeter-24C16-EEROM-dumper-and-updater..git // // The i2c scanner code came with the following comments. // Version 1 // This program (or code that looks like it) // can be found in many places. // For example on the Arduino.cc forum. // The original author is not know. // Version 2, Juni 2012, Using Arduino 1.0.1 // Adapted to be as simple as possible by Arduino.cc user Krodal // Version 3, Feb 26 2013 // V3 by louarnold // Version 4, March 3, 2013, Using Arduino 1.0.3 // by Arduino.cc user Krodal. // Changes by louarnold removed. // Scanning addresses changed from 0...127 to 1...119, // according to the i2c scanner by Nick Gammon // http://www.gammon.com.au/forum/?id=10896 // Version 5, March 28, 2013 // As version 4, but address scans now to 127. // A sensor seems to use address 120. // // // This sketch tests the standard 7-bit addresses // Devices with higher bit address will not be seen properly. // // Additional i2c hints from http://playground.arduino.cc/Code/I2CEEPROM // // This code was written for and teseted on and STM32F103C8T6 - the so called BluePill - see http://wiki.stm32duino.com/index.php?title=Blue_Pill // but should work pretty much unmodified on most 'duinos. // Thanks to the many coding giants, who's shoulders this sketch stands upon. // // The hexdump of the 24c16 will appear as a set of C++ byte Arrayson the STM32 USB serial device, or UART1, depending on the settings in the IDE. // See http://stm32duino.com for details of how the serial ports on the STM32F103XX devices are defined. // For connection to the EEPROM, you should be able to use a SOC8 clamp to connect without the inconvenience of soldering to the board. // WARNING: Do not leave the battery in the dosimeter and accidentally power it from the STLINK V2 or the USB port at the same time, the battery will pop. // Search Ebay for "SOIC8 SOP8 Flash Chip IC Test Clips Socket Adpter BIOS" or similar. // Include RTC for timestamps #include "RTClock.h" RTClock rt (RTCSEL_LSE); // initialise uint32 tt; // Define the Base address of the RTC registers (battery backed up CMOS Ram), so we can use them for config of touch screen and other calibration. // See http://stm32duino.com/viewtopic.php?f=15&t=132&hilit=rtc&start=40 for a more details about the RTC NVRam // 10x 16 bit registers are available on the STM32F103CXXX more on the higher density device. #define BKP_REG_BASE (uint32_t *)(0x40006C00 +0x04) // Time library - https://github.com/PaulStoffregen/Time #include "Time.h" #define TZ "BST" #include // Somne sane ish defaults in case the RTC battery has been disconnected or run flat. int thisYear = 2018; int thisMonth = 3; int thisDay = 28; int lastDay = 0; int thisHour = 12; int thisMinute = 0; int thisSecond = 0; // Set to a recent value - Wed March 28 1028 22:43 #define RESET_TO_TIMESTAMP 1522273406 #define BLINK_PIN PC13 // Unused.. Can be used to assist with debugging. #define BOARD_POWER PB9 // This can theoretically be used to power the 24c64 since the board draws a few miliamps. // In the end, I just opted to power the board from 3v3 directly, as this makes life easier. #define BOARD_WP PB8 // Pull down WP pin to allow us to write to the 24c64 void setup() { // Check time, and set a sensible time, if this board has no battery, or the time is unset long int tt = rt.getTime(); // Check to see if we are close to the epoch, and if so, bad things must have happened to the RTC backup power domain. if ( tt < RESET_TO_TIMESTAMP ) { rt.setTime(RESET_TO_TIMESTAMP); } // Allow the USB to re-enumerate before we attempt to talk. You can probably shorten this delay considerably. delay(15000); // Using the BluePill, or other STM32F103XX boards, PB6 is SCL => Pin 6 on the 24C02 // PB7 is SDA => Pin 5 on the 24C02 // PB8 is GPOI used to pull WP (Write Protect) (Pin7) low on the 24C02 to allow writing to the chip. // There is a pullup on WP on the Victor VC921 and probably most other devices, so we need to pull low to write. //pinMode(PB6,OUTPUT_OPEN_DRAIN); //pinMode(PB7,INPUT); // Power up the multimeter if connected to the BOARD_POWER //pinMode(BOARD_POWER, OUTPUT); //digitalWrite(BOARD_POWER, HIGH); //Enable writing to the eerom //pinMode(BOARD_WP, OUTPUT); //digitalWrite(BOARD_WP, LOW); Serial.println("// SOR/T SOR/R Dosimeter 24C16 EEROM dumper and updater."); //TwoWire Wire(PB6, PB7, SOFT_STANDARD); Wire.begin(); Serial.println("// Waiting for Device to POST and i2c Bus to settle."); delay(3000); } void loop() { byte error, address; int nDevices; serialCurrentTime(); Serial.println("//Scanning..."); nDevices = 0; for (address = 1; address < 127; address++ ) { // The i2c_scanner uses the return value of // the Write.endTransmisstion to see if // a device did acknowledge to the address. Wire.beginTransmission(address); error = Wire.endTransmission(); if (error == 0) { Serial.print("\n"); serialCurrentTime(); Serial.print("\n// I2C device found at address 0x"); if (address < 16) { Serial.print("0"); } Serial.print(address, HEX); Serial.println(" "); // Dump the current rom values, so we have somthing to fall back on if it all goes pear shaped. // NOTE: The 24c16 also contains calibration values, so should be unique to the dosimeter, simply pasting the hexdump from // one dosimeter to another will almost certainly screw up the calibration. dump24c02(address); // delay(1000); nDevices++; } else if (error == 4) { Serial.print("//Unknow error at address 0x"); if (address < 16) Serial.print("0"); Serial.println(address, HEX); } } if (nDevices == 0) Serial.println("//No I2C devices found\n"); else Serial.println("\n//Done.\n"); // Put any changes to bytes immediately after the dump, since that will ensure they hit the found i2c device. delay(60000); // Wait n seconds then re-scan. } void dump24c02(byte i2cAddress) { int hexDumpWidth = 0x10; int addrPointer = 0; //int romLength = 0xff; // 24c02 - 256x8 bits (256 bytes) int romLength = 0xff; // 24c04 - 512x8 bits (512 bytes) byte b = 0; // Spit out each 256 byte page of the eeprom contents as a byte array Serial.print("static const byte eeprom"); Serial.print(i2cAddress, HEX); Serial.println("[][0x10] ="); Serial.println("{"); while (addrPointer <= romLength) { if ((addrPointer % hexDumpWidth) == 0 ) { if (addrPointer == 0) { Serial.print(" {"); } else { Serial.print("} //0x0"); Serial.println(addrPointer, HEX); Serial.print(",{"); } } else { Serial.print(","); } b = i2c_eeprom_read_byte(i2cAddress, addrPointer); // Read byte addrPointer++; // increment address pointer Serial.print("0x"); if (b < 0x10) { Serial.print("0"); } Serial.print(b, HEX); // Print byte //Serial.print(","); } Serial.print("} //End of page 0x"); // Serial.print("// "); Serial.print((i2cAddress - 0x50), HEX); Serial.println(); if (!(addrPointer % hexDumpWidth)) { Serial.println("};"); } else { Serial.println(""); } } byte i2c_eeprom_read_byte( int deviceaddress, int eeaddress ) { //Wire.beginTransmission(deviceaddress & ((eeaddress & (int)0x100 ) >> 9)); Wire.beginTransmission(deviceaddress); Wire.write((int)(eeaddress & 0xff)); // Wire.write(address & 0xFF); //Wire.write((int)(eeaddress >> 8)); // MSB //Wire.write((int)(eeaddress & 0xFF)); // LSB Wire.endTransmission(); Wire.requestFrom(deviceaddress, 1); if (Wire.available()) { return Wire.read(); } else { return 0xff; } } void i2c_eeprom_write_byte( int deviceaddress, int eeaddress, byte data ) { digitalWrite(BOARD_WP, LOW); delay(100); int rdata = data; Wire.beginTransmission(deviceaddress); Wire.write((int)(eeaddress)); // Wire.write(rdata); Wire.endTransmission(); //digitalWrite(BOARD_WP, HIGH); } void serialCurrentTime() { long int tt = rt.getTime(); Serial.print("// Current time - "); if (hour(tt) < 10) { Serial.print("0"); } Serial.print(hour(tt)); Serial.print(":"); if (minute(tt) < 10) { Serial.print("0"); } Serial.print(minute(tt)); Serial.print(":"); if (second(tt) < 10) { Serial.print("0"); } Serial.print(second(tt)); Serial.print(" "); Serial.print(day(tt)); Serial.print("/"); Serial.print(month(tt)); Serial.print("/"); Serial.print(year(tt)); Serial.println("("TZ")"); }

Carl0s
Ср 18 апреля 2018 г. 10:47
Спасибо, Энди!

Что ж, дело в том, что в блоге в другом месте в Интернете показал V4.3 из этой печатной платы со всем идентичны, за исключением флэш -части, представляющая собой разлову S25FL216KIF, которая составляет 16 Мбит.
Однако моя доска (v4.4) Имеет деталь, помеченную C25Q16SN (или это может быть C25016SN). Я не могу найти информацию об этом p/n.

Carl0s
Ср 18 апреля 2018 г. 10:55 утра
Вот чип:

Изображение

Ахулл
Ср 18 апреля 2018 г. 10:57 утра
Ваше устройство в конце концов звучит больше как флеш. Вероятно, что -то похожее на серию S25FL2XX от Cypress -> https: // www.мышца.com/new/spansion/spansion-s25fl2xxk/
Эта тема может быть полезна -> ViewTopic.PHP?T = 1787

Carl0s
Ср 18 апреля 2018 г. 11:02
Вы можете увидеть картинку из этого другого блога здесь.

Как видите, моя часть физически меньше, но припаяна к тем же прокладкам (отсюда и большие серебряные дорожки печатных плат, показывающие рядом с ногами IC), а также белая линия показывает, что изначально предполагается более широкий чип , как на фото другого человека.

Моя часть:
Изображение

Изображение

Часть другого человека:
Изображение


Вы могли бы подумать, что детали совместимы с PIN.. может быть. Если они не используют разные настройки программного обеспечения. Мой больше похож на размер i2c eeprom или что -то в этом роде. В то время как другая часть сериала выглядит широко, как флэш -память.

Ахулл
Ср 18 апреля 2018 г. 11:24
Похоже, этот зверь здесь.-> https: // www.Qdatasheet.com/pdf/spansion/185048.PDF

Carl0s
Ср 18 апреля 2018 г. 11:45
[Ахулл - Ср 18 апреля 2018 г. 11:24] - Похоже, этот зверь здесь.-> https: // www.Qdatasheet.com/pdf/spansion/185048.PDF
Интересно, но моя физически меньшая часть совместима?

Ахулл
Ср 18 апреля 2018 12:15
[Carl0s - Ср 18 апреля 2018 г. 11:45] -
[Ахулл - Ср 18 апреля 2018 г. 11:24] - Похоже, этот зверь здесь.-> https: // www.Qdatasheet.com/pdf/spansion/185048.PDF
Интересно, но моя физически меньшая часть совместима?
Да, я подозреваю, что это.

Устройство поставляется в двух разных пакетах, если вы посмотрите на конец таблицы, вы увидите, что оно доступно как оба ...

8-контактный SOIC 150-мильный пакет (SOA 008) (около 6 мм между противоположными подушками)

и

8-контактный SOIC 208-мильный пакет (SOC 008) (около 8 мм между противоположными подушками)

Точные размеры в таблице данных.
Проблема в том, что у вашего клипа на адаптере могут возникнуть проблемы с тем, что меньшая часть. Вы все равно должны быть в состоянии прочитать данные напрямую с помощью GD32, очевидно,.

Carl0s
Чт 19 апреля 2018 г., 11:07
[Ахулл - Ср 18 апреля 2018 12:15] -
[Carl0s - Ср 18 апреля 2018 г. 11:45] -
[Ахулл - Ср 18 апреля 2018 г. 11:24] - Похоже, этот зверь здесь.-> https: // www.Qdatasheet.com/pdf/spansion/185048.PDF
Интересно, но моя физически меньшая часть совместима?
Да, я подозреваю, что это.

Устройство поставляется в двух разных пакетах, если вы посмотрите на конец таблицы, вы увидите, что оно доступно как оба ...

8-контактный SOIC 150-мильный пакет (SOA 008) (около 6 мм между противоположными подушками)

и

8-контактный SOIC 208-мильный пакет (SOC 008) (около 8 мм между противоположными подушками)

Точные размеры в таблице данных.
Проблема в том, что у вашего клипа на адаптере могут возникнуть проблемы с тем, что меньшая часть. Вы все равно должны быть в состоянии прочитать данные напрямую с помощью GD32, очевидно,.
Спасибо, Энди. Я должен быть в состоянии взглянуть на это сегодня вечером!

Carl0s
Чт 19 апреля 2018 г., 21:13
[Carl0s - Чт 19 апреля 2018 г. 11:07] -
[Ахулл - Ср 18 апреля 2018 12:15] -
[Carl0s - Ср 18 апреля 2018 г. 11:45] -

Интересно, но моя физически меньшая часть совместима?
Да, я подозреваю, что это.

Устройство поставляется в двух разных пакетах, если вы посмотрите на конец таблицы, вы увидите, что оно доступно как оба ...

8-контактный SOIC 150-мильный пакет (SOA 008) (около 6 мм между противоположными подушками)

и

8-контактный SOIC 208-мильный пакет (SOC 008) (около 8 мм между противоположными подушками)

Точные размеры в таблице данных.
Проблема в том, что у вашего клипа на адаптере могут возникнуть проблемы с тем, что меньшая часть. Вы все равно должны быть в состоянии прочитать данные напрямую с помощью GD32, очевидно,.
Спасибо, Энди. Я должен быть в состоянии взглянуть на это сегодня вечером!
Просто попытаюсь снова с моим SP8A, чтобы прочитать SPI Flash. Вы правы, что зажимная вещь не очень хорошая, но (согласно иностранному сообщению в блоге) булавки SPI разбиты на J1 от печатной платы.

Carl0s
Чт 19 апреля 2018 г., 21:43
Ооо, это интересно.

Заголовок J1 на печатной плате вообще не переходит на вспышку.

J1 - это 4 -булавый заголовок (ну, это после того, как вы припаили к себе заголовки..)

PIN1 = GND
PIN2 = ничего (это пойдет на коллектор отсутствующего транзистора Q5. Я собираюсь проследить, куда может привести B/E.)
PIN3 = PB10
PIN4 = PB11

Это означает, что PB10 и PB11 разбиты на заголовок J1!
Это часы и данные I2C-2, или USART3 TX и RX. Они могут быть перенесены на TM2 CH3 и CH4.

Таким образом, это означает, что у нас есть UART, доступный для использования сразу на плате без необходимости удалять линию линии K/L. Это отличная новость.


Что касается SPI Flash:
PIN 1 (CS) переходит в PB0
PIN 2 (MISO) отправляется в PA6
PIN 3 (WP) показывает, как переход на VDD, так что высокий. Не уверен в последствиях этого, не чтение таблицы данных. Пока смотрели только на расписки.
PIN 4 - GND
PIN 5 (MOSI) идет в PA7
PIN 6 (SCLK) переходит в PA5
PIN 7 (Hold) переходит в VDD. Опять не уверен, что это делает.
PIN 8 - VCC.

Таким образом, он подключен к SPI1 в соответствии с таблицей данных GD32. Должно быть все хорошо!

Я думаю, что мой следующий шаг будет состоять в том, чтобы подключиться к UART3 и получить что -то на моем терминале, возможно, отобразить вещи на ЖК -дисплее.

Carl0s
Чт 19 апреля 2018 г., 22:06
Выпрямить заголовки, глядя с вершины доски, где находится гнездо ЖК -дисплеев FFC, с зуммером справа внизу.

J2
1 (слева) - swdio
2 - SWDCLK
3 - GND
4 (справа)- VDD

Прата нуждается в внешней мощности, чтобы использовать Stlink, хотя. VDD должен быть просто подключен к выводу «Целевой выявление VCC» STLINK (PIN № 1)

J1
1 (вверху) - GND
2 - ничего
3 - PB10
4 (внизу) - PB11

С платой все еще в той же ориентации, 3 -й путь переключателя / пробежки велосипеда:

Поверните влево: PC14
PUSH Middle: PC15
Поверните вправо: PC13

Carl0s
Пт 20 апреля 2018 г. 12:09
Serial3 просто работает. Нет изменений нигде. ура.


Ахулл
Пт 20 апреля 2018 г. 8:00 утра
Аккуратный. Это просто оставляет вспышку декодировать и интерфейс ODB II для De-Cypher. Довольно хороший прогресс за несколько дней, учитывая, что мы ничего не знали об этом.

Сериал будет намного проще отладкой кода. : D

Интересно, есть ли что -нибудь интересное из серийных булавок нетронутого устройства.

Carl0s
Пт 20 апреля 2018 г. 8:21
[Ахулл - Пт 20 апреля 2018 г., 8:00 утра] - Аккуратный. Это просто оставляет вспышку декодировать и интерфейс ODB II для De-Cypher. Довольно хороший прогресс за несколько дней, учитывая, что мы ничего не знали об этом.

Сериал будет намного проще отладкой кода. : D

Интересно, есть ли что -нибудь интересное из серийных булавок нетронутого устройства.
Ага :)

Мне было интересно то же самое о оригинальном устройстве. К сожалению, я вернул его (тот, который я заказал после того, как случайно стерт этот) в Amazon после того, как очень тщательно проверил, смогу ли я сбросить его программное обеспечение (я не смог, потому что защита считывания была включена).

Когда наступит версии x60, я обязательно проверю.

Ахулл
Пт 20 апреля 2018 г., 14:52
Кстати, мы что -нибудь выяснили о чипе «загадки», я думаю, что это был U5, тот, у кого не было написано на нем?

Знаем ли мы, какие булавки на нем идут туда?

Carl0s
Пт 20 апреля 2018 г. 16:57
[Ахулл - Пт 20 апреля 2018 г. 14:52] - Кстати, мы что -нибудь выяснили о чипе «загадки», я думаю, что это был U5, тот, у кого не было написано на нем?

Знаем ли мы, какие булавки на нем идут туда?
Это верно, u5. Нет, я еще не смотрел на это.

Мой зонд черной магии прибыл сегодня. Я не знаю, что с ним делать, кроме как использовать его вместо моей ссылки на ST V2, и вместо USB -TTL Converter. Я думаю, что это делает оба в одном.

Мне все еще нужно посмотреть это видео Hackaday в отладке, которое разместил Рик.

Carl0s
Сб 21 апреля 2018 г. 10:18
[Рик Кимбалл - Солнце 15 апреля 2018 г. 18:05] -
[Carl0s - Солнце 15 апреля 2018 г. 13:51] - Я собирался попробовать какой -нибудь код, чтобы изменить яркость экрана на основе LDR, но без серийной консоли я не знаю, какие цифры возвращаются из анализа (LDR_PIN), поэтому я не знаю, какие математики делать Для аналога с TFT_LED.

Я подхожу к этому правильно? Должен ли я вернуться к нему, когда у меня будет серийная консоль?
Вы можете использовать своего программиста Stlink в качестве отладчика и посмотреть на значения в Arm-none-ebi-gdb ... AL из Hackaday сделал хорошее видео, описывающее, как сделать базовую отладку.

https: // www.YouTube.com/watch?V = D-MBC9N5U7O
Черт возьми, это круто. Мне просто нужно попытаться сделать это с моим BMP, а также посмотреть, как это интегрирует. Работа на завтрашний дождливый день.

Спасибо, что опубликовали это.

Carl0s
Солнце 22 апреля 2018 12:42
ОК, загадочный чип все еще загадка.

Я не думаю, что разгоды соответствуют каким -либо видам i2c eeprom, и при этом контакты MCU не совпадают с какими -либо подсказками в таблице данных GD32.

Это так:
1-VCC GND-8 2- -7 3- PC8-6 4-PC7 PC9-5

Carl0s
Солнце 22 апреля 2018 13:05
TJA1050 CAN приемопередатчик подключен к PB8 для CAN-RX (IC PIN 1 = TXD) и PB9 для CAN-TX (IC PIN 4 = RXD).

Резистор для конец линии 120 Ом присутствует на контактах IC 6 и 7 (Can High и CAN LOW). Это R16. Для некоторых проектов, где вы нюхаете существующий автобус, я думаю, вы хотели бы удалить этот резистор.

Carl0s
Солнце 22 апреля 2018 г., 13:23
LM393 для K-line подключен к UART1 через PINS PA9 и PA10

Изображение

Я должен признать, я не понимаю, как работает эта вещь.

В своем собственном проекте я использовал St9637D для UART <-> K-Line.

Несмотря на это, вы можете просто настроить UART1 на 10400 б.п.

Carl0s
Солнце 22 апреля 2018 г. 15:35
SPI Flash работает нормально с LowpowerLabs Spiflash Library.

Я потратил много времени, почесывая голову, когда это не сработало, потому что у меня был #include spi.h до #include spiflash.час

Это работает, только если вы #include spiflash.H до SPI.час

Изображение

Я собираюсь попробовать это с последовательной библиотекой Пола С (Teensy).


Вы видели этот интерфейс ? Я хочу это! Все написано вокруг UTFT, хотя.

Carl0s
Солнце 22 апреля 2018 г., 16:13
Я подумал, что было бы полезно попробовать еще раз сделать резервное копирование исходного содержимого вспышки SPI, прежде чем его стереть.

Я наконец смог прочитать его в цикле с Sofi SP8A, выбрав тип устройства: Winbond W25X16V [ISP]. Вы должны выбрать определение чипа, в котором говорится [ISP], в противном случае оно настаивает на том, что что -то помещается в сокет Zif. Не было никаких определений чипа сепения, в которых говорилось [ISP], поэтому я пошел с 16 -метровым Winbond из 25 -кратной серии, которую я прочитал Сопоставьте лист данных Spansion.

Я позаботился о том, чтобы доска уже работала, но не с чем -либо, что использовало SPI1, так что ISP не пытался привлечь MCU и все остальное.

Вы можете увидеть много струн, связанных с диагностикой автомобилей, на свалке. Я ожидаю, что это просто список кодов и их описаний. Я должен попробовать Binwalk на нем, хотя.

Вот файл: http: // www.InternetSome.com/autool ... 16 Мбит.бин

Изображение

Carl0s
Солнце 22 апреля 2018 г., 17:15
Нашел их в конце флеш -дампа.

Изображение


немного возиться в MS Paint...

Изображение

Rogerclark
Солнце 22 апреля 2018 г., 22:15
[Carl0s - Солнце 22 апреля 2018 12:42] - ОК, загадочный чип все еще загадка.

Я не думаю, что разгоды соответствуют каким -либо видам i2c eeprom, и при этом контакты MCU не совпадают с какими -либо подсказками в таблице данных GD32.

Это так:
1-VCC GND-8 2- -7 3- PC8-6 4-PC7 PC9-5

Carl0s
Солнце 22 апреля 2018 г. 22:19
[Rogerclark - Солнце 22 апреля 2018 г. 22:15] -
[Carl0s - Солнце 22 апреля 2018 12:42] - ОК, загадочный чип все еще загадка.

Я не думаю, что разгоды соответствуют каким -либо видам i2c eeprom, и при этом контакты MCU не совпадают с какими -либо подсказками в таблице данных GD32.

Это так:
1-VCC GND-8 2- -7 3- PC8-6 4-PC7 PC9-5

Rogerclark
Солнце 22 апреля 2018 г. 22:20
ПК7 ???

Carl0s
Солнце 22 апреля 2018 г., 22:22
[Rogerclark - Солнце 22 апреля 2018 г. 22:20] - PC7 ???
Извините, я ударил, отправлено случайно, прежде чем закончить ;)

Rogerclark
Солнце 22 апреля 2018 г., 22:27
Ржу не могу

Ахулл
Пн 23 апреля 2018 г., 4:24
Эта графика предполагает, что это устройство тоже является близким относительно -> http: // carpro.компонент.мой/магазин/индекс.PHP/EAS ... рассеянный.HTML

Carl0s
Пн 23 апреля 2018 12:12
[Ахулл - Пн 23 апреля 2018 г., 4:24] - Эта графика предполагает, что это устройство тоже является близким относительно -> http: // carpro.компонент.мой/магазин/индекс.PHP/EAS ... рассеянный.HTML
Ага :)

Ахулл
Пн 23 апреля 2018 г. 15:52
Кстати, у меня была быстрая игра с этим флэш -изображением, используя преобразование ImageMagic.

Я не стал намного дальше вас, но я подозреваю, что в этом изображении флеш -микросхема есть больше графических «вещей».

Это некоторые из «изображений», которые я извлекал с помощью преобразования ....
convert -depth 8 -size 320x240 bgr:autool-x50-16mbit.bin -roll +240+32 out2.png

Rogerclark
Пн 23 апреля 2018 г., 21:22
Похоже, что изображение на самом деле несколько разных изображений.

Потому что, хотя количество пикселей на строку, если то же самое для всех частей этого изображения, начальный адрес следующей части изображения не является непосредственно после конечного адреса предыдущего изображения.

Я бы предложил, возможно, есть небольшой заголовок для каждого изображения, но я могу’не вижу никаких доказательств этого на фотографиях, но, возможно, я просто могу’это не вижу этого

Carl0s
Вт 24 апреля 2018 г. 1:14
Да, похоже, есть какие -то другие графические данные какого -то рода.

Раньше была вещь, называемая повторным действием на Amiga. Это было похоже на аппаратный отладчик, который мог бы снять все, что работало в системе. Действительно круто. Вы можете просмотреть оперативную память и найти изображения, а также номера закладок и посмотреть, изменились ли они (когда ваш счет изменился в игре, например,.. Чтобы найти, где хранился счет в оперативной памяти, и изменить), а также сохранить состояние работы машины и т. Д.

Во всяком случае, это то, о чем я думал, когда обнаружил тот инструмент 7yuv, который позволил мне сканировать через .бин/.гекс визуально. Интересно, есть ли другие/лучшие инструменты? Это было в порядке. неуклюжий интерфейс и не справился с моим экраном Hidpi. Я думаю, что смогу преодолеть проблему DPI, так как я играл с настройками APP-DPI в подготовке к гаджету, который я заказал прошлой ночью: Dslogic Plus (тот, у кого больше 256-метрового буфера на борту). 16 каналов, надеясь, действительно полезного логического анализатора для 86 Quid. Боже, я бы хотел быть одиноким.



Rogerclark
Вт 24 апреля 2018 г. 1:39
HXD - хороший редактор общего назначения, но он не просматривает изображения и т. Д

Carl0s
Вт 24 апреля 2018 г. 1:42
[Rogerclark - Вт 24 апреля 2018 г. 1:39] - HXD - хороший редактор общего назначения, но он не просматривает изображения и т. Д
Да, у меня есть это установлено, но я специально искал что -то, чтобы визуализировать. Эта программа 7yuv работала просто отлично. Сначала я мог видеть изображение, но цвета были странными, поэтому я изменил цветовой формат. Было бы неплохо иметь возможность изменить начало/конец, вроде как ширина/маржа. При просмотре автомобильных дистанций ECU с Winols (для поиска карт) вы можете делать все эти вещи (исправить ширину и запустить/заканчивать размер/форма правильно), и это визуализирует вещи для вас, чтобы вы могли найти таблицы данных карты. Это дорогая программа для того, что она делает.

Sheepdoll
Вт 24 апреля 2018 г., 3:22
Позитц (язык печати, который я использую для сценариев) довольно хорош в диаграмме бинарных последовательностей ASCII.

На форумах AVR Freaks я смог использовать GhostScript, чтобы декодировать закодированные численные состояния смешанной графики/сегментного дисплея с Yamaha PSR 620. https: // www.Avrfreaks.net/forum/yamaha- ... D-LCD Dead Это было намного сложнее, так как у меня было только несколько снимков экрана в этой теме, чтобы работать с.

У меня не было времени, чтобы посмотреть на этот бинар, чтобы увидеть, есть ли что -нибудь интересное на свалке этого устройства OBD. Я все еще пытаюсь найти время, чтобы попробовать дешевый (как бесплатно) нестандартный дисплей TFT, который я получил от выставки много лет назад на STM32.

РЕДАКТИРОВАТЬ: Я открыл корзину в шестнадцатеричном редакторе, и в нем довольно много текстовых строк. Вот где PostScript пригодится, так как он может отделить текст от двоичного. Глядя на дамп, он не выглядит слишком непохожим на другие вещи, которые я сбросил, например, ленты для данных Mars Mairner9. Часто в подобных таблицах существует смещения указателей в другие области кода/данных. Поскольку в графике логотипа есть выравнивание, это было бы легко обработать. Текстовые таблицы могут быть сброшены, чтобы увидеть, находятся ли они в связанном списке или массив фиксированной длины или нулевой укусы. Обратите внимание, что строки в стиле Паскаля с байтом длины являются формой связанного списка.

Ахулл
Вторник 24 апреля 2018 г. 13:03
Извлечение текста относительно проста от Linux, используя Grep, например, мы можем получить все коды PXXXX с ..
strings autool-x50-16mbit.bin |grep "^P[0-9][0-9][0-9][0-9]" >PXXXX_Codes.txt

Ахулл
Вт 24 апреля 2018 г. 15:41
Я подозреваю, что первая таблица струн pxxxx просто такая же, как и вторая, но в другом наборе символов и языке, возможно, упрощенном китайском или любом языке, который используется в стране производства.

@carl0s предлагает устройство более одного языкового варианта?

Sheepdoll
Вт 24 апреля 2018 г., 18:15
Can Grep Rander Unicode? PostScript Can, я делал некоторое невежественное тестирование обезьян, не римских наборов PostScript, в Apple. По сути, нам просто нужно было убедиться, что ссылка на язык PostScript (Redbook) была правильной, когда дело дошло до рисования глифов.

Я замечаю, что по адресу 0x13f45f последовательность начинается с 0x20, который является пространством, а текстовое поле заканчивается пространством. Данные, которые следуют. Следующее пространство - 0x13F480, тогда есть <Герметичный><LF> и пространство. <Герметичный><LF> часто и конец линии или конец последовательности. Остальным кодам P, кажется, предшествует <Герметичный><LF>. Первый в 0x13F45F не является, так что это, вероятно, представляет собой конец записи.

Когда мы спускаемся до 0x14D3B3, струны, кажется, не содержат набор высоких битов. Этот шаблон, кажется, заканчивается на 0x159402 с EOL. Прошло 20 лет с тех пор, как я работал с не римской графикой. Так что мне пришлось бы прочитать главы о таких.

Один из других проектов, с которыми я работаю, - это эмуляция терминала с символами рисования коробки. Такое использовалось в старом MIDI Gear для показа настройки значения. Поскольку я не головка двигателя, я не знаю, сделаны ли такие вещи. Я знаю, что когда я езжу с родителями Prius, это похоже на загрузку компьютера, чтобы запустить, и у него есть все виды гистограммы. У моей собственной Honda есть намного больше на дисплее, чем часы или резервная камера.

Мне интересно, можно ли использовать такие вещи, скажите интерфейс Java. ST делает действительно дорогой комплект для разработки Java для STM32. Я дошел до скачивания демонстрации игр. Эмулятор MIDI Organs написан на Java (почему он называется Jorgan), просто синий лыж здесь, так как легко создавать графические виджеты Java. Что -то, что можно было протестировать/эмулировать на дешевой платформе.

С другой стороны, есть библиотеки, такие как STEMWIN One, которые представители ST стремится к усилиям на торговых семинарах. Это может быть более вероятно.

Я думаю, что это пробудило мою слабость к данным разбора. Возможно, я напишу сценарий, чтобы пережить некоторые из этих данных...

РЕДАКТИРОВАТЬ: Я сделал несколько онлайн -поиска обратного изображения, поиск руководства по владельцам. Похоже, что некоторые из этого текста - экраны меню, такие как Yamaha PSR MIDI -клавиатура. Я нашел одно видео на You Tube, в котором показан пункт меню «Раздел». Это только показало en. Веб -сайт в ссылках показывает, что цена в малазийской валюте. Tineye и Google находят аналогичные дисплеи, а другие ищут ссылки на владельцы/пользовательские ручные ссылки.

Эти вещи довольно дешевы, я думаю, что они продают высокий объем достаточно, чтобы справиться с формами впрыска и некоторых приличных графических дизайнеров. Интересно контрастировать с MIDI Gear, которая находится в простых стальных коробках, цена и по цене по весу и количеству ручек и Blinkelights.

Sheepdoll
Ср 25 апреля 2018 г., 3:21
COBD18424.jpg
COBD18424.JPG (145.59 киб) просмотрено 229 раз

Ахулл
Ср 25 апреля 2018 г., 3:23
@Sheepdoll, можно Грип, скажем, UTF8 с некоторым умным хитростью.

Например ... grep --text --color='auto' -P -n "[\x80-\xFF]" autool-x50-16mbit.bin |grep -a "P[0-9][0-9][0-9]"

Sheepdoll
Ср 25 апреля 2018 г., 7:17
[Ахулл - Ср 25 апреля 2018 г. 3:23] - @Sheepdoll, можно Грип, скажем, UTF8 с некоторым умным хитростью.
...
Также возможно, что символы с высоким набором битов просто сопоставьте символы выше 128 в шрифте, которые, как мы предполагаем.
Из того, что я смог найти в онлайн -документации, языки английские французские и испанские.

Глядя на общую картину с PostScript, я не смог найти какую -либо графику в передней части файла. Это похоже на шрифт или значок, но я не могу найти цветового пространства, которое имеет смысл. Повторение составляет 72 байт 8 -битных пиксельных серого шкалы. Это рисунок:
COBD1824B.JPG
COBD1824B.JPG (47.52 киб) просмотрено 162 раза

Ахулл
Ср 25 апреля 2018 г., 7:48 утра
Я попробовал очевидное и просто пошел на глубину 1 BPP и GreyScale со следующей командой.
convert -depth 1 -size 320x240 gray:autool-x50-16mbit.bin -roll +240+32 out2.png

Sheepdoll
Ср 25 апреля 2018 г., 7:53
Глупый я (ну, уже поздно), как только я начну на возврат, я реализуемые шрифты - битмаски, поэтому я переоделся на оператор маски 1 бит пикселя, и я получил это:
COBD18425A.JPG
COBD18425A.JPG (26.98 киб) просмотрено 157 раз

Ахулл
Ср 25 апреля 2018 г. 7:56 утра
Больше испорченного предполагает, что есть какой -то азиатский набор Char, но я не получаю совместимости совершенно правильно. convert -depth 1 -size 160x240 gray:autool-x50-16mbit.bin -roll +240+32 out2.png

Ахулл
Ср 25 апреля 2018 г. 8:11
Я попробовал это...
convert -depth 1 -size 8x480 gray:autool-x50-16mbit.bin out2.png

Ахулл
Ср 25 апреля 2018 г. 8:23
convert -depth 1 -size 8x72 gray:autool-x50-16mbit.bin out2.png

Carl0s
Ср 25 апреля 2018 г. 8:26 утра
Интересная работа :-)

Я полагаю, было бы хорошо получить изображение в шестигранке, я.эн. С спецификацией четкого запуска, конца и формата, тогда можно заменить изображение на свой собственный выбор логотипа. Интересно, хранятся ли они как просто растровые массивы, или они являются файлами в какой -то файловой системе?

Я пока не остановился на проекте, потому что, в основном, у меня есть то, что я хотел - оборудование открыто! Я полагаю, я мог бы выполнить надлежащую работу по документированию - надлежащие диаграммы.

Мне нужно посмотреть, можно ли использовать круглую версию (x60), имеет тот же контроллер дисплея и т. Д., Поэтому я буду повторяться с этим, когда он наконец прибудет, но, кроме этого, теперь у меня есть большой проект обучения Как сделать хорошую систему меню графического интерфейса с нуля. Если бы было больше часов в день.

Ахулл
Ср 25 апреля 2018 г. 8:54 утра
Хм.. Это кажется очень неэффективным методом хранения шрифта.

Я взял первые 256 байт этой флеш -дампы. dd if=autool-x50-16mbit.bin of=chunk.bin bs=256 count=1

Ахулл
Ср 25 апреля 2018 г. 9:11
[Carl0s - Ср 25 апреля 2018 г. 8:26] - Интересная работа :-)
... это заставляет меня развлекать : D Я полагаю, было бы хорошо получить изображение в шестигранке, я.эн. С спецификацией четкого запуска, конца и формата, тогда можно заменить изображение на свой собственный выбор логотипа. Интересно, хранятся ли они как просто растровые массивы, или они являются файлами в какой -то файловой системе? Повторное использование существующих шрифтов в вашем собственном проекте, и замена существующих изображений должно быть довольно простым. Там нет никакой файловой системы. Как вы можете видеть из моего предыдущего поста, первый шрифт начинается в начале файла Flash. Где -то в свалке можно спрятать некоторые указатели, указывая на каждую из кусков данных, но я подозреваю, что указатели (были) в прошивке. Я пока не остановился на проекте, потому что, в основном, у меня есть то, что я хотел - оборудование открыто! Я полагаю, я мог бы выполнить надлежащую работу по документированию - надлежащие диаграммы.

Мне нужно посмотреть, можно ли использовать круглую версию (x60), имеет тот же контроллер дисплея и т. Д., Поэтому я буду повторяться с этим, когда он наконец прибудет, но, кроме этого, теперь у меня есть большой проект обучения Как сделать хорошую систему меню графического интерфейса с нуля. Если бы было больше часов в день.
Могут быть некоторые существующие библиотеки GUI Arduino, которые вы можете переоценить. У вас также есть роскошь много вспышки, чтобы поместить вещи, так что вы сможете сделать довольно профессиональную работу. : D Нечего сказать, что вам нужно сохранить какие -либо существующие шрифты или изображения, так как у нас теперь есть свалку.

Carl0s
Ср 25 апреля 2018 г., 10:14
[Ахулл - Ср 25 апреля 2018 г. 9:11]] -
Могут быть некоторые существующие библиотеки GUI Arduino, которые вы можете переоценить. У вас также есть роскошь много вспышки, чтобы поместить вещи, так что вы сможете сделать довольно профессиональную работу. : D Нечего сказать, что вам нужно сохранить какие -либо существующие шрифты или изображения, так как у нас теперь есть свалку.
Да, я хочу сделать это так: https: // форумы.Адафрут.com/viewtopic.PHP?F = 19&T = 134574

Я скоро начну на это..

Ахулл
Ср 25 апреля 2018 г. 10:47
Есть ряд систем меню для Arduino, но в последний раз, когда я смотрел, им всем не хватало приличного набора виджетов, и в результате, хотя все они, без сомнения, работали в большей или меньшей степени, все из тех, которые я нашел, выглядел немного примитивным.

Поскольку у вас есть большая часть вспышки, с которой вы должны играть, вы сможете создать что -то более профессиональное.

Это, вероятно, должно быть в отдельной теме, но кто -нибудь знает о красивой системе меню для Arduino?

Carl0s
Ср 25 апреля 2018 г. 11:09
Я сделал тщательный поиск. Есть несколько интересных вещей для ЖК -дисплеев на основе персонажа. Я думаю, мне придется разобраться с этим сам.

Sheepdoll
Ср 25 апреля 2018 г., 21:52
У меня есть первый кусок файла, который выяснит. Маска шрифта находится на сетке 24x24 каждый глиф составляет 72 байта.

Вот первые несколько языков, начиная с байта 0, нанесенных на сетку 25x25. Я решил оставить маску перевернутой, белые фоновые пиксели между каждой маской не являются частью файла. Они были нарисованы оператором PostScript 'ImageMask, с интерполяцией True. часть механизма шрифта Type3 (растрового карты).
COBD18424C.JPG
COBD18424C.JPG (117.96 киб) просмотрено 263 раза

Ахулл
Чт 26 апреля 2018 г., 3:55 утра
Отличная работа : D Я как бы понял, было 72 байта на глиф, но вы, кажется, решили остальную часть головоломки.
Код PostScript для сброса шрифтов составляет около 200 строк. Если есть интерес, я могу опубликовать его в свой GIT или загрузить здесь (вероятно, в отдельном потоке.) Да, мне было бы интересно посмотреть, как это работает.

Rogerclark
Чт 26 апреля 2018 г., 4:00 утра
Ребята

Когда у меня будет время, я собираюсь разделить эту ветку

Это началось как новый пользовательский пост, но, похоже, «автомобильный компьютер», так что было бы лучше, если бы я (каким -то образом) разделил несколько первых постов от остальной части потока и создать новую тему, называемую чем -то вроде автомобильного компьютера GD32

Ахулл
Чт 26 апреля 2018 г., 4:06
[Rogerclark - Чт 26 апреля 2018 г., 4:00 утра] - Ребята

Когда у меня будет время, я собираюсь разделить эту ветку

Это началось как новый пользовательский пост, но, похоже, «автомобильный компьютер», так что было бы лучше, если бы я (каким -то образом) разделил несколько первых постов от остальной части потока и создать новую тему, называемую чем -то вроде автомобильного компьютера GD32
Хороший ход, может быть, «взломать монитор Autool X50 obd2 и диагностический дисплей на основе GD32» (и близких родственников) »
Это должно содержать достаточно ключевых слов, чтобы покрыть тему, я думаю.

Rogerclark
Чт 26 апреля 2018 г., 4:31
Спасибо, Энди,

Я сейчас от времени резко заработаю БД !

Rogerclark
Чт 26 апреля 2018 г., 4:39 утра
На самом деле

Посмотрите на ветку, я собираюсь переместить все и изменить заголовок, так как в первом сообщении есть множество формирования и фотографий

Редактировать. Вся тема перешла на проекты

Примечание. Я не могу сделать партию изменить названия ответов, поэтому я только что изменил некоторые из них вручную e.глин. Сообщения в начале этой темы и положения на этой странице

Rogerclark
Чт 26 апреля 2018 г., 4:45
КСТАТИ.

Интересно, с тех пор, как этот дисплей работал с GD32, возможно, некоторые недавние изменения в LIBS SPI или ILI9341 теперь позволили бы моим доскам GD32 работать с дисплеем ILI9341

Когда я получу время, я подключу его и посмотрю, работает ли это

Sheepdoll
Чт 26 апреля 2018 г., 7:54 утра
[Ахулл - Чт 26 апреля 2018 г. 3:55] - Отличная работа : D Я как бы понял, было 72 байта на глиф, но вы, кажется, решили остальную часть головоломки.
Код PostScript для сброса шрифтов составляет около 200 строк. Если есть интерес, я могу опубликовать его в свой GIT или загрузить здесь (вероятно, в отдельном потоке.) Да, мне было бы интересно посмотреть, как это работает.
Сейчас довольно поздно, так что я, вероятно, очистилю код и опубликую его завтра. Я определил все смещения в шрифты. Есть довольно много всей первой части вспышки. Сначала есть страница, которую я загрузил. Немного пустого места, затем 10 страниц китайских шрифтов.
Затем вся эта последовательность повторяется в жирном лице (более толстые линии.)
После этого станет грязно. Это стандартные шрифты Roman Sans Serif в постепенно больших размерах.
Часть, над которой я сейчас работаю, - это 10 больших чисел. Это единственная часть, где есть данные 0x78 между каждым глифом. Есть также большой знак минус, который не выравнивается.

После 10 цифр - значки. Затем начинается текст. Я сейчас работаю над значками. Возникают проблемы с поиском начального байта в разделе «Неосказанный» после 10 цифр. Похоже, они 32 бита в поперечнике, они могут отличаться по высоте. (Это после полуночи, поэтому я собираюсь назвать это днем.)

Ахулл
Чт 26 апреля 2018 г., 9:17
Инструмент, который использовал Ahull, может также использоваться для извлечения глифов, теперь, когда мы знаем, что они 24 x 24 x 1 бит. На самом деле ему удается извлечь большое количество глифов как индивидуальные .PNG -файлы
Если кто -то хочет попробовать это для себя, волшебное заклинание... convert -depth 1 -size 24x24 gray:autool-x50-16mbit.bin out2.png

ZMEMW16
Чт 26 апреля 2018 г., 11:26
Когда я был на работе, теперь некоторое время назад я столкнулся с редактором SweetScape 010.
Выполнять много разлагающихся структур файлов данных, задаваясь вопросом, может ли это использовать/интересуйте.
Есть двоичные файлы для всех платформ, и я, кажется, вспоминаю, что это неограниченное, может быть :(

Я получил свою собственную копию, так как я использовал ее на/для работы, работа Istr также купил копию.

Стивен

Carl0s
Чт 26 апреля 2018 12:11
[Rogerclark - Чт 26 апреля 2018 г., 4:45]] - КСТАТИ.

Интересно, с тех пор, как этот дисплей работал с GD32, возможно, некоторые недавние изменения в LIBS SPI или ILI9341 теперь позволили бы моим доскам GD32 работать с дисплеем ILI9341

Когда я получу время, я подключу его и посмотрю, работает ли это
Я не знаю, нормально ли это, и помню, что я был на SPI2, с: SPIClass mySPI(2);

Ахулл
Чт 26 апреля 2018 12:44
Это может быть ошибкой, но я буду отдавать экспертам.

Кстати, вот немного развлечения шрифта... первые 1410 глифы от шрифтов.

Я бы включил все 29128 из них в один GIF, но есть ограничение размера в файлах, которые я могу загрузить здесь, поэтому я пропустил все китайские и более поздние шрифты.
convert -delay 10 -loop 0 out2-{1..1410}.png Fonts.gif

Carl0s
Чт 26 апреля 2018 12:45
[Ахулл - Чт 26 апреля 2018 12:44] - Это может быть ошибкой, но я буду отдавать экспертам.

Кстати, вот немного развлечения шрифта... первые 1410 глифы от шрифтов.

Я бы включил все 29128 из них в один GIF, но есть ограничение размера в файлах, которые я могу загрузить здесь, поэтому я пропустил все китайские и более поздние шрифты.

Шрифты.гифка

Есть что -то немного завораживающее в том, чтобы наблюдать за тем, как они все мигают. ;)
Лол, вы, ребята, сумасшедшие :-) Да, это завораживает!

Ахулл
Чт 26 апреля 2018 12:51
@ Carl0s Следующий трюк будет получить некоторые из этих шрифтов для отображения на вашем ЖК -дисплее.. : D
Коробка рисования персонажей, полный цвет и обратное видео. Звучит как поездка обратно в 1980 -е годы ;)
Я уверен, что в этой вспышке есть место для полного набора символов PetScii.
У нас уже есть эмулятор Commodore 6502. -> ViewTopic.PHP?F = 19&t = 433
Теперь вы можете пойти на всю свинью и подражать всем расширенным ромам персонажа. :ржу не могу:

Изображение Изображение

Я положил оба GLIP GIF -файла GLIPH GIF.
Google Images немного странно.
Обратное видео любого?
Fonts3.gif
Шрифты3.GIF (76.79 киб) просмотрено 530 раз

Ахулл
Чт 26 апреля 2018 г. 14:11
Если вам интересно, что эти 1. 2. и т. д. и цифры в скобках/кругах.

Изображение

Они позволяют вам нарисовать двух или трех персонажей по цене одного, как это было. :ржу не могу:

Эти вещи были важны в день..

Carl0s
Чт 26 апреля 2018 г., 14:34
[Ахулл - Чт 26 апреля 2018 г., 14:11] - Если вам интересно, что эти 1. 2. и т. д. и цифры в скобках/кругах.

Изображение

Они позволяют вам нарисовать двух или трех персонажей по цене одного, как это было. :ржу не могу:

Эти вещи были важны в день..
О, да, круто :-)

Кстати, я запускал BBS. Немного современно, чем они. ПК доску. Ami-x стиль. Используется для написания модулей СИЗ.. загрузчик .DIZ -экстракторы и т. Д. и хорошие системы меню.

Хорошо.. Мне сыт по горло ждать, пока Autool x60 в стиле круглого калибра X60 придет из Китая. Я заказал один за 18 фунтов стерлингов в начале всей этой ветки.

Я только что проверил Amazon, и теперь он доступен от Prime, по двойной цене. Итак, я только что заказал один. Буду здесь завтра :-)
https: // www.Амазонка.сопутствующий.Великобритания/многофункция ... Autool+x60

Это определенно другой экран, хотя : o

Изображение

Ахулл
Чт 26 апреля 2018 г. 15:06
Другой, но очень похожий.

Описания очень похожи. Например..

X50 - > 32-разрядный процессор коры Arm Cortex-M3 с максимальной рабочей частотой 72 МГц, в поддержку нескольких высокоскоростных протоколов автомобильной связи
X60 -> ЦП на основе 32-битного ядра коры Arm Cortex-M3; Максимальная рабочая частота: 72 МГц; Поддерживать несколько высокоскоростных протоколов автомобильной связи.

Который сам по себе поднимает вопрос, STM32F103 работает на «максимальной частоте 72 МГц», но часть GD будет работать немного быстрее, я.эн. до 80 МГц (и мы даже разгонили его до 120 МГц).

Описания предполагают, что оригинальный дизайн фактически был основан на части ST, а затем изменился на GD One.

Будет интересно посмотреть, какой дисплей использует новый. Я предполагаю, что прошивка будет заперта против поклонников, но нет никакого вреда в том, чтобы попытаться взглянуть на это тоже. Мои деньги на оборудование почти идентичны, за исключением экрана.

Если бы мы были * очень * серьезно относились к получению доступа к фирмьюаре на части GD32, а деньги не были объектом, тогда Декализация его и подключение к вспышке сгибаемой флеш -лип. : Twisted:

Изображение

Carl0s
Чт 26 апреля 2018 г. 15:09
[Ахулл - Чт 26 апреля 2018 г. 15:06] - Другой, но очень похожий.

Описания очень похожи. Например..

X50 - > 32-разрядный процессор коры Arm Cortex-M3 с максимальной рабочей частотой 72 МГц, в поддержку нескольких высокоскоростных протоколов автомобильной связи
X60 -> ЦП на основе 32-битного ядра коры Arm Cortex-M3; Максимальная рабочая частота: 72 МГц; Поддерживать несколько высокоскоростных протоколов автомобильной связи.

Который сам по себе поднимает вопрос, STM32F103 работает на «максимальной частоте 72 МГц», но часть GD будет работать немного быстрее, я.эн. до 80 МГц (и мы даже разгонили его до 120 МГц).

Описания предполагают, что оригинальный дизайн фактически был основан на части ST, а затем изменился на GD One.

Будет интересно посмотреть, какой дисплей использует новый. Я предполагаю, что прошивка будет заперта против поклонников, но нет никакого вреда в том, чтобы попытаться взглянуть на это тоже. Мои деньги на оборудование почти идентичны, за исключением экрана.

Если бы мы были * очень * серьезно относились к получению доступа к фирмьюэру на части GD32, а деньги не были объектом, то обмену его и подключение к скоплению флэш -чип было бы моим любимым вариантом. : Twisted:
Да, я ожидаю, что это будет идентично, кроме экрана. Я просто надеюсь, что мы (ты? :) ) может идентифицировать экран!

Кстати, у меня есть моя работа на 128 МГц. Это не заняло 120 МГц. Это еще не перегревается и не заморожен. Это примерно на 80% увеличения тактовой частоты по сравнению с STM32F103.

Официальная спецификация GD - «до 108 МГц», я.эн. На 50% быстрее, чем STM32F103.

Carl0s
Пт 27 апреля 2018 г. 9:35 утра
[Ахулл - Чт 26 апреля 2018 г. 15:06] - Другой, но очень похожий.

Описания очень похожи. Например..

X50 - > 32-разрядный процессор коры Arm Cortex-M3 с максимальной рабочей частотой 72 МГц, в поддержку нескольких высокоскоростных протоколов автомобильной связи
X60 -> ЦП на основе 32-битного ядра коры Arm Cortex-M3; Максимальная рабочая частота: 72 МГц; Поддерживать несколько высокоскоростных протоколов автомобильной связи.

Который сам по себе поднимает вопрос, STM32F103 работает на «максимальной частоте 72 МГц», но часть GD будет работать немного быстрее, я.эн. до 80 МГц (и мы даже разгонили его до 120 МГц).

Описания предполагают, что оригинальный дизайн фактически был основан на части ST, а затем изменился на GD One.

Будет интересно посмотреть, какой дисплей использует новый. Я предполагаю, что прошивка будет заперта против поклонников, но нет никакого вреда в том, чтобы попытаться взглянуть на это тоже. Мои деньги на оборудование почти идентичны, за исключением экрана.

Если бы мы были * очень * серьезно относились к получению доступа к фирмьюаре на части GD32, а деньги не были объектом, тогда Декализация его и подключение к вспышке сгибаемой флеш -лип. : Twisted:
Эй, возвращаясь к квадратному экрану..

Ну, я обнаружил, что тот же драйвер (ST7789) также поддерживает различные разрешения, и есть панели для продажи 240*240 с ST7789. ILI9341_STM32 позволяет устанавливать TFTWidth и TFTheight в .H файл тоже.

Кроме того, я обнаружил, что модель A202 этого устройства также имеет квадратный экран...

Так что я чувствую надежду!

Моя круглая версия (x60) только что прибыла в шкафчик Amazon, так что я могу сейчас забрать его по дороге на работу, но я не смогу сделать что -либо, кроме как открыть его и делать фотографии до поздней выходные.


Ахулл
Пт 27 апреля 2018 г., 10:45 утра
Глифы ... {1..835} ... пронумеровано. montage -label '%t' {1..835}.png -tile 32x -geometry +1+1 -frame 5 -shadow -stroke "#000000" -bordercolor "#B3997A" -background none montage0.png

Carl0s
Пт 27 апреля 2018 г., 11:04
Ну, боллока. Это ЖК -соединение совершенно другое. Хотя на печатной плате я набираю всего около 13 булавок, подключенных к печатной плате.

Нет маркировки, которые помогают. Это около 1.5-дюймовый диагональ, приклеенный к круглому кусочке стекла. 24 -контактная лента говорит CXTA на нем.

Я думаю, что это будет 1.54 "24PIN, может быть, как этот: https: // www.Алибаба.com/product-detail/ ... 27041.HTML

или аналогично. это говорит о ST7789. Это 320x320, хотя, так что я думаю, что это 1.54 дюйма ST7789 экраны поставляются в различных разрешениях.

Все это немного меньше, чем я ожидал!

Арррг. Другая проблема. Не так много заголовков PIN/DENAG. Есть только J2. Не J1 и J2. Это могло не разорвать Uart :(

После мониторинга загадочного чипа и, возможно, мониторинга ЖК -дисплея для его последовательности init (если его SPI), я просто попробую на существующем рабочем коде, на тот случай, если это ST7789 в 240*240. Такая панель существует: https: // www.Адафрут.com/продукт/3787

Изображение

Изображение

Изображение

Изображение

Изображение

Изображение

Изображение

Изображение

Изображение

Изображение

Изображение

Ахулл
Пт 27 апреля 2018 г. 11:26
Вероятно, это аналогично X50, так как большинство других схем выглядит идентично, но я думаю, что это также может быть 1.5 "OLED, что -то вроде -> https: // www.eBay.com/itm/1-5inch-oled-m ... SWDXDADSSW

Что бы это ни было, это, скорее всего, часть желе, и для этого будет какой -то водитель.

Я уверен, что мы сможем это начать. Кстати, это загадочный чип на этом блоке? Это также без опознавательного знака?

Ахулл
Пт 27 апреля 2018 г., 11:35
Интересно, что они пошли с квадратным дисплеем, так как, кажется, есть круглые дисплеи, доступные по довольно разумным ценам.

https: // www.Алибаба.com/trade/search?фс ... = Round+TFT

Вероятно, это был наименьший вариант затрат в требуемом им размере.

Carl0s
Пт 27 апреля 2018 г., 11:40
[Carl0s - Чт 19 апреля 2018 г. 22:06] - Выпрямить заголовки, глядя с вершины доски, где находится гнездо ЖК -дисплеев FFC, с зуммером справа внизу.

J2
1 (слева) - swdio
2 - SWDCLK
3 - GND
4 (справа)- VDD

Прата нуждается в внешней мощности, чтобы использовать Stlink, хотя. VDD должен быть просто подключен к выводу «Целевой выявление VCC» STLINK (PIN № 1)

J1
1 (вверху) - GND
2 - ничего
3 - PB10
4 (внизу) - PB11

С платой все еще в той же ориентации, 3 -й путь переключателя / пробежки велосипеда:

Поверните влево: PC14
PUSH Middle: PC15
Поверните вправо: PC13

Верно. Таким образом, у этого X60 PCB есть только J2. Я провел визуальный осмотр следов через VIAS, и, к счастью, это все еще Swdebug. Так что я могу запрограммировать устройство.
Жаль, что UART3 не разбит, как на большем брате.

Это то, что раскрыл мой визуальный осмотр. Со стороны, который на самом деле помечен J2. Очевидно, что у меня здесь перевернут заказ из того, что я написал о J2 на доске X50:
J2 on X60 model: 1 vdd (pin64) 2 nowhere, maybe ground ? don't have a meter to hand 3 SWCLK 4 SWDIO

Carl0s
Пт 27 апреля 2018 г., 11:43
[Ахулл - Пт 27 апреля 2018 г. 11:35] - Интересно, что они пошли с квадратным дисплеем, так как, кажется, есть круглые дисплеи, доступные по довольно разумным ценам.

https: // www.Алибаба.com/trade/search?фс ... = Round+TFT

Вероятно, это был наименьший вариант затрат в требуемом им размере.
Я смотрел на это (много!) Прошлой ночью, думая о том, чтобы сделать свой в хорошем металле & Стекло из датчика. Но многие из них - MIPI, и только продавцы Alibaba на данный момент, продавцы Aliexpress. Я бы очень хотел взять в руки SPI с водителем ILI или ST.

Было бы неплохо иметь что-то более высококачественное, например, это:
Изображение

Carl0s
Пт 27 апреля 2018 г., 11:44
[Ахулл - Пт 27 апреля 2018 г., 11:26] - Вероятно, это аналогично X50, так как большинство других схем выглядит идентично, но я думаю, что это также может быть 1.5 "OLED, что -то вроде -> https: // www.eBay.com/itm/1-5inch-oled-m ... SWDXDADSSW

Что бы это ни было, это, скорее всего, часть желе, и для этого будет какой -то водитель.

Я уверен, что мы сможем это начать. Кстати, это загадочный чип на этом блоке? Это также без опознавательного знака?
Да, тот же таинственный чип.

Ахулл
Пт 27 апреля 2018 г., 13:29
Было бы неплохо иметь что-то более высококачественное, например, это: С небольшим воображением, вы можете иметь любой пользовательский интерфейс.

Изображение
Мы можем перезаписать все китайские иероглифы и изображения тем, что мы думаем. 2 МБ вспышки дает вам много вариантов.

Carl0s
Пт 27 апреля 2018 13:48
[Ахулл - Пт 27 апреля 2018 13:29] - Было бы неплохо иметь что-то более высококачественное, например, это: С небольшим воображением, вы можете иметь любой пользовательский интерфейс.

Изображение
Мы можем перезаписать все китайские иероглифы и изображения тем, что мы думаем. 2 МБ вспышки дает вам много вариантов.
: D Я думаю, что мы на одной странице с этим датчиком.

Ахулл
SAT 28 апреля 2018 г. 9:54
«Второй сет» западных глифов с позиции 8837 до 9682.

Хотя он похож, он включает в себя несколько новых, еще несколько стрел и еще один набор рисования коробки.
montage -label '%t' {8837..9682}.png -tile 32x -geometry +1+1 -frame 5 -shadow -stroke "#000000" -bordercolor "#B3997A" -background none montage6.png

Carl0s
SAT 28 апреля 2018 г. 18:54
ОК, это разочаровывает с помощью ЖК -дисплея x60.

Во -первых, он имеет 24pin FPC -разъем, 0.4-мм двойной кадры, как видно на мобильных телефонах, что делает боль. Я могу подключить прекрасные провода к ногам MCU.

Во-вторых, выходы не выглядят хорошо для SPI. Похоже, это связан с общим назначением ввода -вывода на MCU.

Вот булавки, которые я вижу, перейти от MCU в LCD Connector. PB5 PB15 (WAS TFT_MOSI ON X50 MODEL) PA11 PA13 (WAS TFT_D/C ON X50 MODEL) PA15 (WAS TFT_RST ON X50 MODEL) PC6 PC7 No CLK or EN/SS ? PB1 BACKLIGHT (SAME AS X50 MODEL)

Sheepdoll
Сб 28 апреля 2018 г., 21:54
Вот шестнадцатеричное/десятичное смещения в разделы шрифта изображения ПЗУ. Интересно, кроме чисел, нет арабского шрифта или других шрифтов в Западной Азии. Есть несколько, что похоже на ивритские буквы/цифры в конце первой таблицы после того, как коробка рисует персонажей, а затем разрыв перед китайскими глифами. Как отмечалось, есть несколько различий между книгой и жирными шрифтами.

0x000000 (0) %- Западный римский кодируемый шрифты 24x24, они заселены или «книга» лицо

0x018c48 (101448) %- Китайский 24x24

0x09b520 (636192) %западная римская жирная шкала 24x24

0x0b4168 (737640) %

0x136A40 (1272384) % - ASCII заказ без засечка 8x16 - Вероятно, основной диагностический (задний канал) шрифт.
0x137030 (1273904) % - ASCII заказ без засечка 16x24
0x138200 (1278464) % - ASCII Заказ без засечка 16x32
0x1399C0 (12845444) % - ASCII Заказ без засечка 24x48

0x13CF32 (1298226) %-10 Большие арабские числа 40x72 1 или более байтов между каждым числом могут быть какими-то другими (PAD) байтами до (-) минус маски.

0x13e157 (1302871) % - значки 32x48

0x13f460 (1307744) % - начало текста

0x159406 (1414150) %

Ахулл
Солнце 29 апреля 2018 г., 3:49
@Sheepdoll - хорошая работа. Знание этих смещений делает повторное использование шрифтов намного проще, так как нам просто нужен указатель размер и смещение, чтобы получить данные.

@Carl0s - Я бы не стал слишком беспокоиться о пайке на этом дисплее, я уверен, что мы сможем понять это из некоторых картин и небольшого воображения, не прибегая к микрохирургии. Разъем выглядит как некоторые из телефонных разъемов Nokia. Подобные вещи -> http: // andybrown.мне.Великобритания/2012/06/05/Nokia ... нет-мега-1/ Но я думаю, что макет булавки другой.

Подавляющее большинство дисплеев очень похожи. Можете ли вы дать мне несколько хороших макро -снимков обеих сторон FPC, и несколько хороших снимков обеих сторон основной печатной платы, чтобы мы могли следить за треками и вайами.

Я бы начал с определения всех контактов GND на разъеме дисплея, используя зуммер на вашем мультиметре. Далее я бы увидел, какие булавки идут от GD32 - затем, возможно, попытайтесь выяснить, какие булавки выглядят так, как будто они могут иметь светодиод или два подсветки. Я предполагаю, что это TFT, а не OLED -дисплей. Снова используйте мультиметр в режиме зуммера или диода непрерывности между GND и булавками, чтобы увидеть, есть ли тусклый мерцание с дисплея, он будет очень тусклым, я бы себе представил. Вы можете не получить никаких результатов для этого, так как светодиоды могут быть последовательными.

Пока мы выясняем это, вы можете сбросить флэш -память x60, и мы можем увидеть, в целом она такая же, как у X50

Sheepdoll
Солнце 29 апреля 2018 г., 6:44
@ahull
Вот быстрый свалки цветного изображения смещений и центрированных размеров:
0x159432 % 220x160
0x172f11 % 88x180
0x17e977 % 220x80
0x18AFA4 % 320x84
0x19eae6 % 320x72
0x1aede2 % 320x100
0x1c5d98 % 320x72
0x1d3ec8 % 320x72
0x1e4548 % 320x72
0x1f572f % 320x46
Вот дамп изображений, повернутых зеркально. Я пробежал немного через обратный поиск изображения Tineye и Google. Торговая марка CXAT не появляется, что я считаю любопытным, как там три раза. Интересно, действительно ли это зарегистрированный товар? Если зарегистрировано, почему он не отображается в обратном поиске изображения?

URL -адрес работает и ведет к малазийскому веб -сайту, где найдены некоторые другие графики.

Google Giggle Gurgl. Автомобильное изображение - это общая пьеса, которая появляется во многих местах, зеркало или сдвинуто цвет. Gurgle говорит, что это Ferrari.
COBD18428A.JPG
COBD18428A.JPG (73.75 киб) просмотрено 641 раза

Ахулл
Солнце 29 апреля 2018 г. 8:10
Мистерия, кажется, говорит I2C с часами 33 кГц.
Разгоды (SDA на 5 и SCL на 6) соответствуют EEPROM, но контакты VCC и GND противоположны, а также объем данных, поступающих в/из, крошечный. Как 1 или не более 2 байтов на чтение/запись. Я не уверен, что это такое. Это может быть даже не i2c.. Декодер может просто извергать мусор.
Вот захват того, что он делает в. Посмотреть с DSView от Dreamourcelab:
http: // www.InternetSome.com/autool ... y-chip.DSL
У меня нет ничего, что будет читать .Файл DSL, поэтому я не могу проверить эту информацию, но если мало данных обменивается, то, возможно, устройство является каким -то датчиком (компас, гироскоп, температура или что -то еще).

Carl0s
Солнце 29 апреля 2018 г., 17:44
[Ахулл - Солнце 29 апреля 2018 3:49] - @Carl0s - Я бы не стал слишком беспокоиться о пайке на этом дисплее, я уверен, что мы сможем понять это из некоторых картин и небольшого воображения, не прибегая к микрохирургии. Разъем выглядит как некоторые из телефонных разъемов Nokia. Подобные вещи -> http: // andybrown.мне.Великобритания/2012/06/05/Nokia ... нет-мега-1/ Но я думаю, что макет булавки другой.

Подавляющее большинство дисплеев очень похожи. Можете ли вы дать мне несколько хороших макро -снимков обеих сторон FPC, и несколько хороших снимков обеих сторон основной печатной платы, чтобы мы могли следить за треками и вайами.

Я бы начал с определения всех контактов GND на разъеме дисплея, используя зуммер на вашем мультиметре. Далее я бы увидел, какие булавки идут от GD32 - затем, возможно, попытайтесь выяснить, какие булавки выглядят так, как будто они могут иметь светодиод или два подсветки. Я предполагаю, что это TFT, а не OLED -дисплей. Снова используйте мультиметр в режиме зуммера или диода непрерывности между GND и булавками, чтобы увидеть, есть ли тусклый мерцание с дисплея, он будет очень тусклым, я бы себе представил. Вы можете не получить никаких результатов для этого, так как светодиоды могут быть последовательными.

Пока мы выясняем это, вы можете сбросить флэш -память x60, и мы можем увидеть, в целом она такая же, как у X50
Дисплей действительно крошечный. Я все еще хотел бы посмотреть, сможем ли мы решить это, но в настоящее время я спускаюсь с раббитоль MIPI.
Я заказал 1.3 -дюймовые круглые дисплеи с ST7789 прошлой ночью, которые являются SPI. Затем я понял, что это, вероятно, будет такого же размера, как и мой 1.54 -дюймовый экран, но с отрезанными / покрытыми углами.. Слишком поздно сейчас, я заказал прошлой ночью у Dhgate.

Я заказал STM32L4R9I-диско (От Амазонки вы бы поверили), но затем отменил его, когда я обнаружил, что STM32s с MIPI-DSI (интерфейс отображения, в отличие от CSI для камер), который является STM32L4R9 и STM32F469 и F479, хорошо, что у них есть только 2 данных MIPI / каналы. Немного как PCI-Express Lanes. Некоторые из дисплеев, включая Nice 3.4 дюйма на Алибабе с потрясающим разрешением 800x800, ну, им нужно 3 полосы движения, или, по крайней мере, чип ILI9881C на них настроен на 3 полосы движения. Есть регистр и несколько «внешних подушек» (прыгуны?) вы можете установить, но, насколько я могу судить, если он установлен на 3 полосы движения, то для того, чтобы изменить его на 2 полосы движения, требует изменения Lancel с 0 на 1, и это внешняя прокладка (что означает Jumper?), а не регистр.

Итак, теперь я приобретаю дисплеи MIPI (все равно отправляю запросы Alibaba) и надеюсь получить доску с помощью чипа SSD2828, который преобразует RGB (и, возможно, SPI.. не уверен) в MIPI до 4 полос. Было множество этих досок, но больше ни на aliexpress больше.

У Amazon Echo Spot есть 2.5 "480x480 экран, который выглядит интересно. Мипи снова, хотя.

Ахулл
Солнце 29 апреля 2018 г. 18:19
Глядя на страницы мастерской Энди Брауна и, в частности, -> http: // andybrown.мне.Великобритания/2013/02/24/ ... доска/ Я думаю, что стоит проверить, будет ли разъем, на который мы смотрим, хорошим совпадением для Nokia One. Дисплеи Nokia были бы хорошим выбором для такого рода устройства, так как они вездесущи и дешевы.

Carl0s
Пн 30 апреля 2018 12:17
[Ахулл - Солнце 29 апреля 2018 г. 18:19] - Глядя на страницы мастерской Энди Брауна и, в частности, -> http: // andybrown.мне.Великобритания/2013/02/24/ ... доска/ Я думаю, что стоит проверить, будет ли разъем, на который мы смотрим, хорошим совпадением для Nokia One. Дисплеи Nokia были бы хорошим выбором для такого рода устройства, так как они вездесущи и дешевы.
Привет, Энди!

Это не тот разъем, нет.

Это стройнее, а также у него есть выемки на концах. См. ниже.

Многие экраны, кажется, используют серию Panasonic Agx, затем есть Molex 504208-2410 (24pin leceptacle), в которой используется плавка 504248-2410, но это тоже не так.
Это не похоже на JAE или JST тоже.

Я думаю, что тщательный поиск через Mouser/Digikey может быть в порядке :)

Я только что заказал несколько хороших экранов, которые используют MIPI, хотя. Другой проект. Посмотрите, смогу ли я что -нибудь с ними сделать и мост SSD2828.

Изображение

Вивио
Чт 21 июня 2018 г. 18:18
Carl0s Можете ли вы более тщательно описать, как вы программируете устройство?

У меня есть GD32F130C6 и GD32F130C*, которые я не могу программировать их с помощью ST Link v2.

заранее спасибо!

Ахулл
Чт 21 июня 2018 г., 8:25 вечера
Я использовал клон ST-LinkV2 для программирования шахты. Эта ветка имеет несколько подсказок -> ViewTopic.PHP?F = 28&t = 604
... и здесь -> http: // wiki.STM32duino.com/index.PHP?тип ... 103c8_mini

Если у вас есть ST-Link или клон, вам необходимо идентифицировать GND, SWDIO (PA13) и SWCLK (PA14), подключите их к вашей ST-Link и Progam в соответствии с большей частью платы STM32F103. Есть версия Bootloader GD32, но я не знаю, как это на сегодняшний день.

Если прошивка заблокирована на вашем устройстве, вы не сможете его подтвердить, и, возможно, придется выполнить полную стира.
@Carl0s может заполнить еще несколько подробностей, так как я в последний раз играл с моей доской Red Pill GD32 пару лет назад.

Carl0s
Пт 22 июня 2018 г. 8:09
[Ахулл - Чт 21 июня 2018 г. 20:25] - Я использовал клон ST-LinkV2 для программирования шахты. Эта ветка имеет несколько подсказок -> ViewTopic.PHP?F = 28&t = 604
... и здесь -> http: // wiki.STM32duino.com/index.PHP?тип ... 103c8_mini

Если у вас есть ST-Link или клон, вам необходимо идентифицировать GND, SWDIO (PA13) и SWCLK (PA14), подключите их к вашей ST-Link и Progam в соответствии с большей частью платы STM32F103. Есть версия Bootloader GD32, но я не знаю, как это на сегодняшний день.

Если прошивка заблокирована на вашем устройстве, вы не сможете его подтвердить, и, возможно, придется выполнить полную стира.
@Carl0s может заполнить еще несколько подробностей, так как я в последний раз играл с моей доской Red Pill GD32 пару лет назад.
Да, это верно. У меня были проблемы с PIN -код TVCC, я думаю, это было - Target VCC или VDD, используемый для проверки/измерения целевого напряжения. Пришлось поместить это в другой +3.3 может быть. Я говорю об этом в начале этой темы, я думаю. Кроме того.

Вивио
Пт 22 июня 2018 г., 11:52
Спасибо, Ахалл & Carl0s для обмена!

Моя версия GD32F130, и я вижу, здесь есть GD32F103 :плакать:

Но ваши идеи могут применить в моем случае. Я посмотрю, что я получу.

Для будущих вопросов я могу опубликовать здесь, иначе это будет разорвать нить?

Удачных выходных!

Ахулл
Пт 22 июня 2018 г. 14:17
Я бы запустил новую ветку для этого нового устройства. Это будет держать вещи в порядке.

Вивио
Sun 24 июня 2018 г., 8:26 вечера
@Ахулл

Я обнаружил, что для более тесного тестирования чипа, используемой Carl0s: GD32F103C8, и мне повезло с ним, но я все еще в лесу... Я использую свою старую ветку, чтобы задать вопросы, прежде чем доберусь до другого UC.

@ Carl0s Я не смог найти булавку, о котором вы упомянули здесь в ветке. Я пытался использовать более мощный источник для 3.3v, но еще ничего не изменилось.


Пожалуйста, посмотрите здесь: ViewTopic.PHP?f = 3&T = 3753&P = 46635#P46635

Miditech 4x4 Hack