找回密码
 立即注册
查看: 289|回复: 2

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

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:3
  • 最近打卡:2024-12-11 16:09:46

2

主题

5

回帖

50

积分

注册会员

积分
50
发表于 2024-12-6 15:30:46 | 显示全部楼层 |阅读模式

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

LQFP48版本

电路特性:

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

1.接口:

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

2.电源:

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

例程演示:

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

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

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

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

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

QFN48版本

电路特性:

WS2812可寻址RGB彩灯

QSPI FLASH

例程演示:

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

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

回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:239
  • 最近打卡:2025-05-02 03:42:37

22

主题

283

回帖

905

积分

高级会员

积分
905
发表于 2024-12-6 18:32:44 来自手机 | 显示全部楼层
REMOVEUNUSED
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:372
  • 最近打卡:2025-05-01 10:53:48

12

主题

125

回帖

1685

积分

金牌会员

积分
1685
发表于 2024-12-6 20:34:44 | 显示全部楼层

做的很好啊

回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 08:52 , Processed in 0.208876 second(s), 64 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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