[牛人杂谈] MS51操作TLC2543

[复制链接]
1072|9
 楼主| 598330983 发表于 2020-10-20 21:30 | 显示全部楼层 |阅读模式
使用MS51读取TLC2543的A/D转换值
524835f8ee66f75caa.png
975345f8ee67db2df4.png
 楼主| 598330983 发表于 2020-10-20 21:31 | 显示全部楼层
通过GPIO模拟TLC2543的读写时序,读取其A/D转换值:
660415f8ee69d652c9.png
956085f8ee6aaafffe.png
 楼主| 598330983 发表于 2020-10-20 21:32 | 显示全部楼层
 楼主| 598330983 发表于 2020-10-20 21:32 | 显示全部楼层
  1. /**************************************************************************//**
  2. * [url=home.php?mod=space&uid=288409]@file[/url]     tlc2543.c
  3. * @brief
  4. *           TLC2543 driver source file
  5. *
  6. * @note
  7. * Copyright (C) 2019 Nuvoton Technology Corp. All rights reserved.
  8. *****************************************************************************/

  9. #include "MS51_16K.H"


  10. /*---------------------------------------------------------------------------*/
  11. /* Define                                                                    */
  12. /*---------------------------------------------------------------------------*/
  13. #define TLC2543_CS      P10 //TLC2543 chip select pin.
  14. #define TLC2543_DOUT    P11 //TLC2543 data out pin.
  15. #define TLC2543_DIN     P13 //TLC2543 data in pin.
  16. #define TLC2543_CLK     P14 //TLC2543 clock pin.
  17. #define TLC2543_EOC     P15 //TLC2543 end of conversion pin.


  18. /*---------------------------------------------------------------------------*/
  19. /* Functions                                                                 */
  20. /*---------------------------------------------------------------------------*/
  21. void TLC2543_Delay(void)
  22. {
  23.     _nop_();
  24.     _nop_();
  25.     _nop_();
  26.     _nop_();
  27.     _nop_();
  28. }


  29. void TLC2543_Init(void)
  30. {
  31.     P10_PUSHPULL_MODE; //TLC2543 chip select pin.
  32.     P11_INPUT_MODE;    //TLC2543 data out pin.
  33.     P13_PUSHPULL_MODE; //TLC2543 data in pin.
  34.     P14_PUSHPULL_MODE; //TLC2543 clock pin.
  35.     P15_INPUT_MODE;    //TLC2543 end of conversion pin.

  36.     TLC2543_CS = 1;
  37.     TLC2543_DIN = 1;
  38.     TLC2543_CLK = 0;
  39. }


  40. /**
  41.   * [url=home.php?mod=space&uid=247401]@brief[/url] Read the conversion data of TLC2543.
  42.   *
  43.   * @param[in] u8Channel define the conversion channel, from 0~11.
  44.   *
  45.   * [url=home.php?mod=space&uid=266161]@return[/url]  The conversion data. It is the previous conversion data.
  46. */
  47. uint16_t TLC2543_Read(uint8_t u8Channel)
  48. {
  49.     uint16_t u16DataOut = 0;
  50.     uint16_t u16DataIn = 0;
  51.     uint8_t i = 0;

  52.     u16DataOut = ((uint16_t)u8Channel) << 12;

  53.     TLC2543_CS = 0;

  54.     for(i = 0; i < 12; i++)
  55.     {
  56.         TLC2543_CLK = 0;
  57.         TLC2543_DIN = (bit)(u16DataOut & 0x8000);
  58.         u16DataOut <<= 1;
  59.         TLC2543_Delay();
  60.         TLC2543_CLK = 1;
  61.         u16DataIn <<= 1;
  62.         if(TLC2543_DOUT == 1)
  63.         {
  64.             u16DataIn |= 0x01;
  65.         }
  66.         TLC2543_Delay();
  67.     }

  68.     TLC2543_CLK = 0;
  69.     TLC2543_Delay();
  70.     TLC2543_CS = 1;
  71.     TLC2543_Delay();

  72.     while(TLC2543_EOC == 0);

  73.     return u16DataIn;
  74. }

  75. /*** (C) COPYRIGHT 2019 Nuvoton Technology Corp. ***/
 楼主| 598330983 发表于 2020-10-20 21:33 | 显示全部楼层
EC_MS51_TLC2543_V1.00.zip (838.74 KB, 下载次数: 4)
drer 发表于 2020-11-10 13:23 | 显示全部楼层
TLC2543是ad采集的芯片吗
gwsan 发表于 2020-11-10 13:24 | 显示全部楼层
有没有完整的工程呀
kxsi 发表于 2020-11-10 13:24 | 显示全部楼层
最大采样频率是多少
nawu 发表于 2020-11-10 13:25 | 显示全部楼层
这种芯片的电压基准有几种啊
qcliu 发表于 2020-11-10 13:26 | 显示全部楼层
采样结果稳定吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

267

主题

5575

帖子

22

粉丝
快速回复 在线客服 返回列表 返回顶部