tmsgheaders.c 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. #include "tmsgheaders.h"
  2. void rst_for_fpga(void *bar1) {
  3. uint32_t *ptr = bar1 + RST_ADDR;
  4. *ptr = RST_FOR_FPGA_ON;
  5. usleep(1);
  6. *ptr = RST_FOR_FPGA_OFF;
  7. }
  8. void shift_reg (void *bar1) {
  9. uint32_t *ptr = bar1 + LMX_BASE_ADDR;
  10. *ptr = InitShRegHeader;
  11. uint32_t *data_ptr = bar1 + LMX_BASE_ADDR ;
  12. *data_ptr = SHIFT_REG;
  13. }
  14. void key_switch (void *bar1, double freq, double lmx_freq) {
  15. if (freq >= 100e3 && freq <= 1000e6) {
  16. if (lmx_freq >= 2750e6 && lmx_freq <= 3600e6) {
  17. uint32_t *ptr_header = bar1 + LMX_BASE_ADDR;
  18. *ptr_header = InitShRegHeader;
  19. // Data for Shift Reg
  20. uint32_t *ptr = bar1 + LMX_BASE_ADDR;
  21. *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;
  22. }
  23. else if (lmx_freq > 3600e6 && lmx_freq <=3999.9e6) {
  24. uint32_t *ptr_header = bar1 + LMX_BASE_ADDR;
  25. *ptr_header = InitShRegHeader;
  26. // Data for Shift Reg
  27. uint32_t *ptr = bar1 + LMX_BASE_ADDR;
  28. *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;
  29. }
  30. }
  31. else if (freq > 1000e6 && freq <= 1300e6) {
  32. uint32_t *ptr_header = bar1 + LMX_BASE_ADDR;
  33. *ptr_header = InitShRegHeader;
  34. // Data for Shift Reg
  35. uint32_t *ptr = bar1 + LMX_BASE_ADDR;
  36. *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;
  37. }
  38. else if (freq > 1300e6 && freq <= 2200e6) {
  39. uint32_t *ptr_header = bar1 + LMX_BASE_ADDR;
  40. *ptr_header = InitShRegHeader;
  41. // Data for Shift Reg
  42. uint32_t *ptr = bar1 + LMX_BASE_ADDR;
  43. *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;
  44. }
  45. else if (freq > 2200e6 && freq <= 3600e6) {
  46. uint32_t *ptr_header = bar1 + LMX_BASE_ADDR;
  47. *ptr_header = InitShRegHeader;
  48. // Data for Shift Reg
  49. uint32_t *ptr = bar1 + LMX_BASE_ADDR;
  50. *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;
  51. }
  52. else if (freq > 3600e6 && freq <= 5500e6) {
  53. uint32_t *ptr_header = bar1 + LMX_BASE_ADDR;
  54. *ptr_header = InitShRegHeader;
  55. // Data for Shift Reg
  56. uint32_t *ptr = bar1 + LMX_BASE_ADDR;
  57. *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;
  58. }
  59. else if (freq >5500e6 && freq <= 9000e6){
  60. uint32_t *ptr_header = bar1 + LMX_BASE_ADDR;
  61. *ptr_header = InitShRegHeader;
  62. // Data for Shift Reg
  63. uint32_t *ptr = bar1 + LMX_BASE_ADDR;
  64. *ptr = 0x1<<SHIFT_REG_SW_MIXER_RF_BITP | 0x1<<SHIFT_REG_GPIO_SW_015_RF_BITP | 0x0 << SHIFT_REG_SW_RF_BITP;
  65. }
  66. };