发作品签到
专业版

Ai8051U核心板

工程标签

437
0
0
0

简介

支持8位和32位模式的新51~ 可选外设:WS2812、QSPI FLASH

简介:支持8位和32位模式的新51~ 可选外设:WS2812、QSPI FLASH
基于Ai8051U开源创意电子设计大赛

开源协议

GPL 3.0

创建时间:2024-10-24 22:48:32更新时间:2024-12-05 13:59:37

描述

演示视频已发布

V1.0精简版:验证芯片基础功能,采用3.3V供电,支持冷启动,板载32768RTC晶振

V1.0电路特性:主要参考手册里的的硬件USB直接下载/仿真3.3V原理图

1.修改了供电和下载接口,采用Type-C母座,兼容硬件USB直接下载和串口冷启动自动下载(需配合STC8H2K12U自动下载器使用)

2.将ldo由1117修改为带EN脚的RT9013,添加了按键复位电路以实现手动冷启动USB下载

V1.0试验箱例程演示:

1.ST7789驱动1.3寸TFT240x240显示屏实验程序-SPI-DMA刷屏

2.内部RTC时钟程序-使用外部32768晶振,才能保证RTC精度

3.DMA SPI刷新OLED12864显示屏程序,SSD1306驱动,0.96寸

另外自己跟教程写了个USB-HID不断电自动下载+点灯例程,使用STC32的库函数,代码如下:

#include "AI8051.h"
#include "../library/STC32G_GPIO.h"
#include "../COMM/usb.h"    //USB调试及复位所需头文件

#define Timer0_Reload   (65536UL -(MAIN_Fosc / 1000))       //Timer 0 中断频率, 1000次/秒

// USB调试及复位所需定义
char *USER_DEVICEDESC = NULL;
char *USER_PRODUCTDESC = NULL;
char *USER_STCISPCMD = "@STCISP#"; // 设置自动复位到ISP区的用户接口命令
void Timer0_Init(void);
void USB_Download_Init(void);
//-------------------------

void  delay_ms(u16 ms);
void GPIO_Config(void);

void main()
{
    EAXFR = 1;
    WTST = 0X00;
    CKCON = 0X00;
    // P5M1=0X00;
    // P5M0=0X00;
    // P50=0;
    GPIO_Config();
    USB_Download_Init();
    while(1)
    {
        P50=1;
        delay_ms(1000);
        P50=0;
        delay_ms(100);
    }
}

void GPIO_Config(void)
{
    GPIO_InitTypeDef GPIO_InitStruct;
    GPIO_InitStruct.Pin=GPIO_Pin_0;
    GPIO_InitStruct.Mode=GPIO_OUT_OD;
    GPIO_Inilize(GPIO_P5,&GPIO_InitStruct);
}

//========================================================================
// 函数: void  delay_ms(unsigned char ms)
// 描述: 延时函数。
// 参数: ms,要延时的ms数, 这里只支持1~255ms. 自动适应主时钟.
// 返回: none.
// 版本: VER1.0
// 日期: 2013-4-1
// 备注:
//========================================================================
void  delay_ms(u16 ms)
{
     u16 i;
     do{
          i = MAIN_Fosc / 6000;
          while(--i);
     }while(--ms);
}

void USB_Download_Init(void)
{
    // USB调试及复位所需代码-----
    P3M0 &= ~0x03;
    P3M1 |= 0x03;
    IRC48MCR = 0x80;
    while (!(IRC48MCR & 0x01))
        ;
    usb_init();
    Timer0_Init();
    EUSB = 1; // IE2相关的中断位操作使能后,需要重新设置EUSB
    EA = 1;   // 打开总中断
    //-------------------------
}

void Timer0_Init(void)
{
    // Timer0初始化
    AUXR |= 0x80; // 定时器时钟1T模式
    TMOD &= 0xF0; // 设置定时器模式
    TL0 = (u8)(Timer0_Reload % 256);   // 设置定时初始值
    TH0 = (u8)(Timer0_Reload / 256);   // 设置定时初始值
    TF0 = 0;      // 清除TF0标志
    TR0 = 1;      // 定时器0开始计时
}

void timer0_int(void) interrupt 1 // 1ms 中断函数
{
    if (bUsbOutReady) // USB调试及复位所需代码
    {
        usb_OUT_done();
    }
}
V2.0版本在1.0的基础上增加了WS2812可寻址RGB彩灯
以及QSPI FLASH
V2.0例程演示:
1.硬件QSPI访问FLASH-串口监控
2.SPI-DMA发送-驱动WS2812彩灯
需注意:
1.WS2812采用5V直接供电,电源不受按键控制,因此MCU断电后仍能保持显示(为了与V1.0保持引脚排列一致未引出DOUT)
2.板载LED占用P5.0,WS2812占用P1.5,FLASH占用P4.0-4.3,P5.2-5.3引脚
3.试验箱例程可以到STC官方论坛下载

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

附件

序号文件名称下载次数
1
VID_20241130_180143.mp4
0
2
petal_20241204_203619.mp4
0
3
AIapp-ISP-v6.95A.zip
23
4
VID_20241105_160324.mp4
0
克隆工程
添加到专辑
0
0
分享
侵权投诉

工程成员

评论

全部评论(1
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航