
专业版
Ai8051U核心板
437
0
0
0
简介
支持8位和32位模式的新51~ 可选外设:WS2812、QSPI FLASH
简介:支持8位和32位模式的新51~ 可选外设:WS2812、QSPI FLASH开源协议
: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


添加到专辑
0
0
分享
侵权投诉
评论