打印

谁做过att7053计量芯片,stm32模拟spi控制

[复制链接]
5753|30
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mgfzhh|  楼主 | 2014-12-22 17:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
不羁的峰| | 2014-12-23 16:47 | 只看该作者
QQ153690322 说

使用特权

评论回复
板凳
mmuuss586| | 2014-12-23 18:58 | 只看该作者

也许你读写寄存器的值不对吧,用示波器看看发的数据是否正确;

使用特权

评论回复
地板
mgfzhh|  楼主 | 2014-12-24 16:22 | 只看该作者
mmuuss586 发表于 2014-12-23 18:58
也许你读写寄存器的值不对吧,用示波器看看发的数据是否正确;

stm  发出来的数据没问题,时序移植修改的,可以读出来度寄存器的复位值,但是 写个数据却读不出来

使用特权

评论回复
5
mgfzhh|  楼主 | 2014-12-24 16:25 | 只看该作者
本帖最后由 mgfzhh 于 2015-8-10 16:11 编辑
不羁的峰 发表于 2014-12-23 16:47
QQ153690322 说


使用特权

评论回复
6
mmuuss586| | 2014-12-24 18:15 | 只看该作者
mgfzhh 发表于 2014-12-24 16:22
stm  发出来的数据没问题,时序移植修改的,可以读出来度寄存器的复位值,但是 写个数据却读不出来 ...

那就是计量芯片问题了;

使用特权

评论回复
7
伏尔加的鱼| | 2014-12-25 18:01 | 只看该作者
我用的51

使用特权

评论回复
8
mgfzhh|  楼主 | 2014-12-26 09:17 | 只看该作者
本帖最后由 mgfzhh 于 2015-8-10 16:11 编辑
伏尔加的鱼 发表于 2014-12-25 18:01
我用的51

问下,校表怎么做的,有效值和功率 校表没有寄存器,只能用户计算么?频率根据寄存器算出来只有48hz左右。。。femu选择900Khz的。。。。。

使用特权

评论回复
9
mgfzhh|  楼主 | 2014-12-26 09:20 | 只看该作者
mmuuss586 发表于 2014-12-24 18:15
那就是计量芯片问题了;

,额 这个问题解决了,初始化复位,写保护,写电流增益的延时不够。。。有效值和功率 校表没有寄存器,只能用户计算么? 那么功率校正寄存器,电压,电流通道偏置校正寄存器是干吗用的

使用特权

评论回复
10
Zacking| | 2014-12-26 09:47 | 只看该作者
楼主你好,我也是做这个项目,不过我是用att7022e+stm32,请问那个spi操作,stm32的spi需要做像下面这样的模式配置(主从)、帧格式这些配置吗?
SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex; //设置 SPI 全双工   
SPI_InitStructure.SPI_Mode = SPI_Mode_Master;          //设置 SPI 工作模式:设置为主 SPI   
SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;         // 8 位帧结构   
SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low;            //选择了串行时钟的稳态:时钟悬空低   
SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;            //数据捕获于第二个时钟沿   
SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;                //NSS 信号由软件管理   
SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_256; //预分频 256   
SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;         //数据传输从 MSB 位开始   
SPI_InitStructure.SPI_CRCPolynomial = 7;                   //CRC 值计算的多项式   
SPI_Init(SPI2, &SPI_InitStructure); //            根据指定的参数初始化外设 SPIx 寄存器   
为什么我看到下面连接的帖子spi只有io口配置而已,这样能通信吗?
https://bbs.21ic.com/forum.php?mo ... D195%26typeid%3D195
请多多指教,谢谢!!

使用特权

评论回复
11
mgfzhh|  楼主 | 2014-12-26 10:19 | 只看该作者
Zacking 发表于 2014-12-26 09:47
楼主你好,我也是做这个项目,不过我是用att7022e+stm32,请问那个spi操作,stm32的spi需要做像下面这样的 ...

我们是用io 模拟spi时序的,那个连接的帖子也是io模式spi时序的。。。你这个是用单片机的硬件spi,需要初始化结构体。你需要调用库函数进行spi 读写操作
u8 SPI2_ReadWriteByte(u8 TxData)
{
u8 retry=0;           
while (SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_TXE) == RESET) //等待发送区空
{
retry++;
if(retry>200)return 0;
}     
SPI_I2S_SendData(SPI2, TxData);            //通过外设 SPIx 发送一个数据
retry=0;
while (SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_RXNE) == RESET) //等待接收
//完一个 byte
{  retry++;
if(retry>200)return 0;
}
return SPI_I2S_ReceiveData(SPI2);    //返回通过 SPIx 最近接收的数据
}

仅供参考。。。我从来不用硬件的spi  iic  之类的 ,都是用io口模拟时序的

使用特权

评论回复
12
Zacking| | 2014-12-26 10:29 | 只看该作者
mgfzhh 发表于 2014-12-26 10:19
我们是用io 模拟spi时序的,那个连接的帖子也是io模式spi时序的。。。你这个是用单片机的硬件spi,需要初 ...

你这个是原子的例程吗?我也是看他的,我还以为他的例程是用io模拟的,这么说我发的哪个连接里面的配置和读写都是完整和对的?不用像上面那样配置stm32的模式帧格式之类的吗?

使用特权

评论回复
13
mgfzhh|  楼主 | 2014-12-26 10:53 | 只看该作者
Zacking 发表于 2014-12-26 10:29
你这个是原子的例程吗?我也是看他的,我还以为他的例程是用io模拟的,这么说我发的哪个连接里面的配置和 ...

对与不对 需要仿真验证,你好好看看资料 分清硬件spi   和io模拟spi的区别吧

使用特权

评论回复
14
Zacking| | 2014-12-26 15:52 | 只看该作者
mgfzhh 发表于 2014-12-26 10:53
对与不对 需要仿真验证,你好好看看资料 分清硬件spi   和io模拟spi的区别吧 ...

好吧,现在也没硬件可以验证,我先了解好spi,后续再跟你交流讨论

使用特权

评论回复
15
Zacking| | 2014-12-31 13:46 | 只看该作者
请问那个校表的到底是怎么做的呀,不太明白需要哪些步骤。

使用特权

评论回复
16
cnb12345| | 2015-1-2 22:12 | 只看该作者
仔细看看Datasheet 吧

使用特权

评论回复
17
Zacking| | 2015-1-8 15:54 | 只看该作者
cnb12345 发表于 2015-1-2 22:12
仔细看看Datasheet 吧

看了Datasheet,应该是把计算出的校准值写入校表寄存器;上次跟一个网友交流说写入校表寄存器就行了,说之后校表寄存器会自动校准的,这样还有必要用eeprom存放校表值吗?

使用特权

评论回复
18
myeo2006| | 2015-1-16 01:48 | 只看该作者
选择RN8209C吧,价格和性能都很好,加我QQ604170839

使用特权

评论回复
19
jjjkkk00| | 2015-1-24 14:30 | 只看该作者
直接读取固定寄存器,7053B0。
以此检验时序是否OK

使用特权

评论回复
20
mgfzhh|  楼主 | 2015-3-20 14:41 | 只看该作者
Zacking 发表于 2015-1-8 15:54
看了Datasheet,应该是把计算出的校准值写入校表寄存器;上次跟一个网友交流说写入校表寄存器就行了,说 ...

校表寄存器是不会存储  数据的,需要每次上电初始化时候,读取iic存储的数据,写到计量芯片相应的寄存器中,主要是 HFconst,Gphs1,GP,P1_offset,I1_rmsoffset,当然还有一些不需要写入芯片校正值,例如电压系数,电流系数,功率系数等

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

166

帖子

5

粉丝