0%

对于S3C2410处理器的:

  • Baremetal代码与调试
  • U-Boot 2016.05的移植,编译流程和启动流程分析
  • Linux 3.19.8内核的移植,编译流程和启动流程分析
    Read more »

最近买了一个半导体冷热小冰箱,使用了一阵子后发现了一些问题,最主要的就是温控的不准确。冰箱门板上带有数显数控的功能,但是经过测试发现实际内部的温度和设定的温度差别比较大,误差6-7摄氏度都是常有的。


上面的就是一天的温度曲线,设定的温度为20摄氏度,环境温度白天约15度左右,每天大概7点半左右空调会打开加热,所以才有这样的温度变化趋势,冰箱应该自动识别为制冷模式了,在达到了设定温度后,之后全程为保温模式,温度的波动也全因为外界的温度波动。这样的温控也就勉强能放点冷热饮了,所以决定尝试改造一下,让自己制作的温控替代冰箱原本的温控。

Read more »

最近发现了一个小的Pi Pico使用技巧。 Pi Pico除了使用SWD下载和调试以外,还可以通过按下BOOTSEL后上插上USB来进入下载模式,此时系统中将会枚举出一个大容量存储设备,将编译好的UF2文件拖入就可以下载了。

这样的下载模式非常的简单,但是在真实应用中有个麻烦:如果一旦电路板装入设备中,装上外壳之后再进行固件更新就相对恼火了,无论时SWD接口或者时BOOTSEL按键,都不大可能会再外壳上预留出来。

Pi Pico官方给了一种Picotool可以使用-f参数通过USB强制Pi Pico进入下载模式并更新固件。除了这种方法外,还有一种办法可以快速的,不通过BOOTSEL按键使Pi Pico进入下载模式。

Read more »

从大学开始就断断续续的摸索超低功耗系统的设计,过程中也遇到了很多坑,通过前几次的迭代积累的经验,外加这段时间正好闲下来,完成了一个比较满意的超低功耗传感采集节点的设计,待机电流0.1uA, 工作时包括射频系统在内最大峰值电流30mA,理论上不考虑电池的自放电下,单节CR2032电池可以让设备工作数年. 总结一下经验以便后面的设计能吸取前面的教训,少走弯路。
几次迭代的产物:

Read more »

目标

中秋节在家,想起来MSP430系列的芯片ISP模式还没有使用过,好奇其工具链的配套的完善程度和具体的使用流程,就打算用手上的MSP430F2272来尝试一下。
理想中,使用ISP的好处:

  1. 一个完整的产品不应该以JTAG为下载方式,就连自己的Pet Projects做完了以后,如果有设计或者使用外壳的情况,用JTAG下载也是极为不方便的,需要拆解外壳连接调试器。
  2. MSP430F2272的JTAG与ARM Cortex-M家族的SWD不同,需要至少8个PIN:

    Vref, GND, TEST, NRST, TCK, TMS, TDI, TDO
    如果采用标准的2.54mm座子则非常占用电路板体积

常见的SoC厂商,都会在SoC的ROM(第一级引导程序)中加入ISP模式,可以通过一些简单接口就能完成固件的烧写,比如我们最近设计的芯片的ROM中就是以I2C为接口提供ISP的。所以MSP430也一定会有类似的功能。

Read more »

HomeAssistant、OpenHab使用经验总结

几年前在Raspberry Pi上用过一短时间的HomeAssistant,并且通过一些比较复杂的方法,把一些WIFI遥控开关,红外线桥等设备连入,可以进行简单的远程控制,并添加了一些自动脚本,比如空气污染严重时开启新风机,下雨时关闭新风机等操作。但是在实际使用过程中还是发现了不少问题:

Read more »

日常调试中,除了需要在指令执行上插入断点以进行跟踪或单步调试,在某些情况下,也需要跟踪数据变化并当某内存数据发生变化时产生断点。

这个功能在ARM Cortex-M33中,可以通过利用DWT实现。

Read more »

前一阵子在某芯片上遇到了一个设计问题:芯片中的控制核为ARM Cortex-M33内核(SSE200 IP),并在芯片中存在多个物理地址并不连续的SRAM,其中M33 Local Mem地址范围为0x2000_0000, 另一内存地址为0x41xx_xxxx.

遇到的具体问题为,在locam memory中,任何的非对齐访问全是正常的,但是在0x41xx_xxxx为基地址的内存上,任何非对齐的访问将会导致芯片卡死。

Read more »

测量PM2.5浓度、二氧化碳浓度、温度、湿度

Read more »

目标

Raspberry Pi Pico提供了除了默认通过按键-上电-枚举U盘的方式下载外,同时提供了SWD接口用来下载和单步调试,这种方式非常易于调试,可以避免频繁的拔插USB。使用环境为Windows10.

Read more »