Содержание

Flash Floppy OSD — версия под GoTek для бокового слота Yamaha MSX

Здесь описана версия доработки Flash Floppy OSD для MSX для Адаптер эмулятора GoTek для бокового слота Yamaha MSX.

Вид платы STM32F103C8T6 с припаянными контактами, резисторами и перемычкой:

Адаптер эмулятора GoTek для бокового слота Yamaha MSX

Доработка платы Адаптер эмулятора GoTek для бокового слота Yamaha MSX:

Вид готового устройства

Вид готового устройства

Видеомодуль

Доработка платы видеомодуля:

Yamaha YIS-503IIIR

Доработка платы Yamaha YIS-503IIIR:

Вид на плату, с подключённым устройством

Вид на плату, с подключённым устройством

Схема соединений

STM32 Боковой слот MSXFF OSD 3CH Board 1.0 (CN2)1)
А1541 (гейт)
B1562 (цвет)
А883 (синхронизация)
STM32 GoTek (J7)
B6SCL4
B7SDA3
3.3VCC2
GGND1
A0перемычка
A1
STM32 USB-TTL
5V5 V
GGND
A9RXD
A10TXD

FF OSD: On Screen Display for FlashFloppy

Список деталей

КодНазваниеКол-воНазначение
МГТФ 1х0.05 ммПровод монтажный 3х180 мм3Плата STM32 — FF OSD 3CH Board 1.0
BL-T (DS-1071)Контакт для розеток BLS и BLD3
Контакты гнездо–штырь 2.54мм, длина 20см (нужных цветов)3
BLS-3 (DS1071-1×3)Гнездо на кабель 1х3 с контактами 2.54мм1
PLS-3 (DS1021-1×3)Вилка штыревая 2.54мм 1×31
Разъем PBS-1×3Гнездо на плату, шаг P2.541
Контакты гнездо–гнездо 2.54мм, длина 10см (нужных цветов)4Плата STM32 — GoTek (J7)
BLD-4Разъём BLD 2×021
PBS-1×8Гнездо на плату, шаг P2.541FF OSD 3CH Board 1.0 — видеомодуль
PLS-8R (DS-1022-1x8R)Вилка штыревая 2.54мм 1х8 угловая1
Трубка термоусадочная (прозрачная), ширина 25мм, длина 50 мм1
PLS-10R (DS-1022-1×10)Вилка штыревая 2.54мм 1х10,угловая1Плата STM32 (по схеме)
PLS-2 (DS1021-1×2)Вилка штыревая 2.54мм 1×21
JUMPER-B-ZПеремычка 2.54мм 21

Режим загрузки программы

Загрузки нужно:

  1. Установить жёлтые перемычки на плате STM32:
    1. Boot 0 — 1
    2. Boot 1 — 0
  2. Подключить адаптер USB-TTL по схеме.

После выполнения загрузки нужно вернуть жёлтые перемычки на плате STM32:

Тест

Для начала нужно убедиться в том, то проходит тест STM32 Fakes.

В примерах загрузки используется stm32flash

Загрузка теста blinky-test:

sudo stm32flash -b 115200 -vw blinky_test-v0.20.hex /dev/ttyUSB0

вывод:

stm32flash 0.5

http://stm32flash.sourceforge.net/

Using Parser : Intel HEX
Interface serial_posix: 115200 8E1
Version      : 0x22
Option 1     : 0x00
Option 2     : 0x00
Device ID    : 0x0410 (STM32F10xxx Medium-density)
- RAM        : 20KiB  (512b reserved by bootloader)
- Flash      : 128KiB (size first sector: 4x1024)
- Option RAM : 16b
- System RAM : 2KiB
Write to memory
Erasing memory
Wrote and verified address 0x08020000 (6.15%) Done.

При нормальной работе теста на плате должен мигать каждые 500 мс зелёный светодиод PC13.

Также можно наблюдать за ходом теста, подключившись по UART, для работы можно использовать Miniterm:

sudo miniterm /dev/ttyUSB0 115200 --parity N

вывод:

--- Miniterm on /dev/ttyUSB0  115200,8,N,1 ---
--- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
........
** Blinky Test **
** Keir Fraser <keir.xen@gmail.com>
** https://github.com/keirf/Greaseweazle
Serial = ff51:0673:7250:4855:5517:8718
Flash Size  = 128kB
Device ID = 0x0000
Revision  = 0x0000
Testing I2C1... OK
Testing I2C2... OK
Testing SPI1... OK
Testing SPI2... OK
Testing TIM1... OK
Testing TIM2... OK
Testing TIM3... OK
Testing TIM4... OK
DMA Test #1... OK
DMA Test #2... OK
DMA Test #3... OK
DMA Test #4... OK
Testing 64kB Flash... OK
Enable TIM4 IRQ... .OK
Testing 20kB SRAM (endless loop)..............

Загрузка прошивки

Для загрузки можно использовать программу stm32flash

Описание процесса от автора

  1. sudo stm32flash -b 115200 -vw FF_OSD-v1.9.hex /dev/ttyUSB0

    вывод:

    stm32flash 0.5
    
    http://stm32flash.sourceforge.net/
    
    Using Parser : Intel HEX
    Interface serial_posix: 115200 8E1
    Version      : 0x22
    Option 1     : 0x00
    Option 2     : 0x00
    Device ID    : 0x0410 (STM32F10xxx Medium-density)
    - RAM        : 20KiB  (512b reserved by bootloader)
    - Flash      : 128KiB (size first sector: 4x1024)
    - Option RAM : 16b
    - System RAM : 2KiB
    Write to memory
    Erasing memory
    Wrote and verified address 0x0800355c (100.00%) Done.
  2. Подключение:
    sudo miniterm /dev/ttyUSB0 115200 --parity N

    вывод (настройки по умолчанию):

    --- Miniterm on /dev/ttyUSB0  115200,8,N,1 ---
    --- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
    
    ** FF OSD v1.9 **
    ** Keir Fraser <keir.xen@gmail.com>
    ** https://github.com/keirf/FF_OSD
    
    Config corrupt: Resetting to Factory Defaults
    
    Current config:
     Sync Polarity: Low
     Pixel Timing: 15kHz
     Display Height: Normal
     Display Output: PB15/SPI2
     Display Enable: None
     H.Off: 42
     V.Off: 50
     Rows: 2
     Columns: 16-40
    
    Keys:
     Space: Select
     O: Down
     P: Up
    Sync lost

Назначение клавиш терминала для настройки:

Пробелвыбор параметра
Oуменьшить значение (↓)
Pувеличить значение (↑)

Для корректной работы нужно установить следующие значения:

Sync Polarity: Low
Pixel Timing: 15kHz
Display Height: Normal
Display Output: PB15/SPI2
Display Enable: PA15 Act.LOW
H.Off (1-199): 145
V.Off (2-299): 35

Рекомендуемые параметры для FlashFloppy, (файл FF.CFG)

host = msx
display-type = auto
oled-font = 6x13
display-order = default
osd-display-order = 0,1
osd-columns = 16
display-off-secs = 5

Ссылки

Тема на форуме zx-pk.ru

1)
нумерация стандартно = слева направо