tmsgheaders.c 3.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. #include "tmsgheaders.h"
  2. uint32_t cfgReg = CFG_REG_RST_FOR_FPGA_OFF |
  3. CFG_REG_WIDTH_SPI_TMSG_24_BIT |
  4. CFG_REG_MOD_1 |
  5. CFG_REG_LR_GPIO_0 |
  6. CFG_REG_HR_GPIO_0;
  7. uint32_t get_cfg_reg(){
  8. return cfgReg;
  9. }
  10. void set_cfg_reg(uint32_t cfgRegToSet){
  11. cfgReg = cfgRegToSet;
  12. }
  13. void rst_for_fpga(void *bar1) {
  14. SET_REGISTER_PARAM(cfgReg, CFG_REG_RST_FOR_FPGA_BITM, CFG_REG_RST_FOR_FPGA_BITP, CFG_REG_RST_FOR_FPGA_ON);
  15. uint32_t *ptr = bar1 + CFG_REG_ADDR;
  16. *ptr = cfgReg;
  17. usleep(1);
  18. SET_REGISTER_PARAM(cfgReg, CFG_REG_RST_FOR_FPGA_BITM, CFG_REG_RST_FOR_FPGA_BITP, CFG_REG_RST_FOR_FPGA_OFF);
  19. *ptr = cfgReg;
  20. }
  21. void shift_reg (void *bar1) {
  22. uint32_t *ptr = bar1 + LMX_BASE_ADDR;
  23. *ptr = InitShRegHeader;
  24. uint32_t *data_ptr = bar1 + LMX_BASE_ADDR ;
  25. *data_ptr = SHIFT_REG;
  26. }
  27. void key_switch (void *bar1, double freq, double lmx_freq) {
  28. if (freq >= 100e3 && freq <= 1000e6) {
  29. if (lmx_freq >= 2750e6 && lmx_freq <= 3600e6) {
  30. uint32_t *ptr_header = bar1 + LMX_BASE_ADDR;
  31. *ptr_header = InitShRegHeader;
  32. // Data for Shift Reg
  33. uint32_t *ptr = bar1 + LMX_BASE_ADDR;
  34. *ptr = 0x1<<SHIFT_REG_SW1_RF_BITP|0x1<<SHIFT_REG_GPIO_SW_015_RF_BITP | 0x0<<SHIFT_REG_SW_MIXER_RF_BITP | 0x0<<SHIFT_REG_SW2_RF_BITP | 0x1 << SHIFT_REG_SW_RF_BITP;
  35. }
  36. else if (lmx_freq > 3600e6 && lmx_freq <=3999.9e6) {
  37. uint32_t *ptr_header = bar1 + LMX_BASE_ADDR;
  38. *ptr_header = InitShRegHeader;
  39. // Data for Shift Reg
  40. uint32_t *ptr = bar1 + LMX_BASE_ADDR;
  41. *ptr = 0x0<<SHIFT_REG_SW1_RF_BITP | 0x0 <<SHIFT_REG_SW_MIXER_RF_BITP | 0x1 <<SHIFT_REG_GPIO_SW_015_RF_BITP | 0x1 << SHIFT_REG_SW_RF_BITP;
  42. }
  43. }
  44. else if (freq > 1000e6 && freq <= 1300e6) {
  45. uint32_t *ptr_header = bar1 + LMX_BASE_ADDR;
  46. *ptr_header = InitShRegHeader;
  47. // Data for Shift Reg
  48. uint32_t *ptr = bar1 + LMX_BASE_ADDR;
  49. *ptr = 0x1<<SHIFT_REG_SW1_RF_BITP | 0x1<<SHIFT_REG_SW2_RF_BITP | 0x1<<SHIFT_REG_GPIO_SW_015_RF_BITP | 0x1<<SHIFT_REG_SW_MIXER_RF_BITP | 0x1<<SHIFT_REG_SW3_RF_BITP | 0x1 << SHIFT_REG_SW_RF_BITP;
  50. }
  51. else if (freq > 1300e6 && freq <= 2200e6) {
  52. uint32_t *ptr_header = bar1 + LMX_BASE_ADDR;
  53. *ptr_header = InitShRegHeader;
  54. // Data for Shift Reg
  55. uint32_t *ptr = bar1 + LMX_BASE_ADDR;
  56. *ptr = 0x1<<SHIFT_REG_SW1_RF_BITP | 0x1<<SHIFT_REG_SW2_RF_BITP | 0x0<<SHIFT_REG_SW3_RF_BITP | 0x1<<SHIFT_REG_GPIO_SW_015_RF_BITP | 0x1<<SHIFT_REG_SW_MIXER_RF_BITP | 0x1 << SHIFT_REG_SW_RF_BITP;
  57. }
  58. else if (freq > 2200e6 && freq <= 3600e6) {
  59. uint32_t *ptr_header = bar1 + LMX_BASE_ADDR;
  60. *ptr_header = InitShRegHeader;
  61. // Data for Shift Reg
  62. uint32_t *ptr = bar1 + LMX_BASE_ADDR;
  63. *ptr = 0x1<<SHIFT_REG_SW1_RF_BITP | 0x0 <<SHIFT_REG_SW2_RF_BITP | 0x1<<SHIFT_REG_SW_MIXER_RF_BITP | 0x1<<SHIFT_REG_GPIO_SW_015_RF_BITP | 0x1 << SHIFT_REG_SW_RF_BITP;
  64. }
  65. else if (freq > 3600e6 && freq <= 5500e6) {
  66. uint32_t *ptr_header = bar1 + LMX_BASE_ADDR;
  67. *ptr_header = InitShRegHeader;
  68. // Data for Shift Reg
  69. uint32_t *ptr = bar1 + LMX_BASE_ADDR;
  70. *ptr = 0x0<<SHIFT_REG_SW1_RF_BITP | 0x1<<SHIFT_REG_SW_MIXER_RF_BITP | 0x1<<SHIFT_REG_GPIO_SW_015_RF_BITP | 0x1 << SHIFT_REG_SW_RF_BITP;
  71. }
  72. else if (freq >5500e6 && freq <= 9000e6){
  73. uint32_t *ptr_header = bar1 + LMX_BASE_ADDR;
  74. *ptr_header = InitShRegHeader;
  75. // Data for Shift Reg
  76. uint32_t *ptr = bar1 + LMX_BASE_ADDR;
  77. *ptr = 0x1<<SHIFT_REG_SW_MIXER_RF_BITP | 0x1<<SHIFT_REG_GPIO_SW_015_RF_BITP | 0x0 << SHIFT_REG_SW_RF_BITP;
  78. }
  79. };