bsp_dac.h 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. #ifndef _BSP_DAC_H
  2. #define _BSP_DAC_H
  3. //数字音量
  4. #define MAX_DIG_VAL 32767
  5. #define DIG_N0DB 32767 //(int)(MAX_DIG_VAL / 1.000000) //0db
  6. #define DIG_N1DB 29203 //(int)(MAX_DIG_VAL / 1.122018) //-1db
  7. #define DIG_N2DB 26027 //(int)(MAX_DIG_VAL / 1.258925)
  8. #define DIG_N3DB 23197 //(int)(MAX_DIG_VAL / 1.412538)
  9. #define DIG_N4DB 20674 //(int)(MAX_DIG_VAL / 1.584893)
  10. #define DIG_N5DB 18426 //(int)(MAX_DIG_VAL / 1.778279)
  11. #define DIG_N6DB 16422 //(int)(MAX_DIG_VAL / 1.995262)
  12. #define DIG_N7DB 14636 //(int)(MAX_DIG_VAL / 2.238721)
  13. #define DIG_N8DB 13044 //(int)(MAX_DIG_VAL / 2.511886)
  14. #define DIG_N9DB 11626 //(int)(MAX_DIG_VAL / 2.818383)
  15. #define DIG_N10DB 10361 //(int)(MAX_DIG_VAL / 3.162278)
  16. #define DIG_N11DB 9234 //(int)(MAX_DIG_VAL / 3.548134)
  17. #define DIG_N12DB 8230 //(int)(MAX_DIG_VAL / 3.981072)
  18. #define DIG_N13DB 7335 //(int)(MAX_DIG_VAL / 4.466836)
  19. #define DIG_N14DB 6537 //(int)(MAX_DIG_VAL / 5.011872)
  20. #define DIG_N15DB 5826 //(int)(MAX_DIG_VAL / 5.623413)
  21. #define DIG_N16DB 5193 //(int)(MAX_DIG_VAL / 6.309573)
  22. #define DIG_N17DB 4628 //(int)(MAX_DIG_VAL / 7.079458)
  23. #define DIG_N18DB 4125 //(int)(MAX_DIG_VAL / 7.943282)
  24. #define DIG_N19DB 3676 //(int)(MAX_DIG_VAL / 8.912509)
  25. #define DIG_N20DB 3276 //(int)(MAX_DIG_VAL / 10.000000)
  26. #define DIG_N21DB 2920 //(int)(MAX_DIG_VAL / 11.220185)
  27. #define DIG_N22DB 2602 //(int)(MAX_DIG_VAL / 12.589254)
  28. #define DIG_N23DB 2319 //(int)(MAX_DIG_VAL / 14.125375)
  29. #define DIG_N24DB 2067 //(int)(MAX_DIG_VAL / 15.848932)
  30. #define DIG_N25DB 1842 //(int)(MAX_DIG_VAL / 17.782794)
  31. #define DIG_N26DB 1642 //(int)(MAX_DIG_VAL / 19.952623)
  32. #define DIG_N27DB 1463 //(int)(MAX_DIG_VAL / 22.387211)
  33. #define DIG_N28DB 1304 //(int)(MAX_DIG_VAL / 25.118864)
  34. #define DIG_N29DB 1162 //(int)(MAX_DIG_VAL / 28.183829)
  35. #define DIG_N30DB 1036 //(int)(MAX_DIG_VAL / 31.622777)
  36. #define DIG_N31DB 923 //(int)(MAX_DIG_VAL / 35.481339)
  37. #define DIG_N32DB 823 //(int)(MAX_DIG_VAL / 39.810717)
  38. #define DIG_N33DB 733 //(int)(MAX_DIG_VAL / 44.668359)
  39. #define DIG_N34DB 653 //(int)(MAX_DIG_VAL / 50.118723)
  40. #define DIG_N35DB 582 //(int)(MAX_DIG_VAL / 56.234133)
  41. #define DIG_N36DB 519 //(int)(MAX_DIG_VAL / 63.095734)
  42. #define DIG_N37DB 462 //(int)(MAX_DIG_VAL / 70.794578)
  43. #define DIG_N38DB 412 //(int)(MAX_DIG_VAL / 79.432823)
  44. #define DIG_N39DB 367 //(int)(MAX_DIG_VAL / 89.125094)
  45. #define DIG_N40DB 327 //(int)(MAX_DIG_VAL / 100.000000)
  46. #define DIG_N41DB 292 //(int)(MAX_DIG_VAL / 112.201845)
  47. #define DIG_N42DB 260 //(int)(MAX_DIG_VAL / 125.892541)
  48. #define DIG_N43DB 231 //(int)(MAX_DIG_VAL / 141.253754)
  49. #define DIG_N44DB 206 //(int)(MAX_DIG_VAL / 158.489319)
  50. #define DIG_N45DB 184 //(int)(MAX_DIG_VAL / 177.827941)
  51. #define DIG_N46DB 164 //(int)(MAX_DIG_VAL / 199.526231)
  52. #define DIG_N47DB 146 //(int)(MAX_DIG_VAL / 223.872114)
  53. #define DIG_N48DB 130 //(int)(MAX_DIG_VAL / 251.188643)
  54. #define DIG_N49DB 116 //(int)(MAX_DIG_VAL / 281.838293)
  55. #define DIG_N50DB 103 //(int)(MAX_DIG_VAL / 316.227766)
  56. #define DIG_N51DB 92 //(int)(MAX_DIG_VAL / 354.813389)
  57. #define DIG_N52DB 82 //(int)(MAX_DIG_VAL / 398.107171)
  58. #define DIG_N53DB 73 //(int)(MAX_DIG_VAL / 446.683592)
  59. #define DIG_N54DB 65 //(int)(MAX_DIG_VAL / 501.187234)
  60. #define DIG_N55DB 58 //(int)(MAX_DIG_VAL / 562.341325)
  61. #define DIG_N56DB 51 //(int)(MAX_DIG_VAL / 630.957344)
  62. #define DIG_N57DB 46 //(int)(MAX_DIG_VAL / 707.945784)
  63. #define DIG_N58DB 41 //(int)(MAX_DIG_VAL / 794.328235)
  64. #define DIG_N59DB 36 //(int)(MAX_DIG_VAL / 891.250938)
  65. #define DIG_N60DB 0
  66. //模拟音量
  67. #define ANL_N54DB 0x00 //0 0000
  68. #define ANL_N51DB 0x01 //0 0001
  69. #define ANL_N48DB 0x02 //0 0010
  70. #define ANL_N45DB 0x03 //0 0011
  71. #define ANL_N42DB 0x04 //0 0100
  72. #define ANL_N39DB 0x05 //0 0101
  73. #define ANL_N36DB 0x06 //0 0110
  74. #define ANL_N33DB 0x07 //0 0111
  75. #define ANL_N30DB 0x08 //0 1000
  76. #define ANL_N27DB 0x09 //0 1001
  77. #define ANL_N24DB 0x0A //0 1010
  78. #define ANL_N21DB 0x0B //0 1011
  79. #define ANL_N18DB 0x0C //0 1100
  80. #define ANL_N15DB 0x0D //0 1101
  81. #define ANL_N12DB 0x0E //0 1110
  82. #define ANL_N11DB 0x0F //0 1111
  83. #define ANL_N10DB 0x10 //1 0000
  84. #define ANL_N9DB 0x11 //1 0001
  85. #define ANL_N8DB 0x12 //1 0010
  86. #define ANL_N7DB 0x13 //1 0011
  87. #define ANL_N6DB 0x14 //1 0100
  88. #define ANL_N5DB 0x15 //1 0101
  89. #define ANL_N4DB 0x16 //1 0110
  90. #define ANL_N3DB 0x17 //1 0111
  91. #define ANL_N2DB 0x18 //1 1000
  92. #define ANL_N1DB 0x19 //1 1001
  93. #define ANL_N0DB 0x1A //1 1010
  94. #define ANL_P1DB 0x1B //1 1011
  95. #define ANL_P2DB 0x1C //1 1100
  96. #define ANL_P3DB 0x1D //1 1101
  97. #define ANL_P4DB 0x1E //1 1110
  98. #define ANL_P5DB 0x1F //1 1111
  99. extern const uint32_t tbl_sample_rate[10];
  100. extern const u16 dac_dvol_tbl_db[61];
  101. u8 bsp_volume_inc(u8 vol);
  102. u8 bsp_volume_dec(u8 vol);
  103. void bsp_change_volume(u8 vol);
  104. void bsp_change_volume_db(u8 level);
  105. bool bsp_set_volume(u8 vol);
  106. void dac_init(void);
  107. void dac_set_anl_offset(u8 bt_call_flag);
  108. void dac_dnr_init(u8 voice_cnt, u16 voice_pow, u8 silence_cnt, u16 silence_pow);
  109. void dac_dnr_set_sta(u8 sta);
  110. u8 dac_dnr_get_sta(void);
  111. bool bsp_dac_off_for_bt_conn(void);
  112. u16 bsp_volume_convert(u8 vol);
  113. u32 bsp_dac_get_gain_level(u8 vol);
  114. void bsp_set_dac_dvol_tbl(u8* buf);
  115. void bsp_set_auphy_spr(u8 auphy, u8 spr);
  116. void bsp_auphy_adc_mode(u8 auphy, u8 mode);
  117. #endif // _BSP_DAC_H