ls7366r - Driver for LSI LS7366R quadrature counter

group ls7366r

ESP-IDF driver for LS7366R Quadrature Encoder Counter.

Datasheet: https://lsicsi.com/datasheets/LS7366R.pdf

Copyright (c) 2021 Joshua Kallus joshk.kallus3@gmail.com

MIT Licensed as described in the file LICENSE

Defines

LS7366R_MAX_CLOCK_SPEED_HZ

Enums

enum ls7366r_count_type_t

Counter type.

Values:

enumerator LS7366R_NON_QUAD
enumerator LS7366R_1x_QUAD
enumerator LS7366R_2x_QUAD
enumerator LS7366R_4X_QUAD
enum ls7366r_count_mode_t

Count mode.

Values:

enumerator LS7366R_FREE_RUN
enumerator LS7366R_SINGLE_COUNT
enumerator LS7366R_RANGE_LIMIT
enumerator LS7366R_N_MODULO
enum ls7366r_index_mode_t

Index mode.

Values:

enumerator LS7366R_INDEX_DISABLED
enumerator LS7366R_INDEX_LOAD_CNTR
enumerator LS7366R_INDEX_RESET_CNTR
enumerator LS7366R_INDEX_LOAD_OTR
enum ls7366r_index_sync_t

Index sync or async.

Values:

enumerator LS7366R_INDEX_SYNCHRONOUS
enumerator LS7366R_INDEX_ASYNCHRONOUS
enum ls7366r_counter_bits_t

Counter bits.

Values:

enumerator LS7366R_8_BIT
enumerator LS7366R_16_BIT
enumerator LS7366R_24_BIT
enumerator LS7366R_32_BIT
enum ls7366r_filter_clock_divider_t

Counter clock divider.

Values:

enumerator LS7366R_FILTER_CLK_1
enumerator LS7366R_FILTER_CLK_2
enum ls7366r_counter_enable_t

Counter enable.

Values:

enumerator LS7366R_COUNTER_ENABLE
enumerator LS7366R_COUNTER_DISABLE
enum ls7366r_flag_carry_mode_t

Counter flag carry mode.

Values:

enumerator LS7366R_FLAG_CARRY_ENABLE
enumerator LS7366R_FLAG_CARRY_DISABLE
enum ls7366r_flag_borrow_mode_t

Counter flag borrow mode.

Values:

enumerator LS7366R_FLAG_BORROW_ENABLE
enumerator LS7366R_FLAG_BORROW_DISABLE
enum ls7366r_flag_index_mode_t

Counter flag index mode.

Values:

enumerator LS7366R_FLAG_INDEX_ENABLE
enumerator LS7366R_FLAG_INDEX_DISABLE
enum ls7366r_flag_compare_enable_t

Counter flag compare mode.

Values:

enumerator LS7366R_FLAG_COMPARE_ENABLE
enumerator LS7366R_FLAG_COMPARE_DISABLE

Functions

esp_err_t ls7366r_init_desc(ls7366r_t *dev, spi_host_device_t host, uint32_t clock_speed_hz, gpio_num_t cs_pin)

Initialize device descriptor.

Parameters:
  • dev – Device descriptor

  • host – SPI host

  • clock_speed_hz – SPI clock speed, Hz

  • cs_pin – CS GPIO number

Returns:

ESP_OK on success

esp_err_t ls7366r_free_desc(ls7366r_t *dev)

Free device descriptor.

Parameters:

dev – Device descriptor

Returns:

ESP_OK on success

esp_err_t ls7366r_set_config(ls7366r_t *dev, const ls7366r_config_t *config)

Configure device.

Parameters:
  • dev – Device descriptor

  • config – Configuration

Returns:

ESP_OK on success

esp_err_t ls7366r_get_count(ls7366r_t *dev, int32_t *count)

Get current count.

Parameters:
  • dev – Device descriptor

  • count – Count variable

Returns:

ESP_OK on success

esp_err_t ls7366r_set_compare_val(ls7366r_t *dev, int32_t cmp)

set value for compare

Parameters:
  • dev – Device descriptor

  • cmp – Compare value

Returns:

ESP_OK on success

esp_err_t ls7366r_clear_counter(ls7366r_t *dev)

clear counter value, set to 0

Parameters:

dev – Device descriptor

Returns:

ESP_OK on success

esp_err_t ls7366r_counter_enable(ls7366r_t *dev, bool enable)

enable or disable counter

Parameters:
  • dev – Device descriptor

  • enable – Counter enabled or disabled

Returns:

ESP_OK on success

struct ls7366r_flag_mode_t
#include <ls7366r.h>
struct ls7366r_t
#include <ls7366r.h>

Device descriptor.

struct ls7366r_config_t
#include <ls7366r.h>

Device configuration.