Съдържание:

Проникнете в CFA735/CFA835: 4 стъпки
Проникнете в CFA735/CFA835: 4 стъпки

Видео: Проникнете в CFA735/CFA835: 4 стъпки

Видео: Проникнете в CFA735/CFA835: 4 стъпки
Видео: Как доктор Зло проникнет в полицейский участок. Новые приключения наших героев 2024, Юни
Anonim
Хакнете CFA735/CFA835
Хакнете CFA735/CFA835

Имате ли проект, който се нуждае от дисплей, клавиатура и малко памет, но предварително инсталираният фърмуер на модула Crystalfontz CFA735 или CFA835 не е точно това, което търсите? Имате късмет - можете да хакнете тези модули, за да заредите персонализиран фърмуер.

CFA735 и CFA835 са универсални интелигентни LCD модули. Както Crystalfontz CFA735, така и CFA835 са базирани на хардуерен модул CFA10052, така че по време на този урок CFA735 и/или CFA835 ще бъдат наричани CFA10052. CFA10052 може да бъде препрограмиран, за да стартира свой собствен персонализиран фърмуер.

  • STMicroelectronics STM32F401 микроконтролер
  • ARM 32-битов Cortex ™ -M4 процесор @ 84 MHz
  • 256K флаш, 64K RAM
  • 244 x 68 пиксела LCD с подсветка
  • Sitronix ST7529 32 графичен LCD контролер в сиви скали
  • Превключващото захранване с бук-буст позволява широк диапазон на захранващо напрежение
  • Отделни превключващи LED контролери за яркост за клавиатура и LCD подсветка
  • Клавиатура с подсветка с 6 бутона
  • 4x двуцветни (червени/зелени) светодиоди
  • USB2 интерфейс
  • слот за microSD карта
  • 5 IO пина с общо предназначение (GPIO)
  • Множество последователни/SPI/I2C/CAN интерфейси (в зависимост от използването на GPIO).

Този урок ще ви покаже как да замените фърмуера, който се доставя на CFA10052 с нов фърмуер, който ще:

  1. Покажете на LCD променлива решетка с текуща подсветка, LCD контраст и информация за състоянието на клавиатурата;
  2. Управлявайте подсветката и контраста на LCD с помощта на клавиатурата.
  3. Променете последователно цвета на четирите светодиода от червен на зелен.
  4. Активирайте серийния порт USART на пинове 1 и 2 на Header-1 (115200 бода) и повторете всички получени данни.
  5. Активирайте виртуалния сериен порт на USB и повторете всички получени данни обратно към хоста.
  6. Включва, но не демонстрира, достъп до файлове за четене/запис на USB.

Разбира се, можете да напишете свой собствен фърмуер и да го заредите, като използвате тези стъпки.

ВАЖНО ЗАБЕЛЕЖКА:

Хардуерният модул Crystalfontz CFA10052 се доставя програмиран с буутлоудър и фърмуер CFA735/CFA835. Буутлоудърът и фърмуерът CFA735/CFA835 не са с отворен код и не могат да бъдат копирани от CFA10052 от потребителя, нито могат да бъдат програмирани върху CFA10052 от потребителя. Ако в крайна сметка искате да се върнете към фърмуера на CFA735/CFA835, ще трябва да го изпратите обратно до Crystalfontz, за да го препрограмирате.

Консумативи

  • Модул Crystalfontz CFA10052 (хардуер v1.1 или по -нова версия) (CFA735 / CFA835)
  • PC (Windows/Linux/OSX) с инсталирани STM32CubeIDE и STM32 ST-LINK Utility
  • STMicroelectronics ST-LINK (V2 или V3) интерфейс за програмиране
  • Кабел за програмиране CFA10052 (подробности по -долу)
  • Персонализиран фърмуер (или използвайте нашия тук)
  • Ако използвате Windows 7/8/8.1/10 (или еквивалентни версии на сървъра) и искате да тествате USB виртуалния сериен порт, ще трябва да изтеглите драйвери от тук. USB серийният порт ще работи, без да се изискват допълнителни драйвери за Windows 10+, Linux, OS-X.

Стъпка 1: Съберете/създайте консумативи

Събирайте/създавайте консумативи
Събирайте/създавайте консумативи

Препоръчваме да използвате STM32CubeIDE за зареждане и използване на този пример за фърмуер. STM32CubeIDE е безплатна IDE, базирана на Eclipse, която е модифицирана от STMicroelectronics, за да включва специфични за STM32 инструменти. IDE може да бъде изтеглен на уеб страницата STM32CubeIDE.

За да поддържате правилната работа на инструмента за конфигуриране на STM устройство, трябва само да редактирате създадения от него инструмент за конфигуриране на изходния код между съвпадащите блокове за коментари „USER CODE BEGIN xxx“и „USER CODE END xxx“.

След това решете дали да се свържете с нас за кабел за програмиране CFA10052 или да направите свой собствен. В този урок няма да преглеждаме подробно изработката на кабела, но ако искате да направите свой собствен кабел за програмиране на CFA10052, можете да намерите връзките на страницата на GitHub, най -добрият начин да направите това е да започнете с шестнадесет пинов лентов кабел и го свържете към кабела за ST Link.

Стъпка 2: Изтрийте съществуващия фърмуер

Изтрийте съществуващ фърмуер
Изтрийте съществуващ фърмуер
Изтрийте съществуващ фърмуер
Изтрийте съществуващ фърмуер

Ако вашият модул CFA10052 е зареден с предоставения фърмуер CFA735 или CFA835, първо трябва да изтриете излизащия фърмуер, преди да инсталирате нов фърмуер. Флаш паметта е защитена за четене и запис и трябва да бъде премахната, преди да може да се зареди персонализиран фърмуер.

Има два метода за премахване на инсталирания фърмуер:

  1. Изключете USB кабела (или захранването) от модула CFA10052.
  2. Свържете CFA10052 към ST-LINK с помощта на кабела за програмиране (вижте по-горе) и ST-LINK към хост компютъра.
  3. Задръжте бутоните нагоре и надолу на CFA10052, докато включвате USB кабела в CFA10052 (или захранването). CFA10052 сега трябва да показва екрана за зареждане на Crystalfontz.
  4. Стартирайте помощната програма STM32 ST-LINK. В менюто „Target“отворете прозореца „Option Bytes“. В полето „Защита при четене“изберете „Ниво 0“. Щракнете върху Прилагане. Фърмуерът на Crystalfontz вече е премахнат и всеки персонализиран фърмуер вече може да бъде програмиран.

Алтернативен метод (ако не можете да влезете в Crystalfontz Bootloader, като задържите клавишите):

  1. Изключете USB кабела (или захранването) от модула CFA10052.
  2. Свържете тестовата точка BOOT0 (малка подложка на гърба на модула CFA10052, близо до конектора H1) към 3.3V или 5V.
  3. Свържете CFA10052 към ST-LINK с помощта на кабела за програмиране (вижте по-горе) и ST-LINK към хост компютъра.
  4. Включете CFA10052 (или го свържете към USB захранване). Дисплеят трябва да е празен.
  5. Стартирайте STM32 ST-LINK Utility. В менюто "Target" отворете прозореца "Option Bytes". В полето "Read Out Protection" изберете "Level 0". Щракнете върху Прилагане. Фърмуерът на Crystalfontz вече е премахнат и всеки персонализиран фърмуер вече може да бъде програмиран.
  6. Свързването на щифта BOOT0 към 3.3V/5V вече не е необходимо.

Стъпка 3: Компилирайте и заредете вашия фърмуер в CFA10052

Компилирайте и заредете вашия фърмуер в CFA10052
Компилирайте и заредете вашия фърмуер в CFA10052

След като фърмуерът, предоставен от Crystalfontz, бъде премахнат, вие сте готови да компилирате и заредите свой собствен фърмуер. За целите на този урок ние предоставихме алтернативен фърмуер, който дава на клавиатурата контрол на яркостта на подсветката и контраста на дисплея.

За да компилирате фърмуера:

  1. Отворете STM32CubeIDE
  2. В менюто Файл изберете Импортиране, след това „Импортиране на съществуващи проекти в работно пространство“.
  3. В полето за основна директория изберете директорията на този примерен фърмуер.
  4. Щракнете върху бутона Готово.
  5. В Project Explorer изберете проекта cfa10052_example, след това отворете файла Src и "main.c".
  6. В менюто Project изберете „Build Project“.

За да програмирате и стартирате фърмуера на CFA10052:

  1. Изключете USB кабела (или захранването) от модула CFA10052.
  2. Свържете CFA10052 към ST-LINK с помощта на кабела за програмиране (вижте по-горе) и ST-LINK към хост компютъра.
  3. Свържете USB кабела (или захранването) към CFA10052.
  4. Уверете се, че проектът на фърмуера е изграден (вижте стъпките по -горе) и „Двоични файлове“се появява под „cfa10052_example“в Project Explorer.
  5. Ако „Двоични файлове“не се вижда, щракнете с десния бутон върху проекта „cfa10052_example“и изберете Опресняване.
  6. Изберете менюто Run, след това „Debug Configurations“.
  7. В полето за избор на типове цели за отстраняване на грешки, щракнете с десния бутон върху „STM32 Cortex-M Application“и изберете „Нова конфигурация“.
  8. Ще се покаже прозорец за конфигурация. Настройките по подразбиране са ОК. Щракнете върху Приложи, след което върху бутона Затвори.
  9. В менюто Run изберете „Debug As“, след това „STM32 Cortex Application“. STM32CubeIDE сега трябва да се свърже със ST-LINK и да качи и стартира фърмуера на CFA10052.

Горните стъпки са необходими само при зареждане на проекта за първи път в STM32CubeIDE. След като са направени промени в изходния код на фърмуера, са необходими само повторно изграждане на проекта (Ctrl-B пряк път) и програмиране на CFA10052 (клавишна комбинация F11).

Фърмуерът може да се зареди и чрез всеки от нормалните методи за зареждане на STM32 (отстраняването на грешки е достъпно само с помощта на SWD интерфейса и ST-LINK). Например, ако използвате серийна връзка, може да се използва USART1 (RX = H1-Pin1 и TX = H1-Pin2). За по-подробна информация за зареждащото устройство STM32 и интерфейсите вижте PDF файла тук.

Стъпка 4: Лицензи

Изходният код, предоставен от Crystalfontz, се предоставя с помощта на The Unlicense, лиценз без никакви условия, който посвещава произведения на публичното достояние. Нелицензирани произведения, модификации и по -големи произведения могат да бъдат разпространявани при различни условия и без изходен код. Вижте файла UNLICENCE или unlicense.org за подробности.

Създадените от STM32CubeIDE библиотеки с изходен код и STMicroelectronics са с авторско право (c) 2019 STMicroelectronics. Всички права запазени. Софтуерният компонент е лицензиран от ST по лиценз BSD 3-клауза, „Лиценз“; Не можете да използвате тези файлове, освен в съответствие с Лиценза. Можете да получите копие от лиценза на opensource.org/licenses/BSD-3-Clause.

Препоръчано: