bigbat

  • 2024-09-16
  • 回复了主题帖: 【NUCLEO-WB09KE】开箱及开发环境测试

    不知道为什么链接配对成功,但是windows中没有出现串口设备。我的windows是win10,蓝牙是4.0模块。是不是需要5.4的模块呀  

  • 2024-09-15
  • 发表了主题帖: 【NUCLEO-WB09KE】开箱及开发环境测试

    1、开发板介绍 NUCLEO-WB09KE,其中核心MCU STM32WB09KE为超低功耗Arm Cortex-M0+ MCU,运行频率64 MHz,具有512 KB Flash存储器、64 KB RAM,支持Bluetooth LE 5.4。这个与ST公司推出的STM32WB的其它系列采用的是基于以64 MHz运行的Arm® Cortex®‐M4内核,该系列从结构上推断STM32WB0XX应该功耗要更低。 Bluetooth®低功耗5.4的传输距离更长,速度快的特点。我拿到手的ST NUCLEO-WB09KE开发板是由两块组成的。下层的是ST-Link调试和按键、LED开发板。上层是蓝牙核心开发板。   2、开发环境搭建 开发环境搭建的测试只测试出了keil的环境。STM32CubeProgrammer的环境一直没有成功,我为此还下载了最新版本的环境。VSCode+OpenOCD的环境因为没有STM32WB0XX芯片的支持有没有成功。期待ST能够尽快的完善该款芯片的支持。 (1)首先下载或升级STM32CubeMX的最新版本。从首页安装添加STM32WB0的支持包。   最新版本是默认支持的。低版本可能无法安装该支持包,因此需要新版STM32Cube   安装完成后安装keil的支持。 (2)STM32WB0的芯片在keil的官方无法直接获得支持包。需要手工安装该开发包。 从C:\Users\[username]\STM32Cube\Repository\STM32Cube_FW_WB0_V1.0.0\Utilities\PC_Softwarem目录可以获得keil和IAR的支持包。   (3)手工安装该支持包到keil环境。 解压zip文件     单机文件或从keil包管理其中手工安装   (4)从STM32Cube中导入STM32WB0的BLE_SerialPort_Server 例程。   (5)烧录程序到开发板   完成后就可以测试。 3、测试过程 烧录前需要将开发板的启动模式使用跳线设置为Bootloader模式,否则无法烧写程序。   上电后如果再次烧写程序,需要按开发板的RESET按钮!!!     (2)windows PC的蓝牙中可以添加SPortS_5C的设备。   (3)链接配对完成   至此环境搭建成功  

  • 2024-09-13
  • 回复了主题帖: 反激电源新手看过来,开源项目准备好了,是时候动手了~

    很好,谢谢楼主总结

  • 2024-09-12
  • 回复了主题帖: ST NUCLEO-WB09KE无法烧录问题

    okhxyyo 发表于 2024-9-12 17:40 好的,那你先看看他说的这个问题,这样是不是可以了。我把你 新反馈的这个问题转人看看啥情况 不过通过keil也可以烧录程序了。只是STM32CubeProgrammer的问题依然存在

  • 回复了主题帖: ST NUCLEO-WB09KE无法烧录问题

    okhxyyo 发表于 2024-9-12 16:56 你反馈的这个问题是不是跟另外一个网友说找不到WB09的PACK一个情况??? 这里是ST那边的反馈:   ... 不是一个问题。但是他说的这个问题我这里也需要。

  • 回复了主题帖: 【ST NUCLEO-WB09KE测评】-2-基于CubeIDE的开发环境搭建

      15:55:04 : STM32CubeProgrammer API v2.17.0 | Windows-64Bits    15:55:13 : UR connection mode is defined with the HWrst reset mode   15:55:13 : ST-LINK SN  : 004C00213233510D39363634   15:55:13 : ST-LINK FW  : V3J13M4B5S1   15:55:13 : Board       : NUCLEO-WB09KE   15:55:13 : Voltage     : 3.28V   15:55:13 : Error: No STM32 target found! If your product embeds Debug Authentication, please perform a discovery using Debug Authentication 就是这些提示。不知道哪里的问题  

  • 回复了主题帖: 【ST NUCLEO-WB09KE测评】-2-基于CubeIDE的开发环境搭建

    MB2032B上面的JP1就看可以,不用使用CN3的5,7pin,但是我的板子虽然keil能够认识,但是STM32CubeProgrammer无法烧录。   STM32CubeProgrammer无法烧录   就是邪门了。  

  • 发表了主题帖: ST NUCLEO-WB09KE无法烧录问题

    1、板子设置如下: MB2032B板子为Bootloader 模式JP1,PA10引脚为High,非默认。 2、其它设置为默认。   3、 keil可以发现MCU,但是由于没有该芯片STM32WB0X的支持,无法烧录。     4、使用STM32CubeProgrammer烧录出现ST-LINK能够认出,但是无法烧录。 “Error:No STM32 target found! If your product embeds Debug Authentication,please perform a discovery using debug Authentication” 提示,无法链接板子。     请问,大家有没有碰到这样的问题。  

  • 2024-09-06
  • 回复了主题帖: 测评入围:ST NUCLEO-WB09KE

    个人信息无误,确认可以完成测评分享计划

  • 2024-08-28
  • 发表了主题帖: 串联电路中的电流是否能够通过MOS分流

    这是某公司的芯片应用电路,其中的散热保护电路,从理论上分析应该无法完成,手册上说明的热保护功能。   手册描述的VCC和IOUT的电压作用是否有用。

  • 2024-08-26
  • 回复了主题帖: 稳压管导通时“地端”电压是多少

    老师好,我的分析如下: 设电源电压VCC=24V,A点的电压Va=12V,那么PMOS的G极电压就是12V,PMOS是关闭状态。RL无电流输出 设电源电压VCC=10V,A点的电压Va=GND,那么PMOS的G极电压就是GND,PMOS是开启状态。RL正常输出 是否VCC小于12V是不是电路就可以导通呢。     

  • 回复了主题帖: 稳压管导通时“地端”电压是多少

    beyond_笑谈 发表于 2024-8-26 08:32 这个电路有问题,估计也是一个简单的示意图。忽略错误点,RL越小,设备发热。不过R3和D2已经限制了RL通过的 ... 这是一个恒流源,当电路的RL变小时对恒流源的输出压力是将输出电压变小,RL变大反而需要提高电压W=IIR,这样恒流源功率反而更大。这个电路的作用是保护恒流源。

  • 2024-08-25
  • 发表了主题帖: 稳压管导通时“地端”电压是多少

    这是恒流源的保护电路,当电路出现过热时,电路就将进入保护状态。 1、电路出现过热时,是不是说明RL阻值较大使得设备过热。 2、电压VCC的值超D1 +12V的电压,Q1的G极电压是多少。 3、电路出现开路RL无限大,该电路是否可以保护恒流源。      

  • 2024-08-24
  • 发表了主题帖: 运放中正反馈电容的作用

    这是PWM电路通过派型滤波器转换电压的电路。转换后使用运放电压跟随后电路输出。 1、这个电路中的电容C3的作用是什么。 2、电路中的电阻R3是什么作用。   正反馈的电路相当于比较器,但是由于负反馈比较强烈,整个电路无论何时都为电压跟随器。那这个电容有什么用。

  • 2024-08-21
  • 发表了主题帖: 差分模拟信号是不是需要共地

    模拟差分信号是不是需要信号两条线的两端需要共地  

  • 2024-08-20
  • 发表了主题帖: 【NUCLEO H533RE】ADC差分输入测试

    1、测试介绍 本测试使用STM32H533的ADC1通道的差分测试,配置和使用 ADC1 在差分模式下转换外部模拟输入,即 VinN 和 VinP 上的外部电压之差。测试除了NUCLEO H533RE开发板外还使用了过程校准仪生成测试信号,且使用开发板自带的串口打印输出测试电压。 2、硬件连接 H533RE与过程校准仪连接 H533RE  PA1 ADC INP  <===> PIN1 DC+  H533RE  PA0 ADC INN  <===> PIN2 DC- 3、参数配置 (1)系统时钟设置   系统时钟设置:外部晶振24MHZ,系统时钟为250MHZ,SysTick 时基设置为 1 毫秒。 ADC外设的时钟为64MHZ  (2) ADC 参数设置   使用ADC1外设通道CH1,模式为差分输入。分辨率为12bit,时钟分频为2分频,即64Mhz=32Mhz ADC1工作频率。STM32的ADC最高的工作频率为36Mhz,过高的频率对于采样精度有影响。 数据格式对其为:Rigth,输出数据16bit,但是高位4bit无效。 4、程序与工作原理 程序过程定义两个接收变量,差分输入除去数值还有正负反向。 /* Converted value declaration */ uint32_t uhADCxConvertedData; /* Input voltage declaration */ int32_t uhADCxConvertedData_Voltage_mVolt; 采集过程采用查询模式进行,程序在HAL_ADC_PollForConversion()处阻塞。 /* USER CODE END WHILE */ if (HAL_ADC_PollForConversion(&hadc1, 10) != HAL_OK) { Error_Handler(); } /* Read the converted value */ uhADCxConvertedData = HAL_ADC_GetValue(&hadc1); /* Computation of ADC conversions raw data to physical values */ /* using helper macro. */ uhADCxConvertedData_Voltage_mVolt = __HAL_ADC_CALC_DIFF_DATA_TO_VOLTAGE(VDDA_APPLI,uhADCxConvertedData, ADC_RESOLUTION_12B); printf("adc=%d \n\r",uhADCxConvertedData_Voltage_mVolt); HAL_Delay(500); /* USER CODE BEGIN 3 */ 使用printf()输出测量数据。 5、测试过程 (1)使用过程校准仪输出500mV和1000mV电压,但是无论怎么改变电压输出都是一个定值。而且MCU重启重启之后数值都是随机值。   1000mV重启值。         6、总结 本次测试从过程来看好像没有成功,但是无法找到任何原因。程序参考例程:ADC_DifferentialMode 该开发板的ADC的例程,前面出现过死机现象,本次测试发现ADC读取的数值异常。对于该芯片我比较看好,但是这些测试的原因请ST公司能够给与帮助。需要的详细过程可以联系楼主本人。 附录项目文件:    

  • 2024-08-19
  • 回复了主题帖: 【NUCLEO H533RE】DAC测试与电压输出精度

    本次测试出现的问题我花费的较长时间也没有找到原因,主要怀疑是stm32cubeMx的GPDMA代码,本次将STM32H563和STM32H533的配置文件打包到一起,

  • 发表了主题帖: 【NUCLEO H533RE】DAC测试与电压输出精度

    1、DAC测试介绍 dac输出的精度和带负载能力相互有关。本次测试使用STM32H533RE芯片集成的DAC1外设,由于NUCLEO H533RE的开发板设计原因。DAC1的通道1输出引脚PA4没有被引出来,虽然板子上面应该有空闲的接口引脚。希望ST公司在设计开发板时应该注意这一点。而且,CAN的引脚也没有引出来,SPI1的引脚也有冲突。   所以没有办法只好飞线了。通过SB3的引脚将PA4引出来。   测试的DAC负载使用20K的电阻作为负载。最大限流输出为电流0.16mA,应该不会影响芯片的精度变化。本次测试参考了同系列芯片STM32H563的“DAC_SignalsGeneration”例程。测量仪器为100M示波器。 2、硬件连接 测试负载20K欧姆电阻R, GND        <===>  R 2pin DAC PA4 <===>  R 1pin   3、参数配置 (1)系统时钟设置   时钟源使用24MHZ外部晶振,系统时钟为250MHZ。 DAC外设时钟为250MHZ   时钟源使用HCLK。 (2)DAC参数设置   DAC1的输出通道为CH1,输出外设引脚为PA4,Trigger触发源:时钟TIM1触发,启用GPDMA1通道。 (3)TIM1参数设置   时钟设置为Internal clock,其它为默认,分频系数和计数都没有设置,这个我感到疑惑。 (4)GPDMA1参数设置   循环模式打开, 通道设置为Channel3,DMA源 端口:Port1,Burst:1,Data Width:byte,   目标端口为设备。Data width:word 4、程序分析与工作介绍 /** * [url=home.php?mod=space&uid=159083]@brief[/url] DAC Channel1 EscalatorConfig * @param None * @retval None */ static void DAC_Ch1_EscalatorConfig(void) { /*##-1- Initialize the DAC peripheral ######################################*/ if (HAL_DAC_Init(&hdac1) != HAL_OK) { /* DAC initialization Error */ Error_Handler(); } /*##-2- Enable DAC selected channel and associated DMA ######################*/ if (HAL_DAC_Start_DMA(&hdac1, DAC_CHANNEL_1, (uint32_t *)aEscalator8bit, 6, DAC_ALIGN_8B_R) != HAL_OK) { /* Start DMA Error */ Error_Handler(); } } /** * @brief DAC Channel1 Triangle Configuration * @param None * @retval None */ static void DAC_Ch1_TriangleConfig(void) { /*##-1- Initialize the DAC peripheral ######################################*/ if (HAL_DAC_Init(&hdac1) != HAL_OK) { /* DAC initialization Error */ Error_Handler(); } /*##-2- DAC channel2 Triangle Wave generation configuration ################*/ if (HAL_DACEx_TriangleWaveGenerate(&hdac1, DAC_CHANNEL_1, DAC_TRIANGLEAMPLITUDE_1023) != HAL_OK) { /* Triangle wave generation Error */ Error_Handler(); } /*##-3- Enable DAC Channel1 ################################################*/ if (HAL_DAC_Start(&hdac1, DAC_CHANNEL_1) != HAL_OK) { /* Start Error */ Error_Handler(); } /*##-4- Set DAC channel1 DHR12RD register ################################################*/ if (HAL_DAC_SetValue(&hdac1, DAC_CHANNEL_1, DAC_ALIGN_12B_R, 0x100) != HAL_OK) { /* Setting value Error */ Error_Handler(); } } /** * @brief EXTI line detection callbacks * @param GPIO_Pin: Specifies the pins connected EXTI line * @retval None */ void HAL_GPIO_EXTI_Rising_Callback(uint16_t GPIO_Pin) { /* Change the wave */ ubKeyPressed = 1; /* Change the selected waves forms */ ubSelectedWavesForm = !ubSelectedWavesForm; } static void DAC_Ch1_TriangleConfig(void);定义修改触发控制 static void DAC_Ch1_EscalatorConfig(void);定义修改采样设置   /* -- Sample board code to send message over COM1 port ---- */ printf("Welcome to STM32 world !\n\r"); /* -- Sample board code to switch on leds ---- */ BSP_LED_On(LED_GREEN); HAL_TIM_Base_Start(&htim1); /* USER CODE END BSP */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { /* -- Sample board code for User push-button in interrupt mode ---- */ if (BspButtonState == BUTTON_PRESSED) { HAL_DAC_DeInit(&hdac1); /* Update button state */ BspButtonState = BUTTON_RELEASED; /* -- Sample board code to toggle leds ---- */ BSP_LED_Toggle(LED_GREEN); /* ..... Perform your action ..... */ /* select waves forms according to the USER push-button status */ if (ubSelectedWavesForm == 1) { /* The triangle wave has been selected */ /* Triangle Wave generator -------------------------------------------*/ DAC_Ch1_TriangleConfig(); } else { /* The escalator wave has been selected */ /* Escalator Wave generator -------------------------------------------*/ DAC_Ch1_EscalatorConfig(); } } /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ } /* USER CODE END 3 */ } 主程序使用 HAL_TIM_Base_Start(&htim1);开始DAC的输出,通过按下User键控制是DMA中的const uint8_t aEscalator8bit[6] = {0x0, 0x33, 0x66, 0x99, 0xCC, 0xFF};的输出类型。   5、测试过程 测试开始将程序烧录到芯片   通过按键user改变输出,  但是输出出现了信号不稳定的现象,信号经常的丢失和跳动   6、总结 本次测试整个过程都很多不确定的地方,例如:信号除了0V时稳定,其它都不是很稳定。不会知道是不是因为设置的原因。stm32cubeMX的GPDMA设置代码无法找到设置的参数。 /** * @brief GPDMA1 Initialization Function * @param None * @retval None */ static void MX_GPDMA1_Init(void) { /* USER CODE BEGIN GPDMA1_Init 0 */ /* USER CODE END GPDMA1_Init 0 */ /* Peripheral clock enable */ __HAL_RCC_GPDMA1_CLK_ENABLE(); /* GPDMA1 interrupt Init */ HAL_NVIC_SetPriority(GPDMA1_Channel3_IRQn, 0, 0); HAL_NVIC_EnableIRQ(GPDMA1_Channel3_IRQn); /* USER CODE BEGIN GPDMA1_Init 1 */ /* USER CODE END GPDMA1_Init 1 */ /* USER CODE BEGIN GPDMA1_Init 2 */ /* USER CODE END GPDMA1_Init 2 */ }      

  • 2024-08-17
  • 发表了主题帖: 【NUCLEO H533RE】OLED SSD1306屏SPI接口测试

    1、测试介绍 本次测试主要为NUCLEO-H533RE的SPI接口外设 Master Half-Duplex模式测试,测试验证SPI的编程流程。测试使用了0.96英寸OLED屏,驱动类型为SSD1306芯片。 SSD1306有IIC和SPI两种接口模式,本次测试使用SPI模式。NUCLEO-H533RE使用SPI 外设Master Half-Duplex模式。测试显示字符串。 2、硬件连接 主要有两个硬件 SSD1306 SPI和NUCLEO-H533RE VCC 3.3 GND D0      <===>  PC1 MOSI D1      <===>  PC1 SCLK RES   <===>  PC1 GPIO DC    <===>   PA1 GPIO 3、参数配置 参数设置主要为系统时钟和SPI外设的参数。 (1) 系统设置外部24M晶振,系统时钟250Mhz,PLL2Q的时钟为4MHZ   (2)SPI时钟设置   将SPI的时钟设置为PLL2Q,即SPI4的时钟为4MHZ。 (3) SPI参数模式   SPI模式为Master Half-Duplex模式,PC1为MOSI ,PA0 SCLK。数据位8bit,速率控制为2MHZ   这里通过Prescale控制SPI的速率。过快的速度可能造成SSD1306无法工作。 (4)GPIO设置   将PB1和PA1设置为输出模式。 4、程序与工作原理 程序主要为SSD1306驱动和字体文件组成。详细代码参考附录程序 /* USER CODE BEGIN 2 */ ssd1306_Init(); ssd1306_Fill(Black); ssd1306_UpdateScreen(); /* USER CODE END 2 */ /* Initialize leds */ BSP_LED_Init(LED_GREEN); /* Initialize USER push-button, will be used to trigger an interrupt each time it's pressed.*/ BSP_PB_Init(BUTTON_USER, BUTTON_MODE_EXTI); /* Initialize COM1 port (115200, 8 bits (7-bit data + 1 stop bit), no parity */ BspCOMInit.BaudRate = 115200; BspCOMInit.WordLength = COM_WORDLENGTH_8B; BspCOMInit.StopBits = COM_STOPBITS_1; BspCOMInit.Parity = COM_PARITY_NONE; BspCOMInit.HwFlowCtl = COM_HWCONTROL_NONE; if (BSP_COM_Init(COM1, &BspCOMInit) != BSP_ERROR_NONE) { Error_Handler(); } /* USER CODE BEGIN BSP */ /* -- Sample board code to send message over COM1 port ---- */ printf("Welcome to STM32 world !\n\r"); // ssd1306_SetCursor(0, 0); // ssd1306_WriteString(title, Font_11x18, White); // ssd1306_UpdateScreen(); /* -- Sample board code to switch on leds ---- */ BSP_LED_On(LED_GREEN); /* USER CODE END BSP */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { /* -- Sample board code for User push-button in interrupt mode ---- */ if (BspButtonState == BUTTON_PRESSED) { /* Update button state */ BspButtonState = BUTTON_RELEASED; /* -- Sample board code to toggle leds ---- */ BSP_LED_Toggle(LED_GREEN); /* ..... Perform your action ..... */ } ssd1306_SetCursor(0, 0); ssd1306_WriteString(timerStr, Font_11x18, White); ssd1306_UpdateScreen(); HAL_Delay(100); /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ } /* USER CODE END 3 */ 5、测试过程 烧写程序运行     附录:项目文件    

  • 回复了主题帖: 【NUCLEO H533RE】CAN FD功能和通讯测试

    失败原因已经找到了   没想到,正坑啊   这个PA11和PA12为USB的接口,根本没有和CH10连接。

统计信息

已有1172人来访过

  • 芯积分:5011
  • 好友:10
  • 主题:544
  • 回复:2306

留言

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


现在还没有留言