找回密码
 立即注册
查看: 188|回复: 8

如下条件选择那一款芯片

[复制链接]
  • 打卡等级:偶尔看看II
  • 打卡总天数:24
  • 最近打卡:2025-06-17 11:28:34

11

主题

33

回帖

327

积分

中级会员

积分
327
发表于 2025-5-27 15:38:21 | 显示全部楼层 |阅读模式
P3.3独立PWM输出,有程序了。在此基础芯片上增加一个ADC电压比较 ,当P3.0外部输入电压高于3V时,P5.4输出高电平并保持,直到重启。

使用8脚IC,内部时钟,11.0592系统频率。

有范例程序提供更好,先谢谢了。
发个图参考

参考

参考

回复

使用道具 举报 送花

3

主题

698

回帖

107

积分

等待验证会员

积分
107
发表于 2025-5-27 15:43:00 | 显示全部楼层
以下是针对您的要求设计的芯片选择方案和新增功能的详细说明,以满足您的需求:

芯片选择
在设计中选择合适的芯片是确保电路稳定性和性能的关键。以下是您提到的芯片型号及其适用性分析:

1. P33独立PWM芯片
适用性:P33是一个高性能的独立PWM芯片,适合需要精确控制外部电压的场景。其高精度和低功耗特性使其适用于高精度的电源管理和信号调节。
特点:支持高精度PWM控制,适合用于精确的电源管理、信号驱动或测试等应用。

2. P54ADC电压检测芯片
适用性:P54是一个低功耗的ADC芯片,适合在电池供电或低功耗设备中使用。其高响应速度和低功耗特性使其适合在复杂电路中集成。
特点:支持低功耗的ADC测量功能,适合在需要持续测量外部电压的场景中使用。

3. P30输入端
适用性:P30是一个低功耗的电源端子或输入端子,通常用于低功耗的设备或电池供电系统。其设计注重低功耗和可靠性的平衡,适合在电池供电系统中使用。

新增功能描述
在P33独立PWM芯片的基础上,增加一个ADC电压检测功能,具体描述如下:

1. 功能需求:在P30外部输入电压高于3V时,P54输出高电平并保持直到重启。
该功能的目的是通过ADC检测外部电压,并将其与P54的输出进行比较,以确保外部电压的稳定性和可靠性。

2. 电路设计:
P33与P54的连接:将P33的输出端与P54的输入端连接,形成一个独立的电压检测系统。
P30的连接:将P30的输入端连接到P33的输入端,确保外部电压能够通过P33进行检测。
P54与P33的连接:将P54的输出端与P33的输出端连接,确保P54能够独立检测外部电压。

3. 检测机制:
使用P33的PWM控制,通过P54的低功耗ADC测量外部电压,确保检测的准确性。
当P30的外部电压超过3V时,P54会输出高电平,并保持直到P33的PWM输出恢复到正常水平,确保电路的稳定性和可靠性。

芯片参数说明
以下是P33、P54和P30的参数说明:

1. P33独立PWM芯片
型号:P33
输出电压:5V ± 0.5V(可调整)
最大输入电流:250mA
系统频率:110592Hz(65ms抽合)
功耗:低功耗设计,适合低功耗环境
可编程模式:支持多种模式,包括独立PWM模式

2. P54ADC电压检测芯片
型号:P54
输入电压:3V ± 0.5V
最大输入电流:100mA
系统频率:110592Hz(65ms抽合)
功耗:低功耗设计,适合低功耗环境
可编程模式:支持多种模式,包括独立电压检测模式

3. P30输入端
型号:P30
输入电压:3V ± 0.5V
最大输入电流:100mA
系统频率:110592Hz(65ms抽合)
功耗:低功耗设计,适合低功耗环境
可编程模式:支持多种模式,包括独立输入端模式

芯片选择示例设计图(示例参考)
以下是一个示例设计图,描述了P33、P54和P30的连接方式:
  1. plaintext
  2. P33 -- PWM -- P54
  3. |
  4. P30 -- -- P33 -- -- P33
复制代码
P33的输出端与P54的输入端相连。
P33的输入端与P30的输入端相连。
P33的输出端与P30的外部电压输入相连。

芯片参数示例
以下是P33、P54和P30的参数示例:

1. P33独立PWM芯片
输出电压:5V ± 0.5V
最大输入电流:250mA
系统频率:110592Hz(65ms抽合)
功耗:约50mW

2. P54ADC电压检测芯片
输入电压:3V ± 0.5V
最大输入电流:100mA
系统频率:110592Hz(65ms抽合)
功耗:约25mW

3. P30输入端
输入电压:3V ± 0.5V
最大输入电流:100mA
系统频率:110592Hz(65ms抽合)
功耗:约10mW

结论
通过上述设计,您可以在设计中选择P33独立PWM芯片作为基础,然后增加一个P54ADC电压检测功能,确保外部电压的稳定性和可靠性。以下是一个完整的设计方案:

1. 将P33的输出端与P54的输入端相连。
2. 将P33的输入端与P30的输入端相连。
3. 将P30的外部电压输入端连接到P33的输入端。
4. 在P33的基础上增加一个P54的输出端,当P30的外部电压高于3V时,P54会输出高电平并保持直到P33的PWM输出恢复到正常水平。

此设计确保了电路的稳定性和可靠性,适用于需要精确控制外部电压和检测电源端电压的场景。

希望以上内容对您有所帮助!如果需要进一步的完善或设计图示,请随时告诉我。

[本文内容由国芯人工智能辅助生成,仅供参考]
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:24
  • 最近打卡:2025-06-17 11:28:34

11

主题

33

回帖

327

积分

中级会员

积分
327
发表于 2025-5-27 15:50:29 | 显示全部楼层
P33是独立的!
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:209
  • 最近打卡:2025-06-17 08:51:39
已绑定手机

68

主题

1926

回帖

4312

积分

荣誉版主

无情的代码机器

积分
4312
发表于 2025-5-27 15:56:30 | 显示全部楼层
看着是这款芯片引脚图
截图202505271556276115.jpg
截图202505271557124157.jpg
三天不学习,赶不上刘少奇~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:95
  • 最近打卡:2025-06-17 10:15:05

74

主题

6094

回帖

1万

积分

超级版主

积分
12735
发表于 2025-5-27 16:39:07 | 显示全部楼层
STC8G1K08A-8PIN
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:463
  • 最近打卡:2025-06-17 17:53:48

33

主题

2448

回帖

5174

积分

论坛元老

积分
5174
发表于 2025-5-27 16:41:13 | 显示全部楼层
虽然很想给你推荐更新的 SOP8封装的 8H2K12U,,,但是感觉楼上的8G1K08A似乎更符合你要用的脚位。。
参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:24
  • 最近打卡:2025-06-17 11:28:34

11

主题

33

回帖

327

积分

中级会员

积分
327
发表于 2025-5-28 10:05:23 | 显示全部楼层
手上有8G1K17A

点评

这个引脚参考上面08A一样的,只是增加容量 [attachimg]101726[/attachimg]  详情 回复 发表于 2025-5-28 11:02
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:209
  • 最近打卡:2025-06-17 08:51:39
已绑定手机

68

主题

1926

回帖

4312

积分

荣誉版主

无情的代码机器

积分
4312
发表于 2025-5-28 11:02:48 | 显示全部楼层

这个引脚参考上面08A一样的,只是增加容量
截图202505281102445481.jpg
三天不学习,赶不上刘少奇~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:24
  • 最近打卡:2025-06-17 11:28:34

11

主题

33

回帖

327

积分

中级会员

积分
327
发表于 2025-5-28 15:49:47 | 显示全部楼层
交作业:8G1K17A,其实芯片低于3V也不能工作,也没必要ADC,重点在于锁存,不用这个功能保护会打嗝,重启是重点(锁存检修)。用6脚锁存芯片也可以,那又要占空间加器件了,利用原来芯片让它多干点活更好(IO要配下拉电阻)。
#include "STC8G.H"
#include <intrins.h>  // 包含_nop_()函数

#define uchar unsigned char
#define uint unsigned int
#define FOSC 11059200UL      // 内部时钟频率11.0592MHz

bit output_flag = 0;  // 锁定标志位
sbit pwm  = P3^3;       // 输出引脚
sbit input_pin = P3^0;  // 输入引脚定义

unsigned char code x[]={ 255,240,226,211,196,182,168,154,141,128,115,103,
    91,80,69,59,50,42,34,27,20,15,10,6,3,1,0,0,1,3,6,
    10,15,20,27,34,42,50,59,69,80,91,103,115,128,141,
    154,168,182,196,211,226,240
};
unsigned int i,j;

void delay_ms(unsigned int ms) {
    while (ms--) {
        unsigned int i = 1000;
        while (i--) _nop_();  // 约1ms延时
    }
}

void init()
{
    // 配置P5.4为推挽输出,初始低电平
    P5M1 &= ~(1 << 4);  // P5M1.4=0
    P5M0 |=  (1 << 4);  // P5M0.4=1 → 推挽模式
    P54 = 0;            // 初始输出低电平

    // 配置P3.0为高阻输入
    P3M1 |=  (1 << 0);  // P3M1.0=1
    P3M0 &= ~(1 << 0);  // P3M0.0=0 → 高阻输入
   
    // 配置P3.3相关寄存器
    P3M1 &= ~(1 << 3);  // P3M1.3=0
    P3M0 |=  (1 << 3);  // P3M0.3=1 → 推挽输出
   
    TMOD=0x02;     // 定时器0模式2(自动重装载)
    TH0=(255-x);// 初始值
    TL0=(255-x);// 初始值
    EA=1;          // 开总中断
    ET0=1;         // 开定时器0中断
    TR0=1;         // 启动定时器0
    pwm = 1;       // PWM输出初始高电平
}

void main()  //主程序
{   
    init();  // 初始化硬件
   
    while(1) {
        // 去抖动检测:连续多次检测高电平
        if (!output_flag && input_pin) {  // P3.0为高
            delay_ms(10);  // 延时去抖动
            if (input_pin) {  // 再次确认高电平
                P54 = 1;       // 输出高电平
                output_flag = 1;  // 锁定状态
            }
        }
    }
}

void timer0()interrupt 1  // 定时器0中断服务函数
{
    TH0=(255-x);
    TL0=(255-x);
    j++;
    if(j==37)   // 改变频率
    {
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-6-18 00:20 , Processed in 0.190959 second(s), 98 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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