TaterLi's LazyBlog

自言自语,不喜绕路,科学上网,远离天国.

@TaterLi3月前

01/24
20:07
技术控

STM32L011 ADC采样测试

换到了新的平台,因为L0以超低功耗出名,而且价格也不贵.另外因为有内部Vref.可以反推出VDD,用的也是ST的官方板子,Nucleo-F011测试的,官方板子用的LDO参数也挺不错的.

首先测试一下官方LDO的数值.

然后说明一下我的测试条件:

  1. ADC读取内部Vref的标准数值并保存.
  2. ADC读取内部Vref的参考数值,并倒推VCC电压.
  3. ADC通过改变采样率查看是否影响精度,低的采样率不能捕捉快速变化的信号,高的采样率容易产生错误.
  4. ADC通过改变输入时钟查看是否影响精度.输入时钟低时间长,功耗低,采样率也低.

测试程序[……]

[我要看更多…]

STM32L011 ADC采样测试

@TaterLi3月前

01/21
13:43
技术控

STM32L011K4 时钟树分析和常规配置(主要时钟配置)

偷一张来自Cube的图,这样比较容易理解.Nucleo板子没提供外部时钟输入,所以,实际上也是这张图一样.

通过HSI的倍频设置,得到32MHz的时钟,也是系统支持的最高时钟,这是低功耗器件,所以不支持48MHz?

针对这个MCU我觉得应该有几个常规配置,这样是最节省.

第一种是32MHz,由HSI16经过PLL产生,最低倍数就是4倍,然后固定二分频.Vcore = 1.8V,需要1个Flash读取延迟,快速配置代码如下:

(LSE DEAFULT,LSI DEFAULT,MSI OFF,HSI ON,PLL ON,SYSCLK = 32MHz,CK_PWR = FCL[……]

[我要看更多…]

STM32L011K4 时钟树分析和常规配置(主要时钟配置)

@TaterLi3月前

01/19
16:37
技术控

STM32L011K4 Flash 操作

在L011中,除了普遍的Flash和OB外,还有EEPROM,而且还可以让Flash掉电运行.所以,他其实有4个密码,没错,是4个密码啊.如果Flash掉电了,那么就要RAM运行,也可以省一些电的.在Keil中这样定义RAM中运行代码.

__attribute__ ((section (".ramcode"))) void MyFunc(void){
while(1);
}

不过这2K RAM,是不是真的有点小呢,对于如果在RAM运行,就看要运行的小代码多大了.当然建议把Flash操作过程代码都放在RAM调试,当OK了再转移到Flash,不然调试过程因为Flash没法获取就没法调试了[……]

[我要看更多…]

STM32L011K4 Flash 操作

@TaterLi3月前

01/17
13:28
爱分享

Nucleo-32 L011 – 这大概是最低配的硬件了.

各种资源都不多,试试Blink代码.

没有任何难度的Blink.

只是貌似编译出来有点大了.

Blink都不行,玩什么啊.写个Blink,Flash已经快满了.

试试用ST-Link软件写入.

果然可以闪哦.就是代价有点大,这么多Flash.

想体验一下ADC功能.

为了安全起见,用例子吧.

错误了,原来VBAT通道没有.

那删掉好了.

继续编译,这个Device的Flash不够用啊.那只留一个通道可以了吧.LED我也不要了.

结果还是不够啊.

这样,怎么玩啊.看来也只能传统开发了.还是ROM/RAM大的任性啊.

因[……]

[我要看更多…]

Nucleo-32 L011 – 这大概是最低配的硬件了.

@TaterLi3月前

01/10
21:53
技术控

FreeRTOS V9.0.0 更新

  • 修改新API函数xTaskCreateStatic()的原型,去除一个参数并且改善和其它”CreateStatic()” API函数的兼容性。点击此处查看更多信息。
  • GCC ARM Cortex-A移植层接口:增加configUSE_TASK_FPU_SUPPORT配置宏。当这个宏设置为2时,每一个任务自动使用浮点(FPU)环境。
  • GCC ARM Cortex-A移植层接口:使用vApplicationFPUSafeIRQHandler()来代替vApplicationIRQHandler()可以在任意中断嵌套入口处自动保存和恢复所有浮点寄存器。
  • 所有ARMCorte[……]

[我要看更多…]

FreeRTOS V9.0.0 更新

@TaterLi4月前

12/25
20:50
技术控

OTM8009A MIPI 看完注释就心凉

看到ST写的初始化代码, Not documented心凉啊,怎么调试啊.引用M床的代码.

代码地址:https://developer.mbed.org/teams/ST/code/BSP_DISCO_F469NI/file/0002c86c2220/Components/otm8009a/otm8009a.c

丫的怎么调试这句的,删掉后竟然还一点反应都没有.这句貌似写0x40到0xC48A.

 

OTM8009A MIPI 看完注释就心凉

@TaterLi4月前

12/23
15:15
技术控

OTM8009A MIPI 手册学习分析粗笔记

说是学习分析,不如说是资料提取

OTM8009A MIPI 手册学习分析,因为PDF本身不能编辑,复制,所以我就截图加翻译吧.

两种指令集模式,一种叫UCS,一种叫MCS,也叫Command 2.第一种UCS都是一个Byte的命令为主.

而Command 2,都是2 Byte的,难道这就是Command 2的由来.

使用MIPI接口进入Command 2模式的方法如下.

当然退出Command 2的我竟然没找到,代码到是有.就是Short Write 2Byte 0xff,然后Long Write 4Byte 0xff.

OTM8009A MIPI 手册学习分析粗笔记

@TaterLi4月前

12/22
17:16
技术控

MIPI的DCS模式和DSI模式

一般的MIPI屏幕都是DSI模式,但是也有少部分的MIPI屏幕支持DCS模式,比如手上这个STM32F769评估板的800*480分辨率的屏幕就支持两个模式,支持DCS的一定支持DSI,支持DSI不一定支持DCS.

DSI(Video Mode)视频模式.这种工作模式与传统RGB接口相似,主机需要持续刷新显示器.由于不使用专用的数据信号传输同步信息,控制信号和RGB数据是以报文的形式通过MIPI总线传输的.因为主机需要定期刷新显示器,显示器就不需要帧缓冲器.所以只要是个屏幕并且支持MIPI接口,肯定是可以刷DSI模式的,这个和主机的刷新能力也有关系.

DCS(Command mod[……]

[我要看更多…]

MIPI的DCS模式和DSI模式

@TaterLi4月前

12/16
13:54
技术控

MX28 Boot By TaterLi

阅读手册后发现其实Bootlets这东西,也不是那么难,自己写了一个,非常方便,启动速度大大提升.不作解释,存档用.反正1ms内完成Boot就是了.

int _start(int arg)
{
unsigned int value;
char *pMemlocation = (char *)EMI_MAX_MEM_BK;
volatile unsigned int *DRAM_REG = (volatile unsigned int *) HW_DRAM_CTL00_ADDR;
HW_RTC_CTRL_CLR( BM_RTC_CTRL_SFTRST[......]

[我要看更多…]

MX28 Boot By TaterLi

@TaterLi4月前

12/15
16:49
技术控

MIPI Low Level

要玩MIPI一定要看标准,比USB简单但是比以太网什么复杂很多,MIPI标准的几个文件是:

  1. MIPI® Alliance Specification for Display Serial Interface (DSI)
  2. MIPI® Alliance Specification for Display Bus Interface (DBI-2)
  3. MIPI® Alliance Specification for Display Command Set (DCS)
  4. MIPI® Alliance Specification for Display Pixel Interfa[……]

[我要看更多…]

MIPI Low Level