ENGLISH 简体中文 日本語 한국어  

    Login | Register 


   
 
请输入关键词或器件型号    




应用笔记3478

DS80C400/410/411闪存选择

摘要:DS80C400/DS80C410/DS80C411网络微控制器具有特定的电气和时序要求,兼容的闪存芯片必须符合这些要求。本应用笔记对这些要求进行说明,给出与DS80C400/DS80C410/DS80C411完全兼容的存储器芯片实例,同时还给出能够擦除和编程电气兼容、但与ROM装载程序软件不兼容闪存的软件源代码。读过本应用笔记后,用户在DS80C400/DS80C410/DS80C411设计中应可以决定使用何种闪存。

概述

本应用笔记描述DS80C400/DS80C410/DS80C411网络微控制器所采用闪存的兼容性要求,给出完全兼容闪存芯片的实例。本应用笔记同时还给出了能够擦除和编程电气兼容、但与ROM装载程序软件不兼容闪存的软件。

本应用笔记中的所有参考程序源代码可从Dallas Semiconductor的ftp服务器下载

要求

为与DS80C400/DS80C410/DS80C411一起工作,闪存芯片必须电气兼容,还必须符合规定的时序要求(例如,速度必须足够快)。

电气特性

DS80C400/DS80C410/DS80C411要求3.3V、字节宽度(x 8)的闪存。

访问时间

DS80C400/DS80C410/DS80C411运行速率(CPU速率)为晶体速率乘以时钟倍频系数。(ROM装载程序无法访问时钟倍频系数,但可由应用软件设置。) 时钟周期tclcl = 1/(CPU速率)。

只有符合DS80C400/DS80C410/DS80C411时序要求时,才可从闪存运行,详见相应数据资料。

表1列出了DS80C400和闪存AM29LV081的运行速率。

表1. 闪存访问时间tavav决定的CPU速率
Rated Flash Speed Max CPU Speed
55ns 40MHz
70ns 33MHz
90ns 27.5MHz
120ns 21MHz
150ns 17MHz

注意:没有能够使网络微控制器运行于75MHz的商用闪存。如果您希望以75MHz运行,应采用快速SRAM,可参考应用笔记615:"Design Considerations for DS80C400-Based TINI Systems。"

CPU晶体应为较好的串行波特率产生器。而且,只有CPU速率大于约27MHz时,才能运行在100M位网络上。

ROM装载程序

DS80C400/DS80C410/DS80C411的内置ROM支持通过串口和网络装载SRAM和闪存。注意,用于装载程序的串口最大波特率由晶体决定,如115200bps至少需要20MHz。

装载程序算法

ROM装载程序内置用于闪存扇区擦除和闪存字节编程的算法。装载程序假定闪存扇区大小均为64kB,采用表2所示的编程算法。

表2. ROM装载程序闪存算法
Operation Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5 Cycle 6
  Addr Data Addr Data Addr Data Addr Data Addr Data Addr Data
Program 0555 AA 02AA 55 0555 A0 PA PD        
Sector erase 0555 AA 02AA 55 0555 80 0555 AA 02AA 55 0000 30

注意:表2仅列出了DS80C4XX地址线A15-A0。A2-A16总是扇区地址。所有数值为十六进制。

闪存地址线

在与虚(magic)地址匹配时,多数闪存忽略高阶地址位(DS80C400/DS80C410/DS80C411的A12及更高地址位)。例如,初始化编程序列时,第一个地址无论是5555h还是555h,其作用相同。

还有一些闪存忽略低地址位(在字/字节可选存储器中称为A-1,其余为A0)。例如,地址无论是555h还是554h,其作用相同。

这表明有些存储器表面看起来不兼容,但如果按表3 (B)列或(C)列所示连接闪存地址线,则能与DS80C400/DS80C410/DS80C411装载程序完全兼容。所有其它闪存(不含地址线A-1,或未在表4另外列出)应按照(A)列所示连接。

表3. 地址线连接
DS80C400/410/411
Address Line
(A) Standard (B) With A-1 (C) See Text
A0 A0 A0 A1
A1 A1 A1 A2
A2 A2 A2 A3
A3 A3 A3 A4
A4 A4 A4 A5
A5 A5 A5 A6
A6 A6 A6 A7
A7 A7 A7 A8
A8 A8 A8 A9
A9 A9 A9 A10
A10 A10 A10 A11
A11 A11 A-1 A0
A12 A12 A11 A12
A13 A13 A12 A13
A14 A14 A13 A14
... ... ... ...
A(n) A(n) A(n-1) A(n)

装载程序支持等级

完全支持的闪存可直接使用ROM装载程序工作。

部分支持的闪存需要软件帮助擦除闪存扇区,但可由ROM编程。这类闪存多数具有可编程引导扇区,但不能被ROM装载程序完全擦除。

不支持的闪存需要外部软件进行擦除和编程。

表4列出了一些闪存与ROM装载程序的兼容性。

表4. 3V闪存(x 8)
Vendor (ID) Device (ID) Size (Byte) Blocks ROM Support Notes
Atmel (1F) AT49BV001A (4,5) 128K B Prog Tested. ROM can program, but not erase part of the boot sector.
AT49LV008A (21,22) 1M B No  
AT49LL080 (EB) 1M U No  
Intel (89) 28F320J3 (16) 4M O No  
Macronix (C2) MX29LV081 (38) 1M U Full Tested. Data sheet shows incompatibility for sector erase, but sector erase does work in practice.
MX29LV017B (C8) 2M U Full Tested.
MX29LV033A (A3) 4M U Full  
Micron (2C,89) MT28F004B3 (70,71) 512K B No  
MT28F400B3 (70,71) 512K B No  
MT28F008B3 (9C,9D) 1M B No  
MT28F320J3 (16) 4M O No  
Sharp (89) LH28F016SC (AA) 2M U No  
Spansion (01) (AMD/Fujitsu) AM29LV200B (3B,BF) 256K B Prog Tested. Requires address line connection (B). ROM can program, but not erase part of the boot sector.
AM29LV004B (B5,B6) 512K B Prog Tested. ROM can program, but not erase part of the boot sector.
AM29LV040B (4F) 512K U Full Tested.
AM29LV400B (B9,BA) 512K B Prog Tested. Requires address line connection (B). ROM can program, but not erase part of the boot sector.
AM29LV008B (37,3E) 1M B Prog Tested. ROM can program, but not erase part of the boot sector.
AM29LV081B (38) 1M U Full Tested.
AM29LV800 (5B,DA) 1M B Prog Tested. Requires address line connection (B). ROM can program, but not erase part of the boot sector.
AM29LV017D (4F) 2M U Full Tested.
AM29LV116D (4C,C7) 2M B Prog Tested. ROM can program, but not erase part of the boot sector.
AM29LV160B/D or S29AL016D (49,C4) 2M B Prog Tested. Requires address line connection (B). ROM can program, but not erase part of the boot sector.
AM29LV033C or S29AL032D Model 0 (A3) 4M U Full Tested.
AM29LV320D or S29AL032D Model 3/4 (F6,F9) 4M B Prog Tested. Requires address line connection (B). ROM can program, but not erase part of the boot sector.
SST (BF) SST39LF040 (D7) 512K O No  
SST39LF080 (D8) 1M U No  
SST39VF1681/2 (C8) 2M U Full Requires address line connection (C).
ST Microelectronics (20) M29W004B (EA,EB) 512K B Prog ROM can program, but not erase part of the boot sector.
M29W040B (E3) 512K U Prog Tested. Should be fully supported according to data sheet, but sector erase algorithm does not work in practice.
M29W008D (D2,DC) 1M B Prog Tested. ROM can program, but not erase part of the boot sector.
M29W800D (D7, 5B) 1M B No Tested.
Winbond (DA) W39L040A (D6) 512K U No  

说明:
Blocks列:B = 器件具有引导区,U = 一致的64kB块尺寸,O = 一致的非64kB块尺寸
Vendor (供应商)和Device (器件) ID以16进制表示。
ROM Support列:Full Support (完全支持)、ROM can Program (ROM可编程)或No Support (不支持)

注意:不是所有的器件都经过了Dallas Semiconductor的测试。制造工艺和器件数据可能会改变,在进行设计之前,请验证兼容性。

闪存软件

如果ROM装载程序不完全支持某种特殊存储器,可通过软件装载SRAM来擦除/编程该存储器。程序1是擦除闪存芯片的软件。程序2将64kB的SRAM内容复制至闪存,对闪存扇区编程。请注意,实现对特定闪存的编程算法时,这些程序通常需要修改。

程序将内容装载至SRAM的第一个64kB (“第0块”)。采用MTK时,请关掉“Clear Heap”选项。当采用ROM装载程序对部分支持的闪存编程时(运行芯片擦除程序之后),请关掉JavaKit中的“AutoZap”选项,或MTK中的“Erase Flash”选项。

程序1. 擦除闪存(chiperase.asm)
;****************************************************************************
;* Copyright (C) 2004 Dallas Semiconductor Corporation, All Rights Reserved.
;*
;* Permission is hereby granted, free of charge, to any person obtaining a
;* copy of this software and associated documentation files (the "Software"),
;* to deal in the Software without restriction, including without limitation
;* the rights to use, copy, modify, merge, publish, distribute, sublicense,
;* and/or sell copies of the Software, and to permit persons to whom the
;* Software is furnished to do so, subject to the following conditions:
;*
;* The above copyright notice and this permission notice shall be included
;* in all copies or substantial portions of the Software.
;*
;* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
;* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
;* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
;* IN NO EVENT SHALL DALLAS SEMICONDUCTOR BE LIABLE FOR ANY CLAIM, DAMAGES
;* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
;* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
;* OTHER DEALINGS IN THE SOFTWARE.
;*
;* Except as contained in this notice, the name of Dallas Semiconductor
;* shall not be used except as stated in the Dallas Semiconductor
;* Branding Policy.
;****************************************************************************
;
; This program demonstrates how to erase a flash memory chip that is not
; supported by the ROM loader of the networked microcontrollers.
;
; To build this program, run
; macro chiperase.asm
; a390 -d -l chiperase.mpp
;
; To execute, load into SRAM and use loader commands 'B0', 'X0'.
;
; Note: When using MTK to load this code, be sure to disable the "Clear Heap"
; option.
;
; The flash memory we want to erase is connected to CE2, or address 400000h,
; since the ROM uses 2 MB per chip enable.
FLASH_ADDRESS EQU 400000h
; Different flash memories use different addresses to "tickle" flash programming/
; erase operation.
; Erase ST M29W040
; FLASH_TICKLE0 EQU (FLASH_ADDRESS or 555h)
; FLASH_TICKLE1 EQU (FLASH_ADDRESS or 2aah)
; Erase AM29LV200BT
FLASH_TICKLE0 EQU (FLASH_ADDRESS or 0aaah)
FLASH_TICKLE1 EQU (FLASH_ADDRESS or 555h)
org 000000h
start:
; The ROM enables 24 bit mode and disables interrupts.
; No other initialization is necessary.
; Start flash chip erase
; 1st Cycle
mov dptr, #FLASH_TICKLE0
mov a, #0aah
movx @dptr, a
; 2nd Cycle
mov dptr, #FLASH_TICKLE1
mov a, #55h
movx @dptr, a
; 3rd Cycle
mov dptr, #FLASH_TICKLE0
mov a, #80h
movx @dptr, a
; 4th Cycle
mov dptr, #FLASH_TICKLE0
mov a, #0aah
movx @dptr, a
; 5th Cycle
mov dptr, #FLASH_TICKLE1
mov a, #55h
movx @dptr, a
; 6th Cycle
mov dptr, #FLASH_TICKLE0
mov a, #10h
movx @dptr, a
; Wait for operation to complete
mov dptr, #FLASH_ADDRESS
wait:
movx a, @dptr
cjne a, #0ffh, wait
; Reset
mov dptr, #FLASH_ADDRESS
mov a, #0f0h
movx @dptr, a
; Print success message
mov a, #'D'
acall printchar
mov a, #'O'
acall printchar
mov a, #'N'
acall printchar
mov a, #'E'
acall printchar
; Done!
sjmp $
; Serial port 0 is initialized by the loader. Printing
; a character is therefore trivial.
tix bit scon.1
printchar:
jnb tix, $
clr tix
mov sbuf, a
jnb tix, $
ret
end
程序2. 对不支持的闪存编程(flashprogram.asm)
;***************************************************************************
;* Copyright (C) 2004 Dallas Semiconductor Corporation, All Rights Reserved.
;*
;* Permission is hereby granted, free of charge, to any person obtaining a
;* copy of this software and associated documentation files (the "Software"),
;* to deal in the Software without restriction, including without limitation
;* the rights to use, copy, modify, merge, publish, distribute, sublicense,
;* and/or sell copies of the Software, and to permit persons to whom the
;* Software is furnished to do so, subject to the following conditions:
;*
;* The above copyright notice and this permission notice shall be included
;* in all copies or substantial portions of the Software.
;*
;* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
;* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
;* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
;* IN NO EVENT SHALL DALLAS SEMICONDUCTOR BE LIABLE FOR ANY CLAIM, DAMAGES
;* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
;* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
;* OTHER DEALINGS IN THE SOFTWARE.
;*
;* Except as contained in this notice, the name of Dallas Semiconductor
;* shall not be used except as stated in the Dallas Semiconductor
;* Branding Policy.
;****************************************************************************
;
; This program demonstrates how to erase a flash memory chip that is not
; supported by the ROM loader of the networked microcontrollers.
;
; To build this program, run
; macro flashprogram.asm
; a390 -d -l flashprogram.mpp
;
; To execute, first load the data you wish to program into SRAM memory in
; bank 1 (010000h - 01ffffh). Then, load this code into SRAM and use
; the loader commands 'B0', 'X100'.
;
; Note: When using MTK to load this code, be sure to disable the "Clear Heap"
; option.
;
; The flash memory we want to program is connected to CE2, or address 400000h,
; since the ROM uses 2 MB per chip enable.
FLASH_ADDRESS EQU 400000h
; Different flash memories use different addresses to "tickle" flash programming/
; erase operation.
; Byte Program AM29LV200BT
FLASH_TICKLE0 EQU (FLASH_ADDRESS or 0aaah)
FLASH_TICKLE1 EQU (FLASH_ADDRESS or 555h)
; Address of programming buffer in SRAM
PROG_BUFFER EQU 010000h
; We want to program a whole 64 KB block
PROG_SIZE EQU 10000h
; This example program uses three datapointers
dps equ 086h
org 000100h
start:
; The ROM enables 24 bit mode and disables interrupts.
; No other initialization is necessary.
; Make sure r2 is in register bank 0
mov psw, #0
; Number of bytes to program
mov r1, #high(PROG_SIZE)
mov r0, #low(PROG_SIZE)
; Source
mov dps, #1
mov dptr, #PROG_BUFFER
; Destination
mov dps, #8
mov dptr, #FLASH_ADDRESS
loop:
; Start flash chip program for this byte
; Get source byte
mov dps, #1
movx a, @dptr
inc dptr
; Save byte we wish to program
mov r2, a
; No need to write the same byte again
; (also prevents writing of 0ffh)
mov dps, #8
movx a, @dptr
xrl a, r2
jz next
; Select dptr0
mov dps, #0
; 1st Cycle
mov dptr, #FLASH_TICKLE0
mov a, #0aah
movx @dptr, a
; 2nd Cycle
mov dptr, #FLASH_TICKLE1
mov a, #55h
movx @dptr, a
; 3rd Cycle
mov dptr, #FLASH_TICKLE0
mov a, #0a0h
movx @dptr, a
; 4th Cycle: Put destination byte
mov dps, #8
mov a, r2
movx @dptr, a
; Wait for operation to complete
wait:
movx a, @dptr
cjne a, 2, wait
next:
mov dps, #8
inc dptr
djnz r0, loop
; Display progress indicator
mov a, #'.'
acall printchar
djnz r1, loop
; Reset
mov dptr, #FLASH_ADDRESS
mov a, #0f0h
movx @dptr, a
; Print success message
mov a, #13
acall printchar
mov a, #10
acall printchar
mov a, #'D'
acall printchar
mov a, #'O'
acall printchar
mov a, #'N'
acall printchar
mov a, #'E'
acall printchar
; Done!
sjmp $
; Serial port 0 is initialized by the loader. Printing
; a character is therefore trivial.
tix bit scon.1
printchar:
jnb tix, $
clr tix
mov sbuf, a
jnb tix, $
ret
end

闪存识别

多数闪存可利用其自动选择能力被识别。程序3列出了解码多种闪存芯片供应商和器件的C源程序。

程序3. 闪存识别(identify.c)
/* ---------------------------------------------------------------------------
* Copyright (C) 2004 Dallas Semiconductor Corporation, All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included
* in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL DALLAS SEMICONDUCTOR BE LIABLE FOR ANY CLAIM, DAMAGES
* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE.
*
* Except as contained in this notice, the name of Dallas Semiconductor
* shall not be used except as stated in the Dallas Semiconductor
* Branding Policy.
* ---------------------------------------------------------------------------
*/
/*
* Identify - Tries to Identify Flash Memory Make/Model.
* Run from bank 20 (using loader commands B20, X)
*/
#include <stdio.h>
#include <reg400.h>
void main()
{
unsigned char vendor, device, ce;
puts("DS80C400/DS80C410/DS80C411 Flash Memory Identification");
do {
printf("
Identify flash at which chip enable? ");
do {
putchar(ce = _getkey());
if ((ce < '0') || (ce > '7'))
printf(" 0-7> ");
} while ((ce < '0') || (ce > '7'));
puts("
");
ce -= '0';
ce <<= 5; // 2 MB per chip enable
AP = ce;
#pragma asm
/* Tickle Flash Memory */
mov dptr, #0x5555
mov dpx, ap
mov a, #0xaa
movx @dptr, a
mov dptr, #0xaaaa
mov dpx, ap
mov a, #0x55
movx @dptr, a
/* Read ID Command */
mov dptr, #0x5555
mov dpx, ap
mov a, #0x90
movx @dptr, a
/* Read Manufacturer ID */
mov dptr, #0
mov dpx, ap
movx a, @dptr
#pragma endasm
vendor = ACC;
#pragma asm
/* Reset Flash */
mov dptr, #0
mov dpx, ap
mov a, #0xf0
movx @dptr, a
mov a, #0xff
movx @dptr, a
#pragma endasm
#pragma asm
/* Tickle Flash Memory */
mov dptr, #0x5555
mov dpx, ap
mov a, #0xaa
movx @dptr, a
mov dptr, #0xaaaa
mov dpx, ap
mov a, #0x55
movx @dptr, a
/* Read ID Command */
mov dptr, #0x5555
mov dpx, ap
mov a, #0x90
movx @dptr, a
/* Read Manufacturer ID */
mov dptr, #0x01
mov dpx, ap
movx a, @dptr
#pragma endasm
device = ACC;
#pragma asm
/* Reset Flash */
mov dptr, #0
mov dpx, ap
mov a, #0xf0
movx @dptr, a
mov a, #0xff
movx @dptr, a
#pragma endasm
printf("Flash memory at CE%bu: Vendor ID %02bX, Device ID %02bX.
--> ", ce >> 5, vendor, device);
switch (vendor) {
case 0x01: printf("Spansion AM");
switch (device) {
case 0x37: puts("29LV008 Top Boot"); break;
case 0x38: puts("29LV081"); break;
case 0x3b: puts("29LV200 Top Boot"); break;
case 0x3e: puts("29LV008 Bottom Boot"); break;
case 0x49: puts("29LV160 Bottom Boot"); break;
case 0x4c: puts("29LV116 Bottom Boot"); break;
case 0x4f: puts("29LV040"); break;
case 0x5b: puts("29LV800 Bottom Boot"); break;
case 0xa3: puts("29LV033"); break;
case 0xb5: puts("29LV004 Top Boot"); break;
case 0xb6: puts("29LV004 Bottom Boot"); break;
case 0xb9: puts("29LV400 Top Boot"); break;
case 0xba: puts("29LV400 Bottom Boot"); break;
case 0xbf: puts("29LV200 Bottom Boot"); break;
case 0xc4: puts("29LV160 Top Boot"); break;
case 0xc7: puts("29LV116 Top Boot"); break;
case 0xc8: puts("29LV017"); break;
case 0xda: puts("29LV800 Top Boot"); break;
case 0xf6: puts("29LV320 Top Boot"); break;
case 0xf9: puts("29LV320 Bottom Boot"); break;
default: puts(" ????"); break;
}
break;
case 0x1f: printf("Atmel AT");
switch (device) {
case 0x21: puts("49BV/LV008 T"); break;
case 0x22: puts("49BV/LV008"); break;
case 0xeb: puts("49LL080"); break;
default: puts(" ????"); break;
}
break;
case 0x20: printf("ST M");
switch (device) {
case 0x5b: puts("29W800 Bottom Boot"); break;
case 0xd2: puts("29W008 Top Boot"); break;
case 0xd7: puts("29W800 Top Boot"); break;
case 0xdc: puts("29W008 Bottom Boot"); break;
case 0xe3: puts("29W040"); break;
case 0xea: puts("29W004 Top Boot"); break;
case 0xeb: puts("29W004 Bottom Boot"); break;
default: puts(" ????"); break;
}
break;
case 0x89: printf("Intel or Sharp LH or "); // fall through
case 0x2c: printf("Micron MT");
switch (device) {
case 0x16: puts("28F320J3"); break;
case 0x70: puts("28F004B3/28F400B3 Top Boot"); break;
case 0x71: puts("28F004B3/28F400B3 Bottom Boot"); break;
case 0x9c: puts("28F008B3/28F800B3 Top Boot"); break;
case 0x9d: puts("28F008B3/28F800B3 Bottom Boot"); break;
case 0xaa: puts("28F016SC"); break;
default: puts(" ????"); break;
}
break;
case 0xbf: printf("SST SST");
switch (device) {
case 0xc8: puts("39VF1681"); break;
case 0xc9: puts("39VF1682"); break;
case 0xd4: puts("39LF/VF512"); break;
case 0xd5: puts("39LF/VF010"); break;
case 0xd6: puts("39LF/VF020"); break;
case 0xd7: puts("39LF/VF040"); break;
case 0xd8: puts("39LF/VF080"); break;
default: puts(" ????"); break;
}
break;
case 0x02:
case 0xc2: printf("Macronix MX");
switch (device) {
case 0x38: puts("29LV081"); break;
case 0xa3: puts("29LV033"); break;
case 0xc8: puts("29LV017"); break;
default: puts(" ????"); break;
}
break;
case 0xda: printf("Winbond W");
switch (device) {
case 0xd6: puts("39L040"); break;
default: puts(" ????"); break;
}
break;
default: puts("Unknown vendor/unknown device");
break;
}
} while (1);
}

结论

在本应用笔记的帮助下,用户在DS80C400/DS80C410/DS80C411设计时,应该能够决定采用那种闪存芯片。

Maxim/Dallas Semiconductor不对本应用笔记中列出的非Maxim/Dallas Semiconductor制造的器件负责。用户应对其应用中所选特定器件的电气规范和可用性负责。请与存储器件供应商联系,了解其产品的详细信息。

参考

本应用笔记的所有参考程序源代码可从Dallas Semiconductor的ftp服务器下载
请参考高速微控制器用户指南: 网络微控制器补充资料(English only)以及DS80C400/DS80C410/DS80C411数据资料,了解网络微控制器的详细信息。
DS80C400、DS80C410和DS80C411的C程序库可供下载
用户论坛可供下载(English only)。


相关型号  APP 3478: Jul 04, 2005
DS80C400 网络微控制器 完整的数据资料
(PDF, 1.8MB)
免费样品
DS80C410 具有以太网和CAN接口的网络微控制器 完整的数据资料
(PDF, 4.6MB)
免费样品
DS80C411 具有以太网和CAN接口的网络微控制器 完整的数据资料
(PDF, 4.6MB)
免费样品

自动更新
需要自动接收最新发布的应用笔记吗?请订阅EE-Mail™ (English only)。




我们期待您的反馈!
喜欢?不喜欢?有待改善?或为我们提供建议?请与我们联系 — 我们将根据您的意见或建议改善我们的工作。 网页评价或提供建议

 

下载,PDF格式下载,PDF格式 (110kB)
 AN3478, AN 3478, APP3478, Appnote3478, Appnote 3478

        •         •         •     隐私权政策     •     法律声明

    © 2009 Maxim Integrated Products版权所有