OvO 发表于 2024-12-6 15:30:46

AI8051核心板,QFP和QFN两个版本,带FLASH和WS2812

立创开源链接:https://oshwhub.com/o0v0o/ai8051u-core-board

# LQFP48版本

![](data/attachment/forum/202412/06/152845w3feeuz6xou0o3uf.jpg)

## 电路特性:

主要参考手册里的的硬件USB直接下载/仿真3.3V原理图:

![](data/attachment/forum/202412/06/152852ir9w2oz3whzr9o9r.png)

### 1.接口:

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

![](data/attachment/forum/202412/06/152900mp9iiqnq2zaf5ww5.png)

### 2.电源:

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

![](data/attachment/forum/202412/06/152910mjv6h39r533jpuq2.png)

## 例程演示:

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

![](data/attachment/forum/202412/06/152920radv4oa6c3ac0vi3.jpg)

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

![](data/attachment/forum/202412/06/152928sy4l7z8jb9y98mqb.jpg)

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

![](data/attachment/forum/202412/06/152935xd2kyfkfy71jzf2y.jpg)

### 4.USB-HID不断电自动下载+点灯例程(这个是自己写的)

```
#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);
//-------------------------

voiddelay_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);
}

//========================================================================
// 函数: voiddelay_ms(unsigned char ms)
// 描述: 延时函数。
// 参数: ms,要延时的ms数, 这里只支持1~255ms. 自动适应主时钟.
// 返回: none.
// 版本: VER1.0
// 日期: 2013-4-1
// 备注:
//========================================================================
voiddelay_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();
    }
}
```

# QFN48版本

## 电路特性:

### WS2812可寻址RGB彩灯

![](data/attachment/forum/202412/06/153018tpx8hn0wxdhvwhp6.png)

### QSPI FLASH

![](data/attachment/forum/202412/06/153026kfqdhwdhd1ooqnra.png)

## 例程演示:

### 1.硬件QSPI访问FLASH-串口监控

![](data/attachment/forum/202412/06/153033fj559gjegj9j5l6g.png)

### 2.SPI-DMA发送-驱动WS2812彩灯

![](data/attachment/forum/202412/06/153039ywnkbn55n5r515q8.jpg)

邮箱 发表于 2024-12-6 18:32:44

{:4_250:}

lzzasd 发表于 2024-12-6 20:34:44

<p>做的很好啊</p>
页: [1]
查看完整版本: AI8051核心板,QFP和QFN两个版本,带FLASH和WS2812