MPLAB IDE v8.5打开后自动退出

在windows7 32bit上安装MPLAB IDE v8.5后,打开后就自动退出了。找到安装目录下,运行程序就可以修复了。

..\Microchip\MPLAB IDE\Utilities\SetDefaultMPLABStartup\SetDefaultMPLABStartup.exe

nodemcu烧写问题

使用论坛中下的nodemcu-flasher32bit.exe烧写,烧写完连接至串口,上电后只打印一串乱码。原因是烧写firmware后,芯片UART的baudrate并未复位至115200。

nodemcu有两个版本的开发板,v0.9和v1.0。v0.9的使用nodemcu-flasher32bit.exe烧写,v1.0版本的使用FLASHDOWNLOADTOOLS_V12.zipDownload Link

v1.0版本烧写时,在"Advance"中要设置为如下:

SPI SPEED choose 40MHz
SPI MODE select DIO
FLASH SIZE select 32M
Baudrate choose 115200

使用Linux或Mac osx的用户,使用esptool.py烧写bin文件时,命令如下:

python esptool.py --port /dev/tty.SLAB_USBtoUART write_flash 0x00000 file.bin -fs 32m -fm dio -ff 40m

烧写后,串口工具设置为115200即可看到nodemcu固件的打印信息。

xcode6编译AppCan项目

帮朋友测试一个程序,使用的是AppCan的插件开发,出现下面的情况:

"_OBJC_CLASS_$_Beqtucontent", referenced from:
objc-class-ref in libAppCanEngine.a(BUtility.o)

下载AppCan的SDK包,把里面的beqtucontent.m和beqtucontent.h文件加入项目即可。

以太网开发片解

很多事情看上去简单的,背后是复杂的设计思想。

以太网正如上面所说一样,顺手插上网线,新世界的大门就打开了,普通人无需关心那一瞬间发生了什么,但开发者需要知道每一秒,以太网都在做什么事情。Okay,进入正题,现在的C主板上都带有以太网接口,称为板载以太网或集成网卡。这里的集成或板载指的是以太网的接口和控制芯片都在主板上。

学过网络编程开发,都知道TCP/IP是四层模型,是依照OSI七层参考模型而设计出来的。

osi-7layers.JPG

普通用户对模型的认识只在软件和硬件层的表面上,如IP,HTTP,网口。软件层上是靠TCP/IP协议栈实现,目前三大操作系统上对TCP/IP协议的实现,大都是参考BSD的TCP/IP实现,其中Linux的协议栈在PC中比较常用。嵌入式开发中协议栈也有不同的实现方式,以方便开发者移植到不同的芯片上。

硬件层上,有两个部分PHY(Physcial)和MAC(Medium Access Controller)。PHY对应的是物理层上信号的收发,MAC是控制器,对下是控制PHY的数据工作,对上提供接口,用户可以访问和控制以太网接口。MAC是通过MII(Medium Independent Interface)接口对PHY控制。除了MII还有RMII和SMII。所以,MAC可以通过不同接口访问不同PHY,如果MAC支持可以连接多个PHY,通过地址线选择当前与哪个PHY通信。

MII是四个bit通信,至少需要25MHz,同步的并行接口。

RMII是两个bit通信,至少50MHz。

以太网对传输速度的表示有10BASE-T,100BASE-TX,1000BASE-T,分别对应10Mbit/s, 100Mbit/s, 1000Mbit/s。BASE表示Baseband,T表示双绞线(Twisted pair),F表示光纤(Fiber),X表示编码方式(Encoding Method)。

Ingress玩耍

最近开始玩Ingress,这款游戏最大的特点是通过GPS与现实结合,玩家需要出门去做任务,这是与其它游戏最大的区别。由于是google出品的游戏,所以国内的玩家就需要穿墙工具了,ios上只能使用VPN,除此之外还需要一款大容量的移动电源,原为GPS和屏幕很耗电量。

下面是一些常用的资源:

intel map

Ingress中文网

Ingress Bootcamp

台湾Ingress入门

K60时钟理解

每种芯片都有一套时钟方案,提供多种时钟供内部或外部电路使用。K60的时钟模式有八种,大体分为六种正常模式和两种省电模式,其中原始的时钟有内部和外部两种。

内部:Slow IRC 32.768khz, Fast IRC 4Mhz

外部:Crystal 50Mhz, RTC clock 32.768khz

K60芯片内部还提供有两种倍频方式,PLL和FLL。PLL称为锁相环,主要通过鉴相器元件实现输出时钟,对参考时钟的相位锁定。FLL称为锁频环,主要是通过鉴频器实现频率的输出。

FLL相关的时钟模式:FEI, FEE, FBI, FBE

PLL相关的时钟模式:PEE, PBE

FEI:由IRC提供时钟给FLL后,FLL倍频后提供给系统

FEE:由ERC提供时钟给FLL后,FLL倍频后提供给系统

FBI:由IRC提供时钟给系统

FBE:由ERC提供时钟给系统

PEE:由ERC提供时钟给PLL,PLL经倍频后提供给系统

PBE:由ERC作为时钟源提供给系统

K60-Clock.png

上图是K60系统的Clock分配图,从图上可以得到以下信息:

1.系统内部或外部时钟主要有四个,Core/System Clock, Bus Clock, Flexbus Clock, Flash Clock。它们都是由SIM模式控制启用状态

2.以上时钟由MCGOUTCLK提供,而MCGOUTCLK的源时钟有三个,IRC, FLL/PLL, ERC。

3.FLL的时钟源有两个IRC(Fast Clock)和ERC。PLL的时钟源只有一个ERC。

MCG模块功能是Clock Selection和Multiplexing Clock。SIM模块的功能是Clock Divider和Clock Gating。这样就明白为什么会有八种时钟模式了。这八种模式需要通过相互间的转换才能使用,芯片上电复位后,会自动进入FEI模式,实际使用PEE械时,转换步骤如下:

FEI->FBE->PBE->PEE

K60-Clock-Mode.png

上电时时钟源是由IRC提供,最终要切换到PLL,在切换至PLL前需要配置好ERC和PLL,PLL配置好后,只有在最后时才切换为MCGOUTCLK提供Clock,然后为MCGOUTCLK配置Divider,这样各部分电路就有了不同的频率。

开发板的外接时钟有两个,整个系统的50Mhz和RTC上的32.768Khz。目标是系统中的Core = 100Mhz, Bus = 50Mhz, FlexBus = 50Mhz, Flash = 25Mhz。

最新文章

最近回复

  • Blackrose: 感谢拍砖!嗯,那句话...
  • aa: “Raspberry...
  • Blackrose: 外部只是帮你把芯片启...
  • : 内部时钟比外部的频率...
  • Blackrose: 你这评论比正文更有内容么
  • 7hao: CR+LF ...
  • Blackrose: 可以是你更新软件源后...
  • sxk: 博主,我的系统是ub...
  • Blackrose: 你深得精髓么
  • qihao: 这篇文章的简单总结就...

分类

归档

其它