2017年8月26日星期六

STM8 eforth 实验

在 W1209 温控板上(板上的 MCU 是 STM8S003F3P6)测试了 eForth,可以工作,还需做更多实验。


计算机收到的一些字符显示不正常,原因不明,难道是因为没有用外部晶振导致的 timing 问题?例如,从串口发送 1 out! 到 stm8 后,返回的字符是 b outB ok, 而下面发送的 0 out! 返回又正常。


上图是把串口和 USB to TTL 板连接起来做通讯。STM8 上的 UART 被 NTC 占用了。于是用连接按键的 IO 模拟了一个 UART. 软件里有个目录是 W1209-FD, FD 的意思是 Full-Duplex,就是模拟全双工通讯。

接线:

+--------------+-------------------+----------+
| TTY com port | W1209-FD          | comments |
+--------------+-------------------+----------+
| GND          | GND               |          |
+--------------+-------------------+----------+
| TXD          | key "+"(PC4, RXD) | 2nd key  |
+--------------+-------------------+----------+
| RXD          | key "-"(PC5, TXD) | 3rd key  |
+--------------+-------------------+----------+


上面是测试 Leo Brodie 的书 Starting Forth 第一章中的例子。

链接
  1. eForth for STM8S Value Line and Access Line devices

2017年8月25日星期五

内置 STM8S003F3 的 ESP-14 WiFi 模块

ESP-14 WiFi 模块内置 STM8S003F3 MCU(20 Pin QFN 封装). 可以用 eforth 编程。

ESP8266-14 Shield Removed
照片取自 ESP8266 Community Wiki,右下角的 IC, marking 是 S033, 也就是 UFQFPN20 的 STM8S003F3U6.

想法
- 用在 SZDIY Hackspace 的 IoT 项目上,如电表项目 Duo.

参考
  1. ESP-14 experiments – Stage 1: Overview and STM8S
  2. eForth for STM8S Value Line and Access Line devices 
  3. RigTig's Big 3D Printer
  4. ESP-14(ESP8266 Community Wiki) 

2017年8月22日星期二

CO2 传感器 MH-Z14A

一开始发现室内读数在1500到1800之间,这太高了。放到阳台上,让它运行超过 20 分钟,读数是 1470,而且数值稳定。

根据使用说明书,把 HD pin 和 GND 短接 7 秒,读数变成了 390 ppm.

孩子在卧室睡午觉,开空调,大概从 13:00PM 到 16:00PM,传感器离地面 15cm 左右,读数 710 ppm. 因为 CO2 比较重,我把传感器放到地上,读数很快变成 735 ppm.

用的 github 上的一份代码(链接 1),通过 PWM 读值。

链接
  1. https://github.com/jimsy3/MH-Z14A
  2. MH-Z14A二氧化碳传感器 
  3. https://github.com/atommann/co2-MH-Z14A-softserial 

2017年8月13日星期日

STM32F103 的 PB3, PB4 和 PA15

上周五给一块板子写代码,PB3 控制一个 BJT,始终没有输出,另一个工程师(赵工)告诉我说是 JTAG 默认使用 PB3,然后另了相应的代码,还是不工作,后来发现少了一行代码,也就是要打开 AFIO 模块的时钟。

RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);


还有一个函数是
GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);
这会同时关闭 JTAG 和 SWD 功能。

(这是一个草稿,待更新)