proj: switching to ESP32C6

This commit is contained in:
2024-12-14 21:22:20 +01:00
parent 2dc06e8d79
commit bd923e4fdc
11 changed files with 566 additions and 2471 deletions
+1 -1
View File
@@ -2,7 +2,7 @@
"configurations": [
{
"name": "ESP-IDF",
"compilerPath": "${config:idf.toolsPathWin}\\tools\\xtensa-esp-elf\\esp-13.2.0_20240530\\xtensa-esp-elf\\bin\\xtensa-esp32-elf-gcc.exe",
"compilerPath": "${config:idf.toolsPathWin}\\tools\\riscv32-esp-elf\\esp-13.2.0_20240530\\riscv32-esp-elf\\bin\\riscv32-esp-elf-gcc.exe",
"compileCommands": "${config:idf.buildPath}/compile_commands.json",
"includePath": [
"${config:idf.espIdfPath}/components/**",
+2 -2
View File
@@ -11,9 +11,9 @@
},
"idf.espIdfPathWin": "C:\\Tools\\ESP-IDF\\v5.3\\esp-idf",
"idf.openOcdConfigs": [
"board/esp32-wrover-kit-3.3v.cfg"
"board/esp32c6-builtin.cfg"
],
"idf.portWin": "COM4",
"idf.portWin": "COM9",
"idf.pythonBinPathWin": "C:\\Tools\\ESP\\python_env\\idf5.3_py3.11_env\\Scripts\\python.exe",
"idf.toolsPathWin": "C:\\Tools\\ESP",
"idf.flashType": "UART",
@@ -204,7 +204,6 @@ class StepperMotor {
}
void demoFullTurn() {
auto steps = _config.resolution * _config.steps;
ESP_LOGI("Stepper", "Running %i * %i steps for full turn", _config.resolution, _config.steps);
ESP_LOGI("Stepper", "Start is %f.2", getScaledPos());
+1 -1
View File
@@ -19,7 +19,7 @@ PwmPort::PwmPort(ledc_timer_t timer, ledc_channel_t channel, gpio_num_t output,
.duty_resolution = resolution,
.timer_num = timer,
.freq_hz = frequency,
.clk_cfg = LEDC_AUTO_CLK,
.clk_cfg = LEDC_AUTO_CLK
};
ESP_ERROR_CHECK(ledc_timer_config(&ledc_timer));
@@ -63,7 +63,6 @@ StepperDriverDrv8833::StepperDriverDrv8833(Pins pins, int resolution)
populateLookUps(resolution, _outA1, _outA2, _outB1, _outB2);
char buffer[resolution * 2 + 10];
ESP_LOGD("Stepper", "Output Data:");
ESP_LOG_BUFFER_HEXDUMP("Stepper", _outA1.data(), _outA1.size(), ESP_LOG_DEBUG);
ESP_LOG_BUFFER_HEXDUMP("Stepper", _outA2.data(), _outA2.size(), ESP_LOG_DEBUG);
+1 -2
View File
@@ -43,7 +43,6 @@ class ProfileGenerator {
Profile createRapidStartSwingInEnd(float delta) {
init();
auto pnt = getStopDistance(_aMax, _wMax);
auto wMax = _wMax;
// t0..t1: acceleration to max velocity
accelUntil(_aMax * 2, 0, [wMax](Point pnt) { return pnt.w > (wMax * 2); });
@@ -159,7 +158,7 @@ class ProfileGenerator {
t = t + _dT;
float env = a * t;
float p = std::sin(sTau * t / TwMax) * env * TwMax / sTau;
float w = (p - _pVec.back()) / _dT;
float w = (p - pX) / _dT;
if (w > _wMax) {
break;
}
+1 -1
View File
@@ -11,5 +11,5 @@ dependencies:
type: idf
version: 5.3.0
manifest_hash: 98a89ad95a9bf328a52537968b9e16f59396acd948940746898355de27de317f
target: esp32
target: esp32c6
version: 1.0.0
+30 -28
View File
@@ -117,28 +117,33 @@ void LightingTask() {
ESP_LOGI(TAG, "Start Lighting");
static I2cMaster master(I2C_NUM_0,
/*sda=*/ GPIO_NUM_0,
/*scl=*/ GPIO_NUM_4);
/*sda=*/ GPIO_NUM_10,
/*scl=*/ GPIO_NUM_11);
// static PmwExpanderPca9685 pca9685(master);
static PmwExpanderPca9685 ledDriver1(master, /*iverted=*/ true);
static PmwExpanderPca9685 ledDriver2(master, /*iverted=*/ true, 0x41);
static PmwExpanderPca9685 ledDriver1(master, /*iverted=*/ false);
static PmwExpanderPca9685 ledDriver2(master, /*iverted=*/ false, 0x41);
PmwExpanderPca9685::GrayValues values[2];
while (true) {
ESP_LOGI("Light", "Tick");
OutputPort pwmEnable(GPIO_NUM_5, GpioPort::Logic::Inverted);
pwmEnable.write(true);
int idx = 0;
while (true) {
values[0].fill(0);
values[1].fill(0);
values[0][12] = 0x100;
values[0][15] = 0x100;
// values[x][4] = 0x200; // Actually first
values[0][idx] = 0x200;
ledDriver1.sendImage(values[0]);
values[1][1] = 0x100;
values[1][2] = 0x100;
// values[1][4] = 0x100; // Actually first
values[1][idx] = 0x400;
ledDriver2.sendImage(values[1]);
fos::Task::delayMs(1000);
if (++idx >= 16 ) {
idx = 0;
}
fos::Task::delayMs(100);
}
}
@@ -148,14 +153,20 @@ void MovementTask() {
StepperDriverDrv8833::Pins stepperPins{
LEDC_TIMER_0,
{LEDC_CHANNEL_0, LEDC_CHANNEL_1, LEDC_CHANNEL_2, LEDC_CHANNEL_3},
{GPIO_NUM_16, GPIO_NUM_15, GPIO_NUM_14, GPIO_NUM_13},
{GPIO_NUM_23, GPIO_NUM_22, GPIO_NUM_21, GPIO_NUM_20},
};
StepperDriverDrv8833 stepperDriver(stepperPins, MicroSteps);
stepperDriver.setPos(0);
StepperMotor::Config stepperCfg{1.8F, MicroSteps};
InputPort initSens(GPIO_NUM_33);
initSens.setLogic(GpioPort::Logic::Inverted);
InputPort initSens(GPIO_NUM_18);
InputPort motorFault(GPIO_NUM_8);
motorFault.setLogic(GpioPort::Logic::Inverted);
OutputPort motorSleep(GPIO_NUM_15, GpioPort::Logic::Inverted);
motorSleep.write(false);
StepperMotor stepper(stepperCfg, stepperDriver, initSens);
int i = 0;
@@ -178,21 +189,13 @@ void MovementTask() {
void IoTest()
{
ESP_LOGI(TAG, "Start IO");
InputPort in2(GPIO_NUM_32);
InputPort mFault(GPIO_NUM_35);
OutputPort nEnable(GPIO_NUM_2);
OutputPort nReset(GPIO_NUM_5);
InputPort in2(GPIO_NUM_19);
OutputPort nReset(GPIO_NUM_9);
while (true) {
ESP_LOGI("Light", "InValues %i %i", in2.read(), mFault.read());
nEnable.write(true);
nReset.write(true);
fos::Task::delayMs(500);
nEnable.write(false);
nReset.write(false);
fos::Task::delayMs(500);
}
nReset.write(in2.read());
fos::Task::delayMs(100);
}
}
void app_main(void)
@@ -203,7 +206,6 @@ void app_main(void)
ret = nvs_flash_init();
}
ESP_ERROR_CHECK(ret);
// ESP_ERROR_CHECK(esp_event_loop_create_default());
initialize_ethernet();
static fos::Task lightingTask(LightingTask, "Lights", 0x4000uL);
static fos::Task movementTask(MovementTask, "Motor", 0x4000uL);
-2021
View File
File diff suppressed because it is too large Load Diff
+508 -401
View File
File diff suppressed because it is too large Load Diff
+22 -12
View File
@@ -1,25 +1,35 @@
#
# Example Ethernet Configuration
#
# CONFIG_ETH_USE_SPI_ETHERNET is not set
CONFIG_EXAMPLE_USE_INTERNAL_ETHERNET=y
CONFIG_EXAMPLE_ETH_PHY_LAN87XX=y
CONFIG_EXAMPLE_ETH_MDC_GPIO=23
CONFIG_EXAMPLE_ETH_MDIO_GPIO=18
CONFIG_EXAMPLE_ETH_PHY_RST_GPIO=12
CONFIG_EXAMPLE_ETH_PHY_ADDR=0
# CONFIG_EXAMPLE_USE_SPI_ETHERNET is not set
CONFIG_EXAMPLE_USE_SPI_ETHERNET=y
CONFIG_EXAMPLE_SPI_ETHERNETS_NUM=1
# CONFIG_EXAMPLE_USE_DM9051 is not set
# CONFIG_EXAMPLE_USE_KSZ8851SNL is not set
CONFIG_EXAMPLE_USE_W5500=y
CONFIG_EXAMPLE_ETH_SPI_HOST=1
CONFIG_EXAMPLE_ETH_SPI_SCLK_GPIO=6
CONFIG_EXAMPLE_ETH_SPI_MOSI_GPIO=7
CONFIG_EXAMPLE_ETH_SPI_MISO_GPIO=2
CONFIG_EXAMPLE_ETH_SPI_CLOCK_MHZ=16
CONFIG_EXAMPLE_ETH_SPI_CS0_GPIO=3
CONFIG_EXAMPLE_ETH_SPI_INT0_GPIO=4
CONFIG_EXAMPLE_ETH_SPI_POLLING0_MS=0
CONFIG_EXAMPLE_ETH_SPI_PHY_RST0_GPIO=-1
CONFIG_EXAMPLE_ETH_SPI_PHY_ADDR0=1
# end of Example Ethernet Configuration
#
# Ethernet
#
# CONFIG_ETH_RMII_CLK_INPUT is not set
CONFIG_ETH_RMII_CLK_OUTPUT=y
# CONFIG_ETH_RMII_CLK_OUTPUT_GPIO0 is not set
# CONFIG_ETH_SPI_ETHERNET_W5500 is not set
#
# Wi-Fi
#
# CONFIG_ESP_WIFI_GMAC_SUPPORT is not set
#
# Serial flasher config
#
CONFIG_ESPTOOLPY_FLASHSIZE_8MB=y
CONFIG_ESPTOOLPY_FLASHSIZE="8MB"