potentiometer.c 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #include "potentiometer.h"
  2. #include "tmsgheaders.h"
  3. uint32_t pot_array [2] = {0,0};
  4. void potentiometer_set(reg_addr_pci* pci_bar_1, uint8_t pot_val_ch_a, uint8_t pot_val_ch_b) {
  5. usleep(1);
  6. uint32_t cfg_reg = get_cfg_reg();
  7. SET_REGISTER_PARAM(cfg_reg, CFG_REG_SPI_MODE_BITM, CFG_REG_SPI_MODE_BITP, CFG_REG_SPI_MODE_4MOSI);
  8. pci_bar_1->cfg_reg_addr = cfg_reg;
  9. uint32_t pot_ch_a = (TPL0202_CMD_WR_WIPER_REG_ENUM << TPL0202_CMD_BITP)|(TPL0202_ADR_B_ENUM << TPL0202_ADR_BITP)|(pot_val_ch_a << TPL0202_DATA_BITP);
  10. uint32_t pot_ch_b = (TPL0202_CMD_WR_WIPER_REG_ENUM << TPL0202_CMD_BITP)|(TPL0202_ADR_A_ENUM << TPL0202_ADR_BITP)|(pot_val_ch_b << TPL0202_DATA_BITP);
  11. // Create a header for the Potentiometer 4MOSI
  12. uint32_t pot_header = (ENUM_SPIMODE_4MOSI | (0x2 << BITP_POT_4MOSI_HEADER) | SB_HEADER_TERM_BIT_1);
  13. pci_bar_1->sbtmsg_addr = pot_header;
  14. // Send the data
  15. pci_bar_1->sbtmsg_addr = pot_ch_a;
  16. pci_bar_1->sbtmsg_addr = pot_ch_b;
  17. usleep(1);
  18. SET_REGISTER_PARAM(cfg_reg, CFG_REG_SPI_MODE_BITM, CFG_REG_SPI_MODE_BITP, CFG_REG_SPI_MODE_1MOSI);
  19. pci_bar_1->cfg_reg_addr = cfg_reg;
  20. set_cfg_reg(cfg_reg);
  21. usleep(1);
  22. }
  23. void potentiometer_set_qspi(uint8_t pot_offset, uint8_t pot_slope) {
  24. uint32_t pot_ch_a = (TPL0202_CMD_WR_WIPER_REG_ENUM << TPL0202_CMD_BITP)|(TPL0202_ADR_B_ENUM << TPL0202_ADR_BITP)|(pot_offset << TPL0202_DATA_BITP);
  25. uint32_t pot_ch_b = (TPL0202_CMD_WR_WIPER_REG_ENUM << TPL0202_CMD_BITP)|(TPL0202_ADR_A_ENUM << TPL0202_ADR_BITP)|(pot_slope << TPL0202_DATA_BITP);
  26. pot_array[0] = pot_ch_a;
  27. pot_array[1] = pot_ch_b;
  28. }
  29. void potentiometer_set_offset (reg_addr_pci* pci_bar_1, uint8_t pot_offset) {
  30. uint32_t pot_ch_a = (TPL0202_CMD_WR_WIPER_REG_ENUM << TPL0202_CMD_BITP)|(TPL0202_ADR_A_ENUM << TPL0202_ADR_BITP)|(pot_offset << TPL0202_DATA_BITP);
  31. //Create a header
  32. pci_bar_1->sbtmsg_addr = ((ENUM_SPIMODE_4MOSI) |(0x1 << BITP_POT_4MOSI_HEADER)| TERM_BIT_1);
  33. pci_bar_1->sbtmsg_addr = pot_ch_a;
  34. }
  35. void potentiometer_set_slope (reg_addr_pci* pci_bar_1, uint8_t pot_slope) {
  36. uint32_t pot_ch_b = (TPL0202_CMD_WR_WIPER_REG_ENUM << TPL0202_CMD_BITP)|(TPL0202_ADR_B_ENUM << TPL0202_ADR_BITP)|(pot_slope << TPL0202_DATA_BITP);
  37. //Create a header
  38. pci_bar_1->sbtmsg_addr = ((ENUM_SPIMODE_4MOSI) |(0x1 << BITP_POT_4MOSI_HEADER)| TERM_BIT_1);
  39. pci_bar_1->sbtmsg_addr = pot_ch_b;
  40. }