기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.





안녕하세요.
이번에 aESOP 보드를 근간으로 2410 보드를 만들고 nand Flash를 붙였는데요.. Nand 인식이 안되어서 경험해보신 분들의 도움을 받고자 합니다.

[증상]
- 보드는 S3C2410, 우리 이솝에서 쓰는 동일한 Nand 64MB 붙이고.
- u-boot도 이솝 u-boot를 근간으로 2410으로 했습니다.
부팅후에... 아래와 같이 메시지가 나오구요.

U-Boot 1.1.2 (Aug 30 2006 - 07:01:25)
U-Boot code: 33F80000 -> 33F9BE2C  BSS: -> 33FA02A4
SDRAM Configuration:
Bank #0: 30000000 64 MB
Flash:  4 MB
NAND: <--- 여기서 멈춤니다.


실제로 U-boot 코드를 따라가 보니..
NanD_IdentChip 이 함수에서. Nand 로 Reset 커맨드를 내리는데..

/* Reset the chip */
if (NanD_Command(nand, NAND_CMD_RESET)) {

이 부분에서 실제로 include/configs/smdk2410.h 에서는 아래와 같이 해주었지요.

#define NAND_WAIT_READY(nand)                udelay(10); while(!(rNFSTAT & 0x01))

이 부분에서 계속 while 문을 돌고 있고 ready가 되지 않네요. ㅠ.ㅠ


[질문]
- 이와같이 계속 Nand가 Ready가 되지않고 Busy라고만 나오는데.. 이런현상 경험해보신분 계신가요?


[질문]
- 지금 h/w, s/w 전부 다시 살펴보는 과정이라서.. 거의 좌절모드 이네요.
s/w으로 수정 포인트는 아래와 같은데.. 혹 더 수정해야 할 부분이 있을까요?

1. include/configs/smdk2410.h 파일 수정부분

#define CONFIG_AESOP_YAFFS
#define CFG_MAX_NAND_DEVICE 1
#define SECTORSIZE 512
#define ADDR_COLUMN 1
#define ADDR_PAGE 3
#define ADDR_COLUMN_PAGE 4
#define NAND_ChipID_UNKNOWN 0x00
#define NAND_MAX_FLOORS 1
#define NAND_MAX_CHIPS 1
#define NAND_WAIT_READY(nand)                udelay(10); while(!(rNFSTAT & 0x01))
#define WRITE_NAND_COMMAND(d, adr)        rNFCMD = d
#define WRITE_NAND_ADDRESS(d, adr)        rNFADDR = d
#define WRITE_NAND(d, adr)                rNFDATA = d
#define READ_NAND(adr)                        rNFDATA

// kingseft
#define NAND_DISABLE_CE(nand)                rNFCONF |= 0x0800
#define NAND_ENABLE_CE(nand)                rNFCONF &= ~(0x0800)
#define NAND_CTL_CLRALE(nandptr)
#define NAND_CTL_SETALE(nandptr)
#define NAND_CTL_CLRCLE(nandptr)
#define NAND_CTL_SETCLE(nandptr)

2. common/cmd_nand 부분에서는 아래 부분만 수정
#ifdef CONFIG_S3C2410
#include <s3c2410.h>
#endif


3. lib_arm/board.c 파일에서는 아래만 수정
#if (CONFIG_COMMANDS & CFG_CMD_NAND)
        puts ("NAND:");
        nand_init();                
#endif


- U-boot 역시 이솝 U-boot를 2410용으로만 한것이기에.. 우선 Nand 수정 포인트를 위와같이만 했습니다. s/w 적으로는 더 봐야할 부분이 없을까요?


[질문]
- H/W 적으로는 첨부된 파일과 같이 Nand를 연결했습니다. 혹 회로적으로 잘못된 부분이 있을까요? (제가 H/W는 문외한입니다만... ㅠ.ㅠ)

- 두번째 첨부파일은 CPU의 NCON 핀을 설정한 상황입니다.


[이상한 현상]
- U-Boot 에서 위와 같이 while문으로 ready 를 체크하는 부분을 막고 무대뽀로 돌리면.. 부팅메시지에..

Nand : 64M 라고 나오구요.
Nand ID와 제조사 ID등이 출력됩니다.
부팅 커맨드에서 nand info 명령을 치면 잘 나오구요. 물론 이때에 read write 등은 전부 에러가 납니다. 또한 nand bad 라고 치면 모든 블럭이 bad라고 주소를 출력하네요... 이상해서 다른 Nand를 붙여서 해보아도 동일하구요.



** 질문 자체도 난감한 질문이라.. 어떤 부분들을 검토해봐라... 이런식의 답변이라도 부탁드립니다.

** 우리 이솝보드나 smdk2410 보드등에서 nand는 전부 잘 구동되었는데.. 자작보드 한번 만들어서 해보니.. 이런부분에서 실력이 판가름 나나 봅니다. (ㅠ.ㅠ)

이홍석

2006.08.30 17:50:56
*.43.210.229

이솝보드하고 틀린점은 R/nB가 4.7k로 풀업 된것 빼고는
같다고 보여지는데요..........흠....

잘 해결되길 바랍니다.......^^;

김영기

2006.08.31 10:52:27
*.147.94.101

위에 회로도를 보면 R/B 에 풀업저항이 연결이 안된거 같은데... 제가 잘못본건가??
아시겠지만 낸드플래시에서 R/B 에는 반드시 풀업저항을 연결해주어야 합니다.
확실하게 Ready / Busy 값을 가지기 위해서!!

이재훈

2006.08.31 16:03:27
*.241.147.30

두분 답변 감사합니다. ^^
r/b 쪽에 처음에는 회로와 같이 풀업을 달지 않아보기도 했구요. 이후에 다시 풀업을 달아 테스트도 해봤습니다. 하지만 결과는 동일하게 CPU의 NFSTATUS의 ready/busy bit가 계속 busy로 나오네요...
하여간 이것저것 좀더 살펴봐야겠습니다. 결과나오는대로 원인한번 정리해봐야겠네요
List of Articles
번호 제목 글쓴이 날짜sort 조회 수
6228 Flash Player의 제작 [1] 백종옥 2006-08-19 985
6227 s3c44b0x 의 Timer 5 설정...[완료] [5] 조준동 2006-08-20 1307
6226 volatile 의 의미는?[완료] [2] 조준동 2006-08-20 1132
6225 2440 or 2413에 CF 인터페이스 구현 정보 요청 [2] 백종옥 2006-08-22 1130
6224 UDA1341TS 기능중에 녹음기능 관련 질문이요 [2] 전병환 2006-08-22 1096
6223 [re] CF 규격자료와 인터페이스칩 자료 입니다 ... [1] 장석원 2006-08-23 984
6222 무선랜을 올렸는데요?? <== 완료 [1] 윤현승 2006-08-23 1013
6221 [질문] ezjtag-aesop-r4 에 관해서 [2] 이재훈 2006-08-24 1137
6220 이솝보드를 휴대해서 다니고 싶어요 [2] 최지훈 2006-08-25 1048
6219 yaffs file의 repack???? <== 완료 [1] 박현진 2006-08-26 922
6218 aESOP 가지고놀기 라는 PDF 자료중 yaffs 관련 문의 입니다.-&gt... [1] 공경준 2006-08-28 2685
6217 외부영역의 Address를 배열처럼 쓸려면 어떻게 지정해야 할까요?[완... [2] 조준동 2006-08-28 932
» [질문] Nand Flash Memory 인식에 관한 질문입니다. [3] 이재훈 2006-08-30 1488
6215 제 2410보드 동작 시험결과입니다. ^^ [1] 한지훈 2006-09-01 1191
6214 [질문] u-boot에서 2440 USB OHCI의 성능 <= 완료 [4] 김정호 2006-09-01 1535
6213 삼바 linking 문제 입니다.<==완료 [1] 윤현승 2006-09-02 971
6212 nand flash bad eraseblock 납니다....[미해결] [2] 오용석 2006-09-02 1282
6211 [질문] cannot execute "/etc/rc.d/rc.S" 에 관한 질문입니다. [3] 이재훈 2006-09-05 1164
6210 바이너리파일을 아스키파일로 변환하는걸 도와주세요 ... [8] 장석원 2006-09-09 1611
6209 [질문] kill 에 관해서.. 느닷없이 궁금해서요. [2] 이재훈 2006-09-12 1059

사용자 로그인