
Ai8051U核心板
简介
支持8位和32位模式的新51~ 可选外设:WS2812、QSPI FLASH
简介:支持8位和32位模式的新51~ 可选外设:WS2812、QSPI FLASH开源协议
:GPL 3.0
描述
演示视频已发布
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(); }}



设计图
未生成预览图,请在编辑器重新保存一次BOM
暂无BOM
克隆工程工程成员
知识产权声明&复刻说明
本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。
请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。


评论