Команды на ключ нет.
Все есть, я же тебе говорил что без изменений обработчика команд (тот что в прерывании по xlat) и правки структур под прием 32х битных комманд, ты не увидишь установку ключа и запрос субкода.
Я вижу эти команды в логе, вот только мой ответ не устроил мехакон, я дальше разбираться не стал, так как сразу попытался заэмулить CDDA и увидел что толку от этого ноль, нужно идти по пути эмуляции EFM
изменённая структура в cmd.h
typedef union mech_cmd_t
{
struct
{
uint32_t :20;
uint32_t sub:8; // 49 new SCEX
uint32_t id:4;
} cmd;
struct
{
uint32_t :8;
uint32_t key:8;
uint32_t id:16;
} scex_id;
struct
{
uint32_t :24;
uint32_t sled:2;
uint32_t tracking:2;
uint32_t id:4;
} tracking_mode;
struct
{
uint32_t sub3:8;
uint32_t key:8;
uint32_t sub2:4;
uint32_t sub:8;
uint32_t id:4;
} scex_cmd;
struct
{
uint32_t :19;
uint32_t LSSL:1;
uint32_t MT:4;
uint32_t dir:1;
uint32_t cmd:3;
uint32_t id:4;
} aseq_cmd;
struct
{
uint32_t :12;
uint32_t count:16;
uint32_t id:4;
} aseq_track_count;
struct
{
uint32_t :21;
uint32_t SOCT:1;
uint32_t ASHS:1;
uint32_t VCOSEL:1;
uint32_t WSEL:1;
uint32_t DOUT_MuteF:1;
uint32_t DOUT_Mute:1;
uint32_t CDROM:1;
uint32_t id:4;
} mode_specification;
struct
{
uint32_t :21;
uint32_t FLFC:1;
uint32_t BiliGL_SUB:1;
uint32_t BiliGL_Main:1;
uint32_t DPLL:1;
uint32_t ASEQ:1;
uint32_t DSPB:1;
uint32_t DCLV:1;
uint32_t id:4;
} function_specification;
struct
{
uint32_t :24;
uint32_t mode:4;
uint32_t id:4;
} clv_mode;
struct
{
uint32_t :8;
uint32_t arg:16;
uint32_t cmd:4;
uint32_t id:4;
} custom_cmd;
uint32_t raw;
} mech_cmd;изменённый обработчик в cmd.cpp
void __time_critical_func(picostation::MechCommand::updateMech)()
{
while (pio_sm_get_rx_fifo_level(PIOInstance::MECHACON, SM::MECHACON))
{
const uint32_t c = pio_sm_get_blocking(PIOInstance::MECHACON, SM::MECHACON) >> 24;
m_latched = m_latched >> 8;
m_latched = m_latched | (c << 24);
m_currentSens = c >> 4;
}
gpio_put(Pin::SENS, m_sensData[m_currentSens]);
}
и после этого все новые команды прекрасно видны
Добавлено позже:Эдак наверное быстрее перевести обсуждение разработки в сторону подключения на разьём привода
ну не совсем на разъём привода, это не наш путь потому что пропадает весь смысл, тогда готовые платы начнут штамповать в китае и их поставит любой дурак, при этом для самостоятельной сборки появляется геморрой по согласованию уровней, а оно нам надо?
идея в подключении голыми проводами, ну на крайняк пару резисторов и керамику нужно будет, хотя и это под вопросом.
не будем уходить от основной концепции проекта, проект должен быть из говна и палок (деталей по минимуму) и проект строго для людей дружащих с паяльником.
P.S. FE и TE всё же нужно эмулить, нельзя сразу сказать что фокус пойман (FE), это нужно сделать после того как команда прилетит от мехакона, ну а TE надо эмулить хотя бы потому что через него как раз защита и работает и если выбирать между принципом того как работает чип и как устроено в оригинале, то выбор конечно в пользу оригинального механизма разблокировки