You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hello,
I like to connect a MAX6675 at my M5Stack to read my temperature of my BBQ. I small demo with a Arduino library worked fine but only without the display of the M5Stack.
I create a new init procedure:
#define MAX6675_MISO 19
#define MAX6675_SCK 18
#define MAX6675_CS 2
#define MAX6675_MOSI -1
static spi_lobo_device_handle_t max_spi;//max_spi; // SPI handle.
void MAX_PinsInit()
{
// Route all used pins to GPIO control
gpio_pad_select_gpio(MAX6675_CS);
// gpio_pad_select_gpio(MAX6675_MISO);
// gpio_pad_select_gpio(MAX6675_SCK);
// gpio_set_direction(MAX6675_MISO, GPIO_MODE_INPUT);
// gpio_set_pull_mode(MAX6675_MISO, GPIO_PULLUP_ONLY);
gpio_set_direction(MAX6675_CS, GPIO_MODE_OUTPUT);
// gpio_set_direction(MAX6675_SCK, GPIO_MODE_OUTPUT);
}
bool init_Max6675() {
MAX_PinsInit();
// ==== CONFIGURE SPI DEVICES(s) ====================================
spi_lobo_device_handle_t spi;
spi_lobo_bus_config_t buscfg={
.miso_io_num=MAX6675_MISO, // set SPI MISO pin
.mosi_io_num=MAX6675_MOSI, // set SPI MOSI pin
.sclk_io_num=MAX6675_SCK, // set SPI CLK pin
.quadwp_io_num=-1,
.quadhd_io_num=-1,
//.max_transfer_sz = 6*1024,
};
spi_lobo_device_interface_config_t devcfg={
.clock_speed_hz=10000, //8000000, // Initial clock
.mode=0, // SPI mode 0
.spics_io_num=-1, // we will use external CS pin
.spics_ext_io_num=MAX6675_CS, // external CS pin
.flags=0,//LB_SPI_DEVICE_HALFDUPLEX,
};
printf("Pins used: miso=%d, mosi=%d, sck=%d, cs=%d\r\n", MAX6675_MISO, MAX6675_MOSI, MAX6675_SCK, MAX6675_CS);
// ==================================================================
// ==== Initialize the SPI bus and attach the MAX6675 to the SPI bus ====
esp_err_t ret=spi_lobo_bus_add_device(HSPI_HOST, &buscfg, &devcfg, &spi);
assert(ret==ESP_OK);
printf("SPI: MAX6675 device added to spi bus (%d)\r\n", HSPI_HOST);
max_spi = spi;
// ==== Test select/deselect ====
ret = spi_lobo_device_select(spi, 1);
assert(ret==ESP_OK);
ret = spi_lobo_device_deselect(spi);
assert(ret==ESP_OK);
printf("SPI: attached MAX6675 device, speed=%u\r\n", spi_lobo_get_speed(spi));
printf("SPI: bus uses native pins: %s\r\n", spi_lobo_uses_native_pins(spi) ? "true" : "false");
return ret;
}
The pins MAX6675_MISO and MAX6675_SCK are shared with display of M5Stack. Only the MAX6675_CS is an individual pin for MAX6675.
If I call init_Max6675() I got this error:
assertion "spi_dma_chan_enabled & DMA_CHANNEL_ENABLED(dma_chan)" failed: file "/Users/<username>/esp/M5Stack_70_Sonos/components/pg_display/spi_master_lobo.c", line 338, function: spi_lobo_dma_chan_free
abort() was called at PC 0x400d70a3 on core 0
0x400d70a3: __assert_func at /builds/idf/crosstool-NG/.build/HOST-x86_64-apple-darwin12/xtensa-esp32-elf/src/newlib/newlib/libc/stdlib/assert.c:62 (discriminator 8)
Have anyone an idea what I can do?
Was the init of new device outside of spi_master_lobo.c correct?
The text was updated successfully, but these errors were encountered:
Hello,
I like to connect a MAX6675 at my M5Stack to read my temperature of my BBQ. I small demo with a Arduino library worked fine but only without the display of the M5Stack.
I create a new init procedure:
The pins MAX6675_MISO and MAX6675_SCK are shared with display of M5Stack. Only the MAX6675_CS is an individual pin for MAX6675.
If I call init_Max6675() I got this error:
Have anyone an idea what I can do?
Was the init of new device outside of spi_master_lobo.c correct?
The text was updated successfully, but these errors were encountered: