帖子01
今天我开始研究PFC154(工业级8-bitMTPIO类型单片机),令我惊讶的是,在分析了READ和WRITE后,我发现:
PFC154程序字=14位,但使用19位进行读/写。
每个程序字的开头都附加了5个额外的位。一些额外的位通常用于纠错,让我们看看……
逻辑分析仪读数的一些样本:14位数据=>5个额外的位:
3FFF=>1F
0070=>08
2F00=>0E
0182=>04
第一次尝试:
输入上面的二进制14位值后,网站将显示附加在双字符串末尾的结果。
=>全部匹配!这是使用标准syndrom的经典HammingECC:)
这有点出乎意料,但看起来“工业级部件”确实有一些额外的功能。
不错的发现,谢谢分享。
帖子02
我认为更传统的大型MCU,例如STM32,也为闪存提供了ECC保护。但我认为他们的闪存适用于更大的字,它总是并行访问64位左右。因此,他们为这样的字而不是每个单个命令实现了ECC。但考虑到PDK的设计更简单,我认为为每个命令添加一些额外的位是一种合理的方法。
想象一下,当我将PFS154放入ZIF插槽并在运行探测命令后看到以下输出时,我有多开心!:
代码:[选择]
>easypdkprog-v探测
探测IC...找到。
TYPE:FLASHRSP:0xAA1VPP=4.50VDD=2.00
IC支持:PFS154ICID:0xAA1
然后,我上传了预编译的helloworld示例:
代码:[选择]
>easypdkprog-nPFS154writeExamples\helloworld_pfs154.ihx
正在擦除IC...完成。
写入IC...完成。
正在校准IC
*IHRCSYSCLK=8000000Hz@4.00V...校准结果:7951482Hz(0x84)完成。
然后启动它:
代码:[选择]
>easypdkprog-nPFS154-r4.0start
正在运行IC(4.00V)...IC已启动,按[Esc]停止。
HelloWorld!
HelloWorld!
IC停止
帖子03
下面是一些其他图片。
我清理了板对板连接,并移除了IC插座悬垂部分上未使用的引脚。我有点喜欢保留悬垂部分,因为它可以保护zif适配器原本暴露的引脚。
是的,正如预期的那样,它也可以与SOIC-8测试夹配合使用。
它们还没有发货,但我仍然希望在本周末之前拿到我的开发板,这应该会让这一切变得更干净一些。
我还测试并验证了PMS150C和PMS152的探测是否正确。
帖子04
在PDK14SDCC中使用位域->错误
structPORT_bits
{
uint8_tp0:1;
uint8_tp1:1;
uint8_tp2:1;
uint8_tp3:1;
uint8_tp4:1;
uint8_tp5:1;
uint8_tp6:1;
uint8_tp7:1;
};//__attribute__((__packed__));
#defineBF_PA(*(volatilestructPORT_bits*)&PA)
voidmain(void)
{
PAC|=_BV(LEDPIN);//此语法将推断set0/set1
for(;;){
BF_PA.p0=1;
//PA^=_BV(LEDPIN);//切换LED
delay_ms(500);
BF_PA.p0=0;
delay_ms(500);
}
}
SDCC版本:
代码:[选择]
SDCC:gbz80/tlcs90/z80n/pic14/ds400/pdk13/pdk14/pdk154.0.2#11683(Linux)
以下是发出的内容:
代码:[选择]
260;bitfields.c:55:BF_PA.p0=1;
000040012F261mova,#0x01
a000042262or_pa+0,a
...
00004CFE2F270mova,#0xfe
a00004E271and_pa+0,a
“ANDio,a”和“ORio,a”不幸不存在。因此汇编器无法汇编此代码。这需要用set0/set1替换。
编辑:
一旦这在SDCC中起作用,它将成为一种非常有用的方法来增强端口定义,因为可以使用直接分配来设置单个位,例如“PA7=1”,这直接等同于机器指令,而不是乱用位掩码。我一直在AVR上使用AVR-GCC,效果非常好。AVR-GCC会从中生成非常高效的代码。
帖子05
当然,我们什么也不用做。;) 如果有更好的代码可用,该代码很容易更改。
如果您不喜欢这样,请不要查看我刚刚推送的一些最新更新。>:D
在幕后,“setPinOutput(PIN_LED2)”只是调用一个宏,最终执行“PAC |= (1<<4)”。该宏使其更清晰/更易于阅读,并且只需更改文件顶部的一个 #define(或从命令行或 Makefile 传递覆盖)即可更轻松地交换引脚。
在所有不喜欢 Arduino 的事情中,清洁/可读性真的是其中之一吗?Arduino 如此受欢迎是有原因的。如果我们想要更多的采用,我们需要全面降低进入门槛,而拥有看起来更类似于许多人已经知道的代码环境可能会有所帮助。我甚至可能将我的 repo 名称更改为 Pdkuino,并尝试满足更多受众的需求。
深圳逐高电子开发部整理编辑,希望对大家有帮助,如果有开发应广单片机过程中需要帮助的,请联系我们
深圳市逐高电子有限公司
电 话:
0755-88364040
0755-88364080
0755-83222294
手 机:13926521299
Q Q: 2853516666
Email:sales11@zicoic.com
地 址:深圳市福田区深南中路2070号电子科技大厦D座(智方舟)5楼506-507