tinnu

  • 2019-09-29
  • 回复了主题帖: 抢鲜测评|体验全球首个基于RISC-V内核的GD32V系列开发板

    本来做了块VF103的底板,想试试risc-v的,结果上某宝一找,只有旗舰店有,邮费好贵,芯片也不便宜,唉,算了,支持不起

  • 2019-08-25
  • 回复了主题帖: GD32E103 eval板下载出错

    ddllxxrr 发表于 2019-8-23 08:05 我也遇到楼主的问题,我觉得是FLASH那个算法没有选对,我去选时,只有一个FLASH选项,什么Test*** 我也 ...
    我好像发现了点端倪,我用的addon是官网上的,package版本是1.0.0,下载的flash显示是GD test。我回到家更新了下,发现最新是1.0.2,下载的flash显示是GD32F10x。但板子不在身边,暂时不确定是不是这个问题。

  • 回复了主题帖: GD32E103 eval板下载出错

    Ansersion 发表于 2019-8-24 15:12 你们有例程吗,没有资料完全没辙
    有啊,官网上有E10x的固件包。里面完整的例程。 关于那个下载的问题,我新建的工程跟你一样,这个没什么疑问,不过也是下不了。我好像发现了点端倪,我用的addon是官网上的,package版本是1.0.0,下载的flash显示是GD test。我回到家更新了下,发现最新是1.0.2,下载的flash显示是GD32F10x。但板子不在身边,暂时不确定是不是这个问题。

  • 2019-08-23
  • 回复了主题帖: GD32E103 eval板下载出错

    ddllxxrr 发表于 2019-8-23 08:05 我也遇到楼主的问题,我觉得是FLASH那个算法没有选对,我去选时,只有一个FLASH选项,什么Test*** 我也 ...
    那个flash是128k,对应的e103也是128k的,一开始感觉应该是对的,觉得是不是芯片锁了,看来这个flash的下载地址可能有问题啊

  • 2019-08-22
  • 发表了主题帖: GD32E103 eval板下载出错

    首先上一张开箱照: 当我使用板载下载器下载时,出现如下错误。板载下载器似乎可以支持jtab和sw模式,都试过了。载完程序也不跑。 另外问一下,MDK里面似乎没有启用FPU浮点运算的选项,那么这个芯片应该如何启用FPU呢?

  • 2019-07-19
  • 加入了学习《DIY作品演示》,观看 基于MQTT消息通讯的IoT入门实例

  • 2019-06-23
  • 发表了主题帖: 水位测量语音报警装置

    本帖最后由 tinnu 于 2019-6-23 23:39 编辑 一、简介 水位测量语音报警装置的开发基于兆易创新GD32E231C-START评估板。能够对水位进行测量、显示、语音警告、上报云端。适合雨量计数器、小水缸等盛装液体的容器的物联网监控。 二、系统框图 三、系统框图 显示系统1602+PCF8574   1602+PCF8574组成的显示模块可以实现两个IO口控制显示功能,其协议总吸为I2C总线。 JQ8400+喇叭 JQ8400是佳强电子的一款即语音存储与解码播放为一体的MP3模块,通过UART接口可以实现语音播放。 ESP8266 ESP8266是乐鑫的无线WIFI SOC,是目前市面上最常见的DIY无线模块,其中上图的ESP8266-01是常见的低成本模块,通过串口通讯,可以快速实现网络连接。ESP8266固件多样,可以刷入不同的物联网固件接入对应的云端网络。本项目接入的中移云,其基于HTTP协议,通过透传+JSON信息实现,只需要普通的AT指令集便可实现。 其底座是一块ESP01 Breakout扩展版,使ESP8266-01可以插在面包板上。由于ESP8266工作时必须对CHPD接口进行上拉,否则不会工作,因此插在面包板上更容易配置电路连接。 DS3231 DS3231是一款高精度、带补偿的时钟芯片,其内置晶振,常温精度小于3.8ppm,宽温补偿,ID码,电池充电及电量监测等一系列功能。 在开发过程中,由于没有注意到GD32E231带有强大的RTC日历时钟,因此临时采用该模块实现时钟功能。后来把时钟功能转移到RTC后,DS3231就只负责初始化配置RTC时钟的功能。由于没有重新绘制PCB、设置低功耗时钟供电系统,因此外挂低功耗日历时钟模块是必须的,但该模块基于IIC总线,读取远比内部总线的RTC要慢,因此运行过程中采用内部RTC。 事实上可以采用ESP8266握手Onenet时的网络数据包中的网络时间戳对时钟进行初始化,但考虑到网络信号可能不一定可靠,因此还是暂时采用外挂模块的形式。 water sensor water sensor传感器可以将目前水位线转化成模拟信号量,反馈给单片机,通过ADC采样可以确定液面的高低。 四、效果演示 整体图: 视频演示(其中语音播报的声音有点小,但仔细听还是听得到的):   五、工程代码及doc附件 工程采用MDK5.27开发 工程代码: DOCX文档:

  • 2019-06-21
  • 发表了主题帖: 【GD32E231 DIY】RTC开发

    (一)GD32E231的RTC 与常见的秒计数器不同,GD32E231的RTC模块提供了一个包含日期(年/月/日)和时间(时/分/秒/亚秒)的日历功能,无需用户自己实现日历算法。 通过读取寄存器可以直接得到时间和日历的值: (二)时钟源配置 RTC的时钟源有三个:内部40K时钟,外部32.768K,内部高速时钟32分频 通常采用内部40K最为方便,因为通常外部的32.768K时钟兼顾低功耗功能,起振比较困难。 上图还可以看到这里有两个分频器:异步7位分频器FACTOR_A,产生时钟ck_apre;同步15位分频器FACTOR_S,产生时钟ck_spre。 最终的时钟频率要做到同步分频器出来刚好是1Hz。他们的计算公式: 数据手册提到,异步分频器对功耗控制更加严格,应该尽量加大异步分频器的数值,因此这里设置异步分频器为100-1,同步分频器则为400-1. 初始化代码: /* enable access to RTC registers in backup domain */ rcu_periph_clock_enable(RCU_PMU); pmu_backup_write_enable(); /* enable the IRC40K oscillator */ rcu_osci_on(RCU_IRC40K); /* wait till IRC40K is ready */ rcu_osci_stab_wait(RCU_IRC40K); /* select the RTC clock source */ rcu_rtc_clock_config(RCU_RTCSRC_IRC40K); rcu_periph_clock_enable(RCU_RTC); rtc_register_sync_wait(); rtc_init(&rtc_initpara); 其中rtc_initpara是RTC里面最重要的结构体,我们可以在固件库手册里面找到它: 这里定义这个结构体: rtc_parameter_struct rtc_initpara= {0x18,RTC_DEC,0x01,RTC_SATURDAY, 0x10,0x0,0x0, 0x63,0x18F, RTC_AM,RTC_24HOUR}; 其中asyn、syn就是上述的分频器设置参数(手册的异步打错字了)   (三)时间校准 RTC是可以实现低功耗的,其低功耗供电通过VDD(即JP8排阵第三个针脚)供电,但由于目前没有额外设置低功耗,因此没有采用电池低功耗供电,因此上电需要校准。为此额外外挂了一个DS3231。 可能使用了DS3231再使用RTC有点多次一举。但实际上RTC是芯片内部总线访问,比通过IIC外部总线访问快得多。 ReadTimeDS3231(); rtc_initpara.rtc_second = HEX2BCD(m_Timestrct.sec); rtc_initpara.rtc_minute = HEX2BCD(m_Timestrct.min); rtc_initpara.rtc_hour = HEX2BCD(m_Timestrct.hour); rtc_initpara.rtc_date = HEX2BCD(m_Timestrct.data); rtc_pre_config();   (四)运行效果 使用1602显示时间: rtc_current_time_get(&rtc_initpara); sprintf(t_strReportTemp, "%2x:%2x:%2x-%2x", rtc_initpara.rtc_hour, rtc_initpara.rtc_minute, rtc_initpara.rtc_second, rtc_initpara.rtc_date); ShowString(2,1, (unsigned char *)t_strReportTemp); 效果:

  • 2019-05-18
  • 加入了学习《黑科技探头:碰一下就知电流大小(英文)》,观看 黑科技探头:碰一下就知电流大小(英文,国外网友评测)

  • 2019-05-17
  • 回复了主题帖: GD32E231 DIY大赛(7)——人体红外传感模块及音乐IC驱动完成

    我之前弄mp4模块的时候,为了做低功耗也搞过开关电路停掉mp4模块供电,结果一加8050做的开关电路,mp4模块运放出来的声音就不正常,后来改用光耦IC pc817,直接就没声音出来了。最后没办法,用了一个庞大的蓝色光耦,那种会咔嗒响的那种。不知道你这个9015的电路用多少的电阻?我也想试试

  • 2019-04-01
  • 发表了主题帖: 【GD32E230】 EVAL板子工程创建、点灯

    本帖最后由 tinnu 于 2019-4-1 20:20 编辑 (一)创建工程 工程采用与demo包GD32E230_Demo_Suites_V1.0.1内的函数库。 从keil5安装目录内复制m23架构的头文件到工程下面: (二)main函数 main内,采用跟GPIO灯的demo一样的初始化。官方工程的代码与之区别不大,就是官方工程初始化了四个灯轮流闪烁,我只初始化了一个。 int main(void) {         // configure the systick         systick_config();                  // enable the led clock         rcu_periph_clock_enable(RCU_GPIOA);         // configure led GPIO port         gpio_mode_set(GPIOA, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO_PIN_12);         gpio_output_options_set(GPIOA, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_12);         //GPIO_BC(GPIOA) = GPIO_PIN_10;         gpio_bit_set(GPIOA, GPIO_PIN_12);         while(1){                 delay_ms(1000);                 gpio_bit_set(GPIOA, GPIO_PIN_12);                 delay_ms(1000);                 gpio_bit_reset(GPIOA, GPIO_PIN_12);         } } 复制代码 (三)现象 在仿真状态下可以顺利点亮led,但退出仿真的时候会出错,只能用任务管理器关掉keil 如果直接复位,无法运行,灯不会被点亮。 但这些问题,在直接使用官方的GPIO灯demo并不会出现。 我已经确保所有的库、系统文件都一模一样…… 工程: (四)解决 经过多番尝试,最终发现是m23架构的头文件的问题,不能够直接复制头文件,而是要创建工程的时候连接keil库

  • 2019-03-04
  • 回复了主题帖: 四轴视觉机械臂——基于F350下位机

    bqgup 发表于 2018-11-19 19:53 舵机光耦隔离原理图
    对了,这个光耦IC是用什么型号的?

  • 2019-02-28
  • 回复了主题帖: CC3200套件OURS-SDK-WFB_探索5——初探wlan

    alan000345 发表于 2019-2-26 09:16 不错,学习啦,ti好像主推这个呢,可惜没申请到啊,加油啊,跟你一起学习学习。
    唉,尽力吧。不过最近在春招,身为学机械的跟一群学电子的争压力好大……最近没怎么搞这块板子了

  • 2019-02-21
  • 发表了主题帖: CC3200套件OURS-SDK-WFB_探索5——初探wlan

    本帖最后由 tinnu 于 2019-2-21 19:05 编辑 此内容由EEWORLD论坛网友tinnu原创,如需转载或用于商业用途需征得作者同意并注明出处 (一)导入工程 导入工程可以直接导入源码,也可以重新创建工程,把头文件路径和库路径填上,heap size修改好,具体参考前面的帖子,这里不赘述了。 值得注意的是,wlan工程需要用到simplelink库,而编译simplelink库实现需要编译好middleware库。 (二)运行错误 我自己创建的工程在运行过程中一直卡在sl_start函数里面: 具体是这个函数里面: API文档中没有关于这个函数的描述,只有sl_start函数:
    Start the SimpleLink device. This function initialize the communication interface, set the enable pin of the device, and call to the init complete callback. Parameters [in]        pIfHdl        Opened Interface Object. In case the interface must be opened outside the SimpleLink Driver, the user might give the handler to be used in any access of the communication interface with the device (UART/SPI). The SimpleLink driver will open an interface port only if this parameter is null! [in]        pDevName        The name of the device to open. Could be used when the pIfHdl is null, to transfer information to the open interface function This pointer could be used to pass additional information to sl_IfOpen in case it is required (e.g. UART com port name) [in]        pInitCallBack        Pointer to function that would be called on completion of the initialization process. If this parameter is NULL the function is blocked until the device initialization is completed, otherwise the function returns immediately. Returns Returns the current active role (STA/AP/P2P) or an error code: ROLE_STA, ROLE_AP, ROLE_P2P in case of success, otherwise in failure one of the following is return: ROLE_STA_ERR (Failure to load MAC/PHY in STA role) ROLE_AP_ERR (Failure to load MAC/PHY in AP role) ROLE_P2P_ERR (Failure to load MAC/PHY in P2P role) See also sl_Stop Note belongs to basic_api Warning This function must be called before any other SimpleLink API is used, or after sl_Stop is called for reinit the device
    直接导入工程后,却能够正常运行。 找了很久没发现配置文件有任何值得考虑的出入之处,只能怀疑是否是debug的原因(自己创建的工程是debug,而导入的工程是release) 于是乎ALT+ENTER——build——设置为release 设置了之后也没有仔细看,运行之后能够跑出sl_start函数,基本能够正常运行。 但这时候仔细一看才发现工程依然是debug,没有改成release,点进去仔细看才发现设置release要额外点击: 那这就很奇怪了,明明什么都没有修改为什么突然就可以了呢?一直没找到原因…… (三)wpa2加密的wifi获取ip失败 一开始我使用手机发射wpa2热点,程序能正常运行到获取ip之前,手机上也是显示连接进来,但没有分配ip。 于是乎我打开common,发现如下代码段。 #define SSID_NAME           "hahaha"    /* AP SSID */ #define SECURITY_TYPE       SL_SEC_TYPE_WPA    /* Security type (OPEN or WEP or WPA*/ #define SECURITY_KEY        "12345678"              /* Password of the secured AP */ #define SSID_LEN_MAX        32 #define BSSID_LEN_MAX       6复制代码 把里面的SL_SEC_TYPE_WPA改为SL_SEC_TYPE_WPA_WPA2,结果依然不行…… 折腾了一会,我才发现SL_SEC_TYPE_WPA和SL_SEC_TYPE_WPA_WPA2的定义是: #define SL_SEC_TYPE_WPA  (2) /* deprecated */ #define SL_SEC_TYPE_WPA_WPA2 (2)复制代码 没办法,只能设置为OPEN模式:SL_SEC_TYPE_OPEN 终于能够获取IP了!

  • 加入了学习《新版RTOS教程:15天入门RT-Thread内核》,观看 动态内存堆的使用

  • 加入了学习《新版RTOS教程:15天入门RT-Thread内核》,观看 初识RT-Thread

  • 2019-02-20
  • 发表了主题帖: CC3200套件OURS-SDK-WFB_探索4——freertos跑起来

    本帖最后由 tinnu 于 2019-2-20 15:37 编辑 此内容由EEWORLD论坛网友tinnu原创,如需转载或用于商业用途需征得作者同意并注明出处 延续上一章帖子的内容:CC3200套件OURS-SDK-WFB_探索3——freertos移植失败 (一)问题解决 把heap size调大就行了。 我创建了两个任务函数,堆栈都是2048,对应十六进制为0x800.所以最小需要0x1600: 重新编译就能正常运行了 钩子函数vApplicationMallocFailedHook处理的是内存分配错误的问题,由于之前这里设置的是0x00,无法分配内存导致运行不起来。我尝试设置为0x800,只有第一个函数跑起来了 (二)关于例程导入的方法 参考:https://blog.csdn.net/lvyshanwm/article/details/46523697 需要下载sys-bios、ti-rtos两个包

  • 2019-02-06
  • 发表了主题帖: CC3200套件OURS-SDK-WFB_探索3——freertos移植失败

    此内容由EEWORLD论坛网友tinnu原创,如需转载或用于商业用途需征得作者同意并注明出处 原本以为freertos移植挺简单的,结果一下就被打脸了。 与常见的freertos移植不同,ti例程里面移植没有使用systick定时器(可能在汇编文件里面使用了,我没看出来)这导致我完全无法像在st和nxp平台那样顺手,只能完全按着例程来……毕竟人家使用的时基是什么都不知道,就更别说自己捣鼓了。 移植的工程完全按照例程里面的freertos_demo来: 移植 1、include选项卡设置: 2、加入库: 如果不想用官方给你做好的freertos库,可以加入以下文件,经过验证,这些文件的效果和.a库是一样的,虽然都不能成功运行,但编译没有错误,运行都是卡在vApplicationMallocFailedHook这个内存分配的钩子函数里面: 3、全局声明 4、工程目录文件 mian是使用freertos_demo的例程,这个例程对于套件例程和官方的launchpad例程是一样的 运行结果: 能够正常初始化,但一旦调用了os相关的函数: osi_MsgQCreate(&MsgQ, "MSGQ", MAX_MSG_LENGTH, 10);复制代码 或者xTaskCreate初始化创建任务并分配内存的函数,就会进入vApplicationMallocFailedHook这个钩子函数。 void vApplicationMallocFailedHook() {     //Handle Memory Allocation Errors     while(1)     {     } }复制代码 一些挣扎: 由于钩子函数vApplicationMallocFailedHook主要是针对内存分配出错,所以尝试过调大configTOTAL_HEAP_SIZE和各个任务的堆栈,但都无补于事 一些猜想: 由于无论调用什么内存分配函数都会产生内存分配的错误,初步怀疑是freertos+ccs的例程在内存分配上有问题。ccs一般都是配合ti_rtos的,freertos趟坑的人少,本身存在bug也不奇怪。 不过也只是猜想而已,本身freertos的功底小半桶水见底,连时基怎么产生的也没看出来: 1、用ctrl+H搜过systick相关字符,真的一个函数都没有 2、也没有发现有哪里调用了xPortSysTickHandler 3、也没发现调用了其他定时器 编译通过,但无法分配内存的freertos工程:

  • 发表了主题帖: CC3200套件OURS-SDK-WFB_探索2

    本帖最后由 tinnu 于 2019-2-6 22:18 编辑 此内容由EEWORLD论坛网友tinnu原创,如需转载或用于商业用途需征得作者同意并注明出处 (一)函数库问题 OURS-SDK-WFB套件本身自带了一个sdk包,这个TI官网下载下来的sdk包非常类似,但经过自己研究还是有些出入的 官方自带的example跟套件自带的example尤其明显,打开common里面的gpio_if文件,就可以看到两者对三个rgb灯的端口定义不一样: 官方定义,用于launch_pad板 //***************************************************************************** // Variables to store TIMER Port,Pin values //***************************************************************************** unsigned int g_uiLED1Port = 0,g_uiLED2Port = 0,g_uiLED3Port = 0; unsigned char g_ucLED1Pin,g_ucLED2Pin,g_ucLED3Pin; #define GPIO_LED1 9 #define GPIO_LED2 10 #define GPIO_LED3 11复制代码 OURS-SDK-WFB套件的定义: //***************************************************************************** // Variables to store TIMER Port,Pin values //***************************************************************************** unsigned int g_uiLED1Port = 0,g_uiLED2Port = 0,g_uiLED3Port = 0; unsigned char g_ucLED1Pin,g_ucLED2Pin,g_ucLED3Pin; #define GPIO_LED1 30 #define GPIO_LED2 22 #define GPIO_LED3 28复制代码 因此如果使用OURS-SDK-WFB套件建议使用套件的common文件夹 (二)路径问题 由于换了个工作环境,结果路径出了些问题,发现了当初路径设计的一些缺陷的地方。 当初的路径都是使用绝对路径的,现在替换为相对路径,前面用宏表示,方便转移工程文件。${WorkspaceDirPath}代替开头那部分,省略了工作空间部分的路径: (三)全局声明 类似keil里面C/C++选项下面的define,ccs或者说eclipse下面也有类似的地方: 右键——properties: 像上图就是在freertos工程定义了USE_FREERTOS的全局宏

  • 2019-01-24
  • 回复了主题帖: 【新人必看】TI M4个人收集所有资料倾情大放送。。。。。。。。。。。。

    哈哈顶一个

最近访客

< 1/2 >

统计信息

已有25人来访过

  • 芯币:110
  • 好友:1
  • 主题:12
  • 回复:19
  • 课时:--
  • 资源:--

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言