0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

英创信息技术EM9280主板SPI访问TLC2543 AD示例

英创信息技术 来源:英创信息技术 作者:英创信息技术 2020-01-17 08:58 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

英创EM9280工控主板带有半双工的硬件SPI,与SPI协议的芯片通信时比使用GPIO模拟时序更加简单方便。本文以TLC2543芯片为例,介绍如何使用SPI获得芯片的AD数据。也为客户使用SPI驱动与其它型号芯片通信提供参考。

TLC2543芯片简介

TLC2543是德州仪器公司生产的12位开关电容型逐次逼近模数转换器,有11路AD输入。参考芯片手册资料,TLC2543支持8bit,12bit,16bit 的SPI协议,EM9280可以使用8bit和16bit的SPI与TLC2543通信。TLC2543是12位的AD,所以8bit会省略4位数据,而16bit会添加4位软件模拟数据。本文只介绍16bit的使用方法。

参考芯片数据手册。

上图为TLC2543 16bit的时序图,我们可以设置SPI为16bit,数据长度1字节来访问。

TLC2543发送数据定义,例如需要访问AIN6,即D7-D4为0110。读取数据采用单极性,MSB first,8bit,即D3-D0为0100。那么发送的1字节数据就为b0110 0100,即0x64。

因为EM9280的SPI为半双工,第一次16bit发送数据,第二次16bit读入数据。

资料说明TLC2543为12位AD。当使用16bit模式时会返回16位的数据,低4位为无效0。我们可以通过移位,处理为12位的数据

C#程序代码

参考EM9280光盘目录C# SPI例程,对照TLC2543芯片资料,修改相关参数设置。16bit本来应该使用short(2字节)数组进行操作,但是C#的Marshal.Copy只能操作byte数组,所以需要用byte数组来代替short数组,同时2位byte表示1位short。

比如:希望传送short[0] = 0x0c00;那么就设置byte[0] = 0x00;byte[1] = 0x0c;

同样在最后解析数据的时候,byte[0] = 0xc0;byte[1] = 0x6c;那么转换后便是short[0] = 0x6cc0;

先定义SPI为16bit,在SPI.cs中定义

private const int SSP_WORD_LENGTH_16BITS = 0xF;

在SPIConfigure函数中定义

spiinit.eLength = SSP_WORD_LENGTH_16BITS;

执行代码


//spi初始化代码---------------------------------
SPI.SPISetBandRate(hSPI, 2000000); //设置频率2MHz
//spi发送---------------------------------------
i = 0; //读取AIN0
//16bit
TxBuffer[0] = 0;
TxBuffer[1] = (byte)((i << 4) + 0x0c); //i左移4位到D7-D4,后面0x04为D3-D0 
sSPI.BitCount = 16; //设置为16bit
sSPI.pDatBuf = pTxBuffer;
sSPI.dwDatLen = 1; //设置数据1字节
sSPI.bLockCS = 0; //0为发送
Marshal.Copy(TxBuffer, 0, pTxBuffer, 10);
bRes = SPI.WriteFile(hSPI, ref sSPI, sizeSPI, ref uLen, 0);
//spi接收---------------------------------------
sSPI.BitCount = 16;
sSPI.pDatBuf = pRxBuffer;
sSPI.dwDatLen = 10;
sSPI.bLockCS = 1;
bRes = SPI.ReadFile(hSPI, ref sSPI, sizeSPI, ref uLen, 0);
Marshal.Copy(pRxBuffer, RxBuffer, 0, 10);
int AIN = RxBuffer[0] + RxBuffer[1]*256; //读得数据

测试结果

AIN = AIN / 16; //右移4位,舍弃后4位软件模拟数据
Double dAIN = (double)AIN / 4096.0 * 4.86;

这里读得AIN为0x6cc0,右移动4位为0x06cc,为12位AD数据,所以除以2^12即4096,再乘上基准电压(用万用表测得4.86V),结果为2.064V,用万用表量得结果,几乎是一样的。

C程序代码

参考EM9280光盘目录C SPI例程,对照TLC2543芯片资料,修改相关参数设置。

先定义SPI为16bit

#define UseBitCount16 1 //修改该定义为或,实现位数据位或位数据位通讯
#if UseBitCount16
#define dBitCount 16
#else
#define dBitCount 8
#endif

定义BUFFER为16字节数组
WORD SPI_TxBuf[10],SPI_RxBuf[10];

执行代码


//spi初始化代码---------------------------------
SPISetBandRate( hSPI , 2000000); //设置频率2MHz
//spi发送---------------------------------------
i = 0; //读取AIN0
SPI_TxBuf[0]= ((i << 4) + 0x0c)<<8; //i左移位到D7-D4,后面x0c为D3-D0,最后要左移8位,因为协议里16位前8位有效 
hSPI_Box.BitCount = dBitCount; //设置为8bit
hSPI_Box.bLockCS = 0; //0为发送
hSPI_Box.dwDatLen = 1; //设置数据1字节
hSPI_Box.pDatBuf = (BYTE*)SPI_TxBuf;
WriteFile( hSPI , &hSPI_Box , sizeof( hSPI_Box ) , (DWORD*)&i , 0 );
//spi接收---------------------------------------
hSPI_Box.bLockCS = 1;
hSPI_Box.dwDatLen = 1;
hSPI_Box.pDatBuf = (BYTE*)SPI_RxBuf;
ReadFile( hSPI , &hSPI_Box , sizeof( hSPI_Box ) , (DWORD*)&i , 0 );

测试结果
f=(double)(SPI_RxBuf[0]>>4)/4096.0*4.86 ;
这里读得SPI_RxBuf[0]为0x6ca0,右移动4位为0x06ca,为12位AD数据,所以除以2^12即4096,再乘上基准电压(用万用表测得4.86V),结果为2.062V,用万用表量得结果,几乎是一样的。

详细SPI例程代码见光盘SPI例程,相关问题,客户可以联系英创工程师咨询。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式主板
    +关注

    关注

    7

    文章

    6107

    浏览量

    37170
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    龙芯主板——信体系的智慧硬核基石

    信息技术飞速发展的当下,信体系的自主可控与创新升级已成为国家战略层面的关键任务。作为信产业发展的重要基础硬件支撑,国产工控主板的自主可控程度直接决定信创新基建的稳固性,正发挥着日
    的头像 发表于 03-11 10:44 269次阅读
    龙芯<b class='flag-5'>主板</b>——信<b class='flag-5'>创</b>体系的智慧硬核基石

    TLC69699:SPI兼容连接的理想之选

    TLC69699:SPI兼容连接的理想之选 在电子设备的设计中,选择合适的芯片来实现设备间的通信和控制至关重要。TLC69699作为一款具有SPI兼容连接功能的芯片,为
    的头像 发表于 02-26 17:30 732次阅读

    国产金融主板:赋能智慧金融,驱动信产业升级

    随着信息技术的飞速迭代,信产业已在全球范围内崛起,成为拉动经济增长、激活创新动能的核心力量。在信产业的关键布局中,智慧金融建设是重中之重,而国产金融主板的规模化应用,正为智慧金融建
    的头像 发表于 12-31 09:03 254次阅读
    国产金融<b class='flag-5'>主板</b>:赋能智慧金融,驱动信<b class='flag-5'>创</b>产业升级

    国产芯筑基,飞腾主板赋能信未来

    信息技术自主可控成为国家战略的今天,信产业正从“政策驱动”迈向“市场驱动”的高质量发展新阶段。作为信产业链的核心硬件基石,主板的国产化水平直接决定着整个
    的头像 发表于 12-30 09:49 369次阅读
    国产芯筑基,飞腾<b class='flag-5'>主板</b>赋能信<b class='flag-5'>创</b>未来

    TLC2543M 12位模数转换器:特性、原理与应用详解

      在电子设计领域,模数转换器(ADC)是连接模拟世界与数字世界的关键桥梁。TLC2543C、TLC2543I、TLC2543M 这三款 12 位模数转换器凭借其出色的性能和丰富的功能,在众多应用场
    的头像 发表于 12-09 11:19 899次阅读
    <b class='flag-5'>TLC2543</b>M 12位模数转换器:特性、原理与应用详解

    深入剖析TLC2543-EP:一款强大的12位模数转换器

      在电子设计领域,模数转换器(ADC)是连接模拟世界和数字世界的关键桥梁。TLC2543-EP作为一款12位、具有串行控制和11个模拟输入的ADC,在数据采集和处理方面展现出了卓越的性能。今天
    的头像 发表于 12-05 14:19 804次阅读
    深入剖析<b class='flag-5'>TLC2543</b>-EP:一款强大的12位模数转换器

    龙芯中科助力2025教育信息技术应用创新大赛成功举办

    2025年11月13日-15日,由中国教育技术协会主办、浙江大学与中国教育技术协会网络安全专业委员会联合承办,中国电子工业标准化技术协会信息技术应用创新工作委员会、浙江高校信
    的头像 发表于 11-21 16:23 930次阅读

    新时代的硬核基石:龙芯工控主板助力信产业新基建

    在数字技术重塑产业格局的今天,信产业已成为保障国家信息技术安全的核心战略。作为工业自动化系统的大脑,工控主板的自主可控程度直接决定信创新基建的稳固性。
    的头像 发表于 11-05 13:54 400次阅读

    TLC6989 SPI-Compatible Connectivity 芯片技术文档总结

    TLC6989 SPI 兼容连接使 TLC698x 器件系列能够使用标准 SPI 控制器进行控制。该器件具有内部振荡器,可生成 TLC698
    的头像 发表于 08-20 10:23 1060次阅读
    ‌<b class='flag-5'>TLC</b>6989 <b class='flag-5'>SPI</b>-Compatible Connectivity 芯片<b class='flag-5'>技术</b>文档总结

    TLC69699 SPI-Compatible Connectivity 芯片技术文档摘要

    TLC69699 SPI 兼容连接使 TLC696xx 器件系列能够使用标准 SPI 控制器进行控制。该器件具有内部振荡器,可生成 TLC6
    的头像 发表于 08-20 10:14 1290次阅读
    ‌<b class='flag-5'>TLC</b>69699 <b class='flag-5'>SPI</b>-Compatible Connectivity 芯片<b class='flag-5'>技术</b>文档摘要

    智慧新核心,龙芯主板助力信体系再升级

    信息技术飞速发展的当下,信体系的自主可控与创新升级已成为国家战略层面的关键任务。作为信产业发展的重要基础硬件支撑,国产工控主板正发挥着日益重要的作用。
    的头像 发表于 08-11 09:14 812次阅读

    佛瑞亚如何通过信息技术推动业务增长

    在数字化、信息化的浪潮下,信息技术已经不仅是后台工具,更成为驱动企业发展的关键力量。本期Women Inspiring Mobility,我们采访了佛瑞亚中国区信息技术总监马瑛,了解她和团队如何将
    的头像 发表于 07-29 14:00 1051次阅读

    飞腾主板为信产业发展提高硬实力

    信息技术飞速发展的当下,信产业已成为我国实现科技自立自强、保障国家信息安全的关键领域。信,即信息技术应用创新,其核心目标是实现
    的头像 发表于 07-22 18:20 834次阅读

    科普|信是什么?一文读懂“信息技术应用创新”战略

    什么是信?信,即“信息技术应用创新”,是国家推动IT系统自主可控、安全可控的重要战略工程。它不仅是技术层面的创新,更承载着保障国家网络安全、推动产业升级和实现数字主权的重任。简单来
    的头像 发表于 06-13 10:06 9613次阅读
    科普|信<b class='flag-5'>创</b>是什么?一文读懂“<b class='flag-5'>信息技术</b>应用创新”战略

    浪潮下,国产主板有什么新的发展机遇?

    信息技术应用创新浪潮的推动下,国产主板迎来了诸多新的发展机遇。信产业旨在实现信息技术领域的自主可控,这一战略目标为国产主板的发展提供了广
    的头像 发表于 05-09 09:24 878次阅读
    信<b class='flag-5'>创</b>浪潮下,国产<b class='flag-5'>主板</b>有什么新的发展机遇?