ENGLISH 简体中文 日本語 한국어  



   
 
キーワードまたは型番を入力    




アプリケーションノート 3478

DS80C400/410/411のフラッシュメモリの選択

要約:DS80C400/DS80C410/DS80C411ネットワークマイクロコントローラには、フラッシュメモリチップが適合するために満たすべき、特定の電気的要件とタイミング要件があります。このアプリケーションノートでは、これらの要件について説明し、DS80C400/DS80C410/DS80C411に完全に適合するメモリチップの例を示しています。また、フラッシュメモリの消去とプログラミングに利用することができるソフトウェアコードを示しています。このフラッシュメモリは電気的には適合していますが、ROMローダのソフトウェアには適合していません。このアプリケーションノートをお読みになれば、どのフラッシュメモリをDS80C400/DS80C410/DS80C411の設計に使用するのかを判断することができます。

概要

このアプリケーションノートでは、DS80C400/DS80C410/DS80C411ネットワークマイクロコントローラとともに使用するフラッシュメモリの適合要件について説明します。また完全に適合するフラッシュメモリチップの例を示します。このノートでは、フラッシュメモリの消去とプログラミングに利用できるソフトウェアも示しています。このフラッシュメモリは電気的には適合していますが、ROMローダのソフトウェアには適合していません。

このアプリケーションノートに記載したプログラムコードはすべて、ダラスセミコンダクタの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で実行したい場合は、『アプリケーションノート615:Design Considerations for DS80C400-Based TINI Systems』で説明しているように、Fast SRAMから実行する必要があります。

CPUの水晶発振器は、優れたシリアルボーレートの発生器でなければなりません。また、100Mbitネットワーク上での動作は、CPU速度が約27MHzよりも速いときにのみ可能です。

ROMローダ

DS80C400/DS80C410/DS80C411には、シリアルポートやネットワークを経由してSRAMやフラッシュの読み込みをサポートする内蔵ROMが搭載されています。ローダのシリアルポートの最大ボーレートは、水晶発振器の速度によって制限されることに留意してください。たとえば、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は常にセクタのアドレスです。数字はすべて16進表記です。

フラッシュのアドレスライン

ほとんどのフラッシュメモリは、「マジック」アドレスに一致したとき、上位のアドレスビットを無視します(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 IDとDevice IDは16進表記です。
ROM Support列:Full = 完全サポート、Prog = ROMでプログラミングが可能、No = サポートなし

注:すべてのデバイスがダラスセミコンダクタによってテストされているわけではありません。製造工程やデバイスのデータは変更されることがありますので、設計に取り組む前に適合性を確認してください。

フラッシュのソフトウェア

特定のメモリがROMローダによって完全にはサポートされていない場合、SRAMにロードしたソフトウェアによって消去/プログラミングすることができます。リスト1は、フラッシュチップを消去するソフトウェアを示しています。リスト2は、SRAMからフラッシュに64kBをコピーすることによってフラッシュセクタをプログラミングする方法を示しています。これらのサンプルプログラムは通常、特定のフラッシュのプログラミングアルゴリズムに合わせて修正する必要があることに留意してください。

サンプルプログラムは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 
#include 
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の設計に使用するかを判断することができます。

マキシム/セミコンダクタは、このアプリケーションノートに記載されたデバイスの中で、マキシム/ダラスセミコンダクタが製造していないデバイスに対しては責任を負いません。電気的仕様や入手性等、特定デバイスのアプリケーションでの適合性については、ユーザが全面的に責任を負うものとします。他社メモリ製品の詳細情報については、各デバイスベンダにお問い合わせください。

参考資料

このアプリケーションノートに記載したプログラムコードはすべてダラスセミコンダクタのftpサーバからダウンロードすることができます。ネットワークマイクロコントローラの詳細については、「高速マイクロコントローラのユーザガイド:Network Microcontroller Supplement」およびDS80C400/DS80C410/DS80C411のデータシートを参照してください。 DS80C400、DS80C410、およびDS80C411のCライブラリのWebサイトを利用してダウンロードすることができます。 ユーザディスカッションボードをダウンロードに利用することができます。


関連製品  APP 3478: Sep 12, 2005
DS80C400 ネットワークマイクロコントローラ フルデータシート
(PDF, 1.8MB)
無料
サンプル
DS80C410 イーサネットおよびCAN付きネットワークマイクロコントローラ フルデータシート
(PDF, 1.8MB)
無料
サンプル
DS80C411 イーサネットおよびCAN付きネットワークマイクロコントローラ フルデータシート
(PDF, 1.8MB)
無料
サンプル

自動アップデート
お客様が関心のある分野でアプリケーションノートが新規に掲載された際に自動通知Eメールの受信を希望する場合は、EE-Mail™にご登録ください。


We Want Your Feedback!



フィードバックをお寄せください。
内容に満足されましたか、あるいは満足されていませんか?もっと良いページにできると思いますか?あるいは、単なるコメントでも結構です。フィードバックをお待ちしています。—マキシムはお客様からいただく訂正、提案を元に改善していきます。 このページを評価し、フィードバックを送信する。

 

ダウンロード、PDFフォーマットダウンロード、PDFフォーマット(110kB)
 AN3478, AN 3478, APP3478, Appnote3478, Appnote 3478

        •         •         •     プライバシーポリシー     •     法的お知らせ

    Copyright © 2009 by Maxim Integrated Products