首先我要警告你们!!!这是一个自由、试验性的设计。在我这工作得很好,但是我不能给你任何担保,这是过失自由。当准备材料发表这篇文章时,我可能犯下任何错误,硬件和软件上都有可能有未被发现的漏洞。它也有可能侵犯某人的专利...(尽管我对此一无所知)。所以记住——你使用它,后果自负!!!
Silabs(以前的Cygnal)生产的C8051F320,是一个很好的带USB支持的微控制芯片。不幸的是,如果决定使用这块芯片开发,你不得不购买非常昂贵的开发套件。本文我向大家介绍一些替代品,自制便宜一些的工具套件。
首先是一个C8051F320的简易而且便宜的开发板。原理图基于Silabs公司的原始开发板。它被设计为单层PCB,因此非常容易在家自制。

PCB设计是通过自由软件PCB完成的。对你们来说,可能运行不了PCB(比如,因为你们的电脑只运行那个破系统®),我提供了PDF文件。
原理图设计是通过自由软件gschem完成的, 但是同样我也提供了PDF文件。
然而如果没有编程器(译注:就是下载线),开发板本身毫无用处。为了尽量减少开支,我提供了一个简单的编程器(这是XFig格式的原理图源文件),它直接的电脑的并口连接。
编程器由一个用C语言写的专用软件控制。这个软件(源码以GPL发布)由两部分组成。第一部分是一个专用Linux驱动,第二部分是一个软件“cygprog”。要使用编程器你首先必须装载驱动(以根用户执行):
# insmod cygnal_c2 io_base=0x378 major=233
(通常你需要调整你电脑并口的端口地址,使io_base 和major数字对应端口为空闲值域;你也可以不设置major——它会被动态分配,你需要从/proc/devices找到那个动态分配的确切值)。
然后你应该创建合适的设备节点。现在编程器期望在它的工作目录找到它,一个叫“cygnal”的节点(如果想改变名字你可以修改源码)。
# mknod cygnal c 233 0
现在你可以使用软件了。给普通用户cygnal设备的访问权和以普通用户执行软件是一个明智的作法:
# chown user.user cygnal
一个重要说明——我写的驱动与“parpot”设备不兼容。在使用cygnal设备之前,必须移除“parport”驱动和/或“lp”驱动。
我的编程器软件现在只能识别从地址0开始的原始二进制文件。你可以使用“srec_cat”工具(在Debian的“srecord”包中有提供),把标准的“ihx”文件(SDCC编译器产生)转化成二进制文件。你应该使用这样的命令行:
$srec_cat -Output test.bin -Binary wzab.ihx -Intel
把“ihx”文件转化成二进制文件。
然后就可以使用cygprog软件把程序写进设备记忆体:
$./cygprog p test.bin
软件也可以验证记忆体中的程序(./cygprog v test.bin),或把设备记忆体中程序写入文件(./cygprog r output.bin)。
当然这只是第一个草稿版本(然而对我来说它很有用),所以如果你可以提出任何修改和建议,我会很感激。
我已经接到一些信息,说在2.6版本的内核无法编译驱动。我已经检查过,并对源文件作了一些小改动。这里是为2.6内核改进的源码。压缩文件包含两个子文件夹:"driver"和"program"。在"driver"子文件夹内打命令将编译驱动模块(然而编译过程中可能会出现一些警告),在"program" 内会编译编程器软件的用户模块。
需要改进之处
- 筹备在自由许可(GPL或Artistic)下发布的USB固件,以便能用SDCC C 编译器编译。
- 改进编程器,让它只擦除闪存记忆体中需要擦除的页面。
- 设计能在Linux操作系统下工作的C2调试工具(然而这个任务需要C2调试说明书,比如寄存器映象和引用命令——如能提供帮助万分感激)
Matt Otto发来的改进
前些日子我接到一个编程器的改进版本,是Matt Otto做的。这是他在README文件中所写的:
这是Wojtek Zabolotny的C2编程器增强版。有两个重要改进:
- 我把源代码包含到一个新程序中去了,c2mon.c,它演示了在C2接口中如何显示调试操作。在程序运行时它显示非常粗糙(没有用户交互),但是源代码展示了如何显示任何你想要的调试任务。
- 为了支持一些没有说明的C2接口行为,我必须改进Wojtek的驱动和原理图。这些改进允许发送和接收短的C2CK脉冲。
除了C2CK改进之处,我也对驱动增加了即插即用(PNP)支持,以便它能在工的电脑上工作(我不知道是我的电脑硬件不同或是2.6.12内核需要它)。我没有试图把c2mon做成一个与操作系统无关的软件,而是开始把c2com整合到SDCDB中去,SDCDB是SDCC所带的调试器。(目前为止,SDCDB只知道如何与uCsim仿真器接口。)在这完成这个项目之前,希望c2mon.c样本代码会有用。
Matt Otto matt@__NO_SPAM__klox.net












自制C8051F320简易评估板和Linux编程器


cccccc 状元 | Blog | 03/31/2008
这个公司烂,在任何地方都找不到C2协议,那就没人做得出完全功能的下载线了。只能买...
mldzkj 童生 | 04/01/2008
西安铭朗 以太网控制控制开发板ML-CP2200/F340DK
本开发板是针对CP2200以太网控制器和C8051F340单片机(SOC)而开发的,板上可实现简单WEB服务器,可通过工具方便配置出各种网络协议,以适应各种应用。针对C8051F340单片机片上的全部资源,我们编写了所有功能的测试程序,对该单片机的性能做了全面的测试评估,使用方便。使用该开发板能使开发者迅速掌握CP2200以太网控制器和C8051F340单片机的软硬件设计,大大缩短了产品开发周期。
核心MCU资源
CP2200以太网控制器简介
CP2200/1是集成了IEEE 802.3以太网媒体访问控制器(MAC)、10Base-T物理层(PHY)和8KB非易失性FLASH存储器的单芯片以太网控制器,采用28脚QFN(5x5mm)或48脚TQFP封装。
C8051F340芯片资源:
C8051F340是完全集成的混合信号系统级MCU芯片。下面列举了一写主要芯片资源:
•高速流水线结构的8051兼容的CIP-51内核(最大48MIPS);
•全速非侵入式的系统调试接口(C2接口);
•USB总线接口,全速12Mbps,1KB FIFO;
•真正10位200ksps的17通道ADC,带模拟多路开关;
•64K字节可在系统编程的FLASH存储器;
•5376字节的片内RAM;
•可寻址64K字节地址空间的外部数据存储器接口;
•硬件实现的SPI,SMBus/IIC和两个UART串行接口;
•4个通用的16位定时器;
•具有5个捕捉/比较模块的可编程计数器/定时器阵列;
•片内看门狗定时器,2个比较器,VDD监视器和温度传感器;
•40个I/O端口;
•-40~85度工业级温度范围;
•2.7V~3.6V工作电压,48脚TQFP封装;
可评估的其它MCU
可评估的其它芯片(MCU):CP2201,C8051F341/2/3/4/5/6/7;
开发板硬件资源
•以太网控制器CP2200实现WEB服务器;
•MCU:C8051F340,片内64K FLASH,5376Byte SRAM;
•USB 2.0 与计算机通信;
•2路10bit AD通过接线端子引出;
•1路RS232接口;
•3按键、LED等;
•C2调试接口;
•芯片所有资源对用户开放;
软件例程简介
•键盘与串行通信例程;
•17路10位AD转换例程;
•USB总线通信例程;
•CP2200以太网通信例程;
(1) 软件延时例程,包括微秒级、毫秒、级秒级延时程序;
(2) 串行通信例程;
(3) SPI总线驱动的LED数码管(8个)显示例程;
(4) SPI总线驱动的8*1按键例程;
(5) IIC总线AT24C02读写例程;
(6) 6路PWM输出例程;
(7) 32路12位AD转换例程;
(8) 2路12位DA转换例程;
(9) 片上RTC时钟显示例程;
备注:
其他开发板:{ML-F020(工业控制板) 、ML-F020(C8051F020开发板)、ML-F120(C8051F120开发板) 、ML-040(C8051F040开发板) 、ML-F410(C8051F410开发板) 、ML-CP2200/F340(CP2200 C8051F340开发板) 、ML-F350EK(C8051F350学习板) 、ML-F320(C8051F320开发板) 、ML-F060(C8051F060评估板) 、ML-F310(C8051F310评估板)}其他详细息见www.mlarm.com
联系方式:TEL:029-88223597;MOB:13572843597;QQ:26876523;MSN:mldzkj@hotmail.com MAIL:mldzkj@163.com 王小姐)
cccccc 状元 | Blog | 04/01/2008
看,来开买了吧。哈哈。
mopz0506 童生 | 10/30/2008
silabs 现在可以下载 c2 接口规范,是否完全还没看不清楚。
http://www.silabs.com/pages/DownloadDoc.aspx?FILEURL=Support%20Documents/TechnicalDocs/C2spec.pdf