ms5192t_old.c 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. #include "at32f403a_407.h"
  2. #include "ms5192t.h"
  3. #include "FreeRTOS.h"
  4. #include "task.h"
  5. #include "settings_api.h"
  6. #include "io_utils.h"
  7. #include "spi_common.h"
  8. #include "Communication.h"
  9. #include <stdio.h>
  10. #define ADC_GET_STATUS_REG 0x40
  11. //
  12. void adc_gpio_init(void)
  13. {
  14. #if 0
  15. gpio_init_type gpio_initstructure;
  16. crm_periph_clock_enable(CRM_GPIOE_PERIPH_CLOCK, TRUE);
  17. gpio_initstructure.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;
  18. gpio_initstructure.gpio_pull = GPIO_PULL_NONE;
  19. gpio_initstructure.gpio_mode = GPIO_MODE_OUTPUT;
  20. gpio_initstructure.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
  21. gpio_initstructure.gpio_pins = GPIO_PINS_11 | GPIO_PINS_12 |
  22. GPIO_PINS_13 | GPIO_PINS_14;
  23. gpio_init(GPIOE, &gpio_initstructure);
  24. #endif
  25. gpio_init_type gpio_initstructure;
  26. spi_init_type spi_init_struct;
  27. crm_periph_clock_enable(CRM_IOMUX_PERIPH_CLOCK, TRUE);
  28. crm_periph_clock_enable(CRM_GPIOE_PERIPH_CLOCK, TRUE);
  29. gpio_pin_remap_config(SPI4_GMUX_0001, TRUE);
  30. // SCK
  31. gpio_initstructure.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;
  32. gpio_initstructure.gpio_pull = GPIO_PULL_DOWN;
  33. gpio_initstructure.gpio_mode = GPIO_MODE_MUX;
  34. gpio_initstructure.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
  35. gpio_initstructure.gpio_pins = GPIO_PINS_11;
  36. gpio_init(GPIOE, &gpio_initstructure);
  37. // MISO
  38. gpio_initstructure.gpio_pull = GPIO_PULL_UP;
  39. gpio_initstructure.gpio_mode = GPIO_MODE_INPUT;
  40. gpio_initstructure.gpio_pins = GPIO_PINS_13;
  41. gpio_init(GPIOE, &gpio_initstructure);
  42. // MOSI
  43. gpio_initstructure.gpio_pull = GPIO_PULL_UP;
  44. gpio_initstructure.gpio_mode = GPIO_MODE_MUX;
  45. gpio_initstructure.gpio_pins = GPIO_PINS_14;
  46. gpio_init(GPIOE, &gpio_initstructure);
  47. // CS
  48. gpio_initstructure.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;
  49. gpio_initstructure.gpio_pull = GPIO_PULL_UP;
  50. gpio_initstructure.gpio_mode = GPIO_MODE_OUTPUT;
  51. gpio_initstructure.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
  52. gpio_initstructure.gpio_pins = GPIO_PINS_12;
  53. gpio_init(GPIOE, &gpio_initstructure);
  54. MS5192T_CS_HIGH;
  55. crm_periph_clock_enable(CRM_SPI4_PERIPH_CLOCK, TRUE);
  56. spi_default_para_init(&spi_init_struct);
  57. spi_init_struct.transmission_mode = SPI_TRANSMIT_FULL_DUPLEX;
  58. spi_init_struct.master_slave_mode = SPI_MODE_MASTER;
  59. spi_init_struct.mclk_freq_division = SPI_MCLK_DIV_32; //SPI_MCLK_DIV_2;
  60. spi_init_struct.first_bit_transmission = SPI_FIRST_BIT_MSB;
  61. spi_init_struct.frame_bit_num = SPI_FRAME_8BIT;
  62. spi_init_struct.clock_polarity = SPI_CLOCK_POLARITY_HIGH;
  63. spi_init_struct.clock_phase = SPI_CLOCK_PHASE_2EDGE;
  64. spi_init_struct.cs_mode_selection = SPI_CS_SOFTWARE_MODE;
  65. spi_init(MS5192T_SPI, &spi_init_struct);
  66. //spi_hardware_cs_output_enable(SPI3, TRUE);
  67. //adc_mosi_to_spi();
  68. spi_enable(MS5192T_SPI, TRUE);
  69. }
  70. //
  71. void adc_mosi_high(void)
  72. {
  73. gpio_init_type gpio_initstructure;
  74. gpio_initstructure.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;
  75. gpio_initstructure.gpio_pull = GPIO_PULL_UP;
  76. gpio_initstructure.gpio_mode = GPIO_MODE_OUTPUT;
  77. gpio_initstructure.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
  78. gpio_initstructure.gpio_pins = GPIO_PINS_14;
  79. gpio_init(GPIOE, &gpio_initstructure);
  80. gpio_bits_set(GPIOE, GPIO_PINS_14);
  81. }
  82. //
  83. void adc_mosi_to_spi(void)
  84. {
  85. gpio_init_type gpio_initstructure;
  86. gpio_initstructure.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;
  87. gpio_initstructure.gpio_pull = GPIO_PULL_UP;
  88. gpio_initstructure.gpio_mode = GPIO_MODE_MUX;
  89. gpio_initstructure.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
  90. gpio_initstructure.gpio_pins = GPIO_PINS_14;
  91. gpio_init(GPIOE, &gpio_initstructure);
  92. }
  93. //
  94. void adc_test(void)
  95. {
  96. uint8_t tx = 0;
  97. uint8_t rx = 0;
  98. /*
  99. gpio_bits_set(GPIOE, GPIO_PINS_11 | GPIO_PINS_12 | GPIO_PINS_13 | GPIO_PINS_14);
  100. vTaskDelay(100);
  101. gpio_bits_reset(GPIOE, GPIO_PINS_11 | GPIO_PINS_12 | GPIO_PINS_13 | GPIO_PINS_14);
  102. vTaskDelay(100);
  103. */
  104. MS5192T_CS_LOW;
  105. adc_mosi_to_spi();
  106. //common_spi_send(MS5192T_SPI, ADC_GET_STATUS_REG);
  107. //rx = common_spi_receive(MS5192T_SPI);
  108. rx = common_spi_tx_rx(MS5192T_SPI, ADC_GET_STATUS_REG);
  109. rx = common_spi_tx_rx(MS5192T_SPI, 0);
  110. MS5192T_CS_HIGH;
  111. adc_mosi_high();
  112. vTaskDelay(100);
  113. }