SPI CS parameters

TheBrick
Posts: 6
Joined: Wed May 08, 2019 8:24 am

SPI CS parameters

Postby TheBrick » Thu Jun 06, 2019 9:07 pm

Hello all,

I am trying to set up the ESP32 as a SPI master to listen only to MAX6675 thermocouple chip.

I will be polling for data.
I need to read the data for 16 clock cycles.
I do not need to transmit any commands, simply place CS low and receive my word into a rx buffer(I will actually use rx_data as I only need 2 bytes).
I will ultimately have several MAX6675s sending the data in turn, each with each their own CS or the CS nominated via spics_io_num run through a multiplexer of some description.

My questions:
#0. When setting up the config int the struct struct spi_device_interface_config_t if I specify a value for spics_io_num does esp_err_tspi_device_polling_transmit automatically drop the selected pin on transmit?

#1. Should I
---a) send an empty buffer (spi_transaction_t cmd empty) so that I can use cs_ena_posttrans to count my 16 clock cycles to receive my data in or perhaps s_ena_pretrans so Iread in the data first then do my fake transmit.
--or
---b) send an empty buffer (spi_transaction_t cmd empty) but set spi_transaction_t length = rxlength = 2 bytes long
---or
---c) Not Transmit using esp_err_tspi_device_polling_transmit and just manually pull the CS low. If I do this how can I count the number of clock cycles since CS goes low?

#2. As mentioned above as I wish to unitmatly read from multiple max6675s is in fact better to set spics_io_num = -1 and manually set the CS of the required device low?

Thanks for any pointers

Who is online

Users browsing this forum: martinayotte and 15 guests