Add BT1035 driver with manual chapter and expand Si4684 tuning docs.
Implement Bt1035Driver AT init (AT+AUXCFG=1), core AT parser with host tests, wire boot into HardwareBootstrap, and document DAB/FM tuning workflows in ch-si4684. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -3,5 +3,5 @@ idf_component_register(
|
||||
"main.cpp"
|
||||
"hardware_bootstrap.cpp"
|
||||
INCLUDE_DIRS "."
|
||||
REQUIRES core net secure_store adau1701 si4684 tuner audio
|
||||
REQUIRES core net secure_store adau1701 si4684 tuner audio bt1035
|
||||
)
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
#include "adau1701/Adau1701Dsp.hpp"
|
||||
#include "audio/AudioService.hpp"
|
||||
#include "board_pins.hpp"
|
||||
#include "bt1035/Bt1035Driver.hpp"
|
||||
#include "secure_store/NvsAudioProfileStore.hpp"
|
||||
#include "si4684/Si4684Band.hpp"
|
||||
#include "si4684/Si4684Driver.hpp"
|
||||
@@ -58,6 +59,16 @@ adau1701::Adau1701Dsp gAdau1701Dsp(gAdau1701);
|
||||
secure_store::NvsAudioProfileStore gAudioStore;
|
||||
audio::AudioService gAudioService(gAdau1701Dsp, &gAudioStore);
|
||||
|
||||
bt1035::Bt1035Driver gBt1035(
|
||||
bt1035::Bt1035Pins{
|
||||
.uartTx = board::pins::Bt1035UartTx,
|
||||
.uartRx = board::pins::Bt1035UartRx,
|
||||
.rtsGpio = board::pins::Bt1035Rts,
|
||||
.ctsGpio = board::pins::Bt1035Cts,
|
||||
.resetGpio = board::pins::Bt1035Reset,
|
||||
.sysCtlGpio = board::pins::Bt1035SysCtl,
|
||||
});
|
||||
|
||||
bool gReady = false;
|
||||
} // namespace
|
||||
|
||||
@@ -84,6 +95,11 @@ std::expected<void, HardwareBootError> HardwareBootstrap::boot()
|
||||
ESP_LOGW(kTag, "ADAU1701 profile apply failed");
|
||||
}
|
||||
|
||||
if (auto btResult = gBt1035.boot(); !btResult) {
|
||||
ESP_LOGE(kTag, "BT1035 boot failed");
|
||||
return std::unexpected(HardwareBootError::Bt1035BootFailed);
|
||||
}
|
||||
|
||||
gReady = true;
|
||||
ESP_LOGI(kTag, "companion chips ready");
|
||||
return {};
|
||||
|
||||
@@ -37,6 +37,7 @@ namespace hardware {
|
||||
enum class HardwareBootError {
|
||||
Si4684BootFailed,
|
||||
Adau1701BootFailed,
|
||||
Bt1035BootFailed,
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -57,7 +58,7 @@ public:
|
||||
*
|
||||
* @dname boot
|
||||
* @return Ok on success, or HardwareBootError.
|
||||
* @pubstate constructs static Si4684 and ADAU1701 drivers on first call.
|
||||
* @pubstate constructs static Si4684, ADAU1701, and BT1035 drivers on first call.
|
||||
*
|
||||
* Fail-closed: callers must not start Wi-Fi when this returns an error.
|
||||
*
|
||||
|
||||
@@ -47,7 +47,7 @@ void heartbeatTask(void* arg)
|
||||
*/
|
||||
extern "C" void app_main()
|
||||
{
|
||||
ESP_LOGI(kTag, "DigiRadio firmware boot — Slice 5");
|
||||
ESP_LOGI(kTag, "DigiRadio firmware boot — Slice 6");
|
||||
|
||||
auto hwResult = hardware::HardwareBootstrap::boot();
|
||||
if (!hwResult) {
|
||||
|
||||
Reference in New Issue
Block a user