OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3741|回复: 12

各位大佬,我想用stm32 控制数字电位器,型号是X9C102.我需要控制48个电位器,而且每个电位器都需要独立控制。每个电位器需要...

[复制链接]

8

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
88
金钱
88
注册时间
2020-4-5
在线时间
30 小时
发表于 2020-6-19 16:21:49 | 显示全部楼层 |阅读模式
10金钱
这个是这个数字电位器的资料:

最佳答案

查看完整内容[请看2#楼]

我的意思是:48个电位器的UD并联接到一个IO, 48个电位器的INC并联接到一个IO, 48个电位器的CS分别接到48个IO, 总共占用50个IO。 如果一个STM32的IO不够,可以用两个STM32嘛,或者用74HC595做串并转换。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

12

主题

3399

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8678
金钱
8678
注册时间
2020-5-11
在线时间
4158 小时
发表于 2020-6-19 16:21:50 | 显示全部楼层
jk123456 发表于 2020-6-19 19:03
各位大佬,我想用stm32 控制数字电位器,型号是X9C102.我需要控制48个电位器,而且每个电位器都需要独立 ...

我的意思是:48个电位器的UD并联接到一个IO,

48个电位器的INC并联接到一个IO,
48个电位器的CS分别接到48个IO,
总共占用50个IO。
如果一个STM32的IO不够,可以用两个STM32嘛,或者用74HC595做串并转换。
专治疑难杂症
回复

使用道具 举报

12

主题

3399

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8678
金钱
8678
注册时间
2020-5-11
在线时间
4158 小时
发表于 2020-6-19 17:11:27 | 显示全部楼层
楼主,标题没显示完,帖子里可否再说一下。
似乎在哪见过这帖,而且有人回答每个CS连一个IO,UD和INC全并联。
专治疑难杂症
回复

使用道具 举报

8

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
88
金钱
88
注册时间
2020-4-5
在线时间
30 小时
 楼主| 发表于 2020-6-19 18:56:52 | 显示全部楼层
LcwSwust 发表于 2020-6-19 17:11
楼主,标题没显示完,帖子里可否再说一下。
似乎在哪见过这帖,而且有人回答每个CS连一个IO,UD和INC全并 ...

各位大佬,我想用stm32 控制数字电位器,型号是X9C102.我需要控制48个电位器,而且每个电位器都需要独立控制。每个电位器需要3个GPIO来控制。但是现有的32好像不够,有哪位大哥知道如何扩张I/O口的吗?谢谢了。
这个是这个数字电位器的资料:https://blog.csdn.net/q865106548 ... earnPai2-3.nonecase
回复

使用道具 举报

8

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
88
金钱
88
注册时间
2020-4-5
在线时间
30 小时
 楼主| 发表于 2020-6-19 18:57:21 | 显示全部楼层
LcwSwust 发表于 2020-6-19 17:11
楼主,标题没显示完,帖子里可否再说一下。
似乎在哪见过这帖,而且有人回答每个CS连一个IO,UD和INC全并 ...

各位大佬,我想用stm32 控制数字电位器,型号是X9C102.我需要控制48个电位器,而且每个电位器都需要独立控制。每个电位器需要3个GPIO来控制。但是现有的32好像不够,有哪位大哥知道如何扩张I/O口的吗?谢谢了。
这个是这个数字电位器的资料:https://blog.csdn.net/q865106548 ... earnPai2-3.nonecase
回复

使用道具 举报

8

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
88
金钱
88
注册时间
2020-4-5
在线时间
30 小时
 楼主| 发表于 2020-6-19 19:01:07 | 显示全部楼层
LcwSwust 发表于 2020-6-19 17:11
楼主,标题没显示完,帖子里可否再说一下。
似乎在哪见过这帖,而且有人回答每个CS连一个IO,UD和INC全并 ...

嗯嗯,是的,很感谢你,上次你也帮我回答了问题。我就是想控制48个电位器,但是STM32自身的引脚不够,我就想如何才能实现这个功能,我想的是怎么扩展io口,有的人说用38译码器。
”每个CS连一个IO,UD和INC全并 “ 我不太清楚什么意思,你可以解释一下吗?谢谢大哥了
回复

使用道具 举报

8

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
88
金钱
88
注册时间
2020-4-5
在线时间
30 小时
 楼主| 发表于 2020-6-19 19:03:31 | 显示全部楼层
LcwSwust 发表于 2020-6-19 17:11
楼主,标题没显示完,帖子里可否再说一下。
似乎在哪见过这帖,而且有人回答每个CS连一个IO,UD和INC全并 ...

各位大佬,我想用stm32 控制数字电位器,型号是X9C102.我需要控制48个电位器,而且每个电位器都需要独立控制。每个电位器需要3个GPIO来控制。
回复

使用道具 举报

8

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
88
金钱
88
注册时间
2020-4-5
在线时间
30 小时
 楼主| 发表于 2020-6-19 19:03:54 | 显示全部楼层
LcwSwust 发表于 2020-6-19 17:11
楼主,标题没显示完,帖子里可否再说一下。
似乎在哪见过这帖,而且有人回答每个CS连一个IO,UD和INC全并 ...

这个是这个数字电位器的资料:https://blog.csdn.net/q865106548 ... earnPai2-3.nonecase
回复

使用道具 举报

8

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
88
金钱
88
注册时间
2020-4-5
在线时间
30 小时
 楼主| 发表于 2020-6-19 19:06:02 | 显示全部楼层
LcwSwust 发表于 2020-6-19 17:11
楼主,标题没显示完,帖子里可否再说一下。
似乎在哪见过这帖,而且有人回答每个CS连一个IO,UD和INC全并 ...

这个是这个数字电位器的资料:https://blog.csdn.net/q865106548 ... earnPai2-3.nonecase
回复

使用道具 举报

2

主题

7

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2018-4-8
在线时间
3 小时
发表于 2020-6-19 23:48:40 来自手机 | 显示全部楼层
iic可以拓展io,用595也可以
回复

使用道具 举报

11

主题

2149

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4930
金钱
4930
注册时间
2015-1-10
在线时间
618 小时
发表于 2020-6-22 16:44:21 | 显示全部楼层
用IIC扩展IO,或是用38译码
回复

使用道具 举报

8

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
88
金钱
88
注册时间
2020-4-5
在线时间
30 小时
 楼主| 发表于 2020-6-22 19:13:40 | 显示全部楼层
LcwSwust 发表于 2020-6-19 16:21
我的意思是:48个电位器的UD并联接到一个IO,

48个电位器的INC并联接到一个IO,

谢谢了,这个方法我也正准备采用,十分感谢,也谢谢楼下给出别的方案的大哥。
回复

使用道具 举报

8

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
88
金钱
88
注册时间
2020-4-5
在线时间
30 小时
 楼主| 发表于 2020-7-18 11:11:41 | 显示全部楼层
LcwSwust 发表于 2020-6-19 17:11
楼主,标题没显示完,帖子里可否再说一下。
似乎在哪见过这帖,而且有人回答每个CS连一个IO,UD和INC全并 ...

你好,大哥上次十分感谢你的回答。下面是我对数字电位器做清零操作,但是电位器好像不受控制,没有达到清零的目的。下面是我写的程序,以及电位器的相关资料
void Delay( uint32_t count )
{
        for(; count!=0; count--);
}
void x9c102p_set(void)
{
          GPIO_Wiper_Config();
         // LED1_GPIO_Config();
          GPIO_ResetBits(GPIO_Wiper_CS_PORT, GPIO_Wiper_CS_PIN);
          Delay(1000);
          GPIO_ResetBits(GPIO_Wiper_UD_PORT, GPIO_Wiper_UD_PIN);
          Delay(1000);
          for(int i=0;i<100;i++)   //将该芯片进行清零处理
             {
                           GPIO_ResetBits(GPIO_Wiper_INC_PORT, GPIO_Wiper_INC_PIN);
                                 Delay(1000);
                                 GPIO_SetBits(GPIO_Wiper_INC_PORT,GPIO_Wiper_INC_PIN );
                                  Delay(1000);
                   }
                           GPIO_SetBits(GPIO_Wiper_CS_PORT, GPIO_Wiper_CS_PIN );
                           Delay(1000);
//               GPIO_SetBits(GPIO_Wiper_INC_PORT,GPIO_Wiper_INC_PIN );
//                     Delay(1000);
                       
}


https://blog.csdn.net/q865106548/article/details/88370272
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-17 01:54

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表