7710 보드의 하드웨어 테스트를 하기위한 테스트 프로그램에 대한 설명을 정리했다. 기존의 5517 + 7020 에서 H/W 테스트 프로그램에서 몇가지 수정된 부분을 위주로 설명하겠다.
수정된 부분을 정리하자면, 다음과 같다.

  1. 7020 TEST, DDR TEST, 3125 TUNNER TEST, SSMT2111 QAM TUNNER TEST 삭제
  2. LG VSB TUNNER TEST 업데이트

7020 TEST, DDR TEST, 3125 TUNNER TEST, SSMT2111 QAM TUNNER TEST 삭제

첫 번째 부분은 굳이 설명하지 않아도 알 것이다.
7710 의 경우 DDR 이 메인 메모리로 사용되기 때문에 부팅 후에 테스트하는 것은 불가능 하다. 부팅하기 전에 .cfg 파일에서 테스트하는 방법 밖에 없다.
다음과 같이 추가한다.

##############################################
## procedure called to run from DCU         ##
##############################################
proc board_runtime_init {
 
        ## start initialising the board
        reset
        board_init
 
        ## Make Sure we're using the correct tools!!
        if  ((st20toolsetversion -q) >= 0x02000501){
 
        write
 
        ## Display This Files Version Number
        write ----------------------------------------------------
        write MB391/STi7710 BOARD CONFIGURATION VERSION [ (major_version). (minor_version)]
        write
 
        ST20C1MemoryInit    ## clear C1 channel memory 0x80000000 to 0x80000040
        mb391_setup
 
        ## Setup Complete, but display some basic version info
        ## 7710 Device ID, and Cut
        write 
        temp = peek (STI7710_AF_DEVICE_ID) -q
        write "STi7710 DeviceId        =" -d ((temp)>>12 & 0x000003ff)
        write "STi7710 Cut             =" -d ((temp)>>28)
 
        temp = peek (STI7710_AF_P_ID) -q
        write "STi7710 Metal Fix       =" -d ((temp) & 0x0000000f)
 
        ## EPLD FW version (MajorVer.MinorVer)
        temp = peek (0x41000000) -q
        temp &= 0x000000ff
        write "MB391 EPLD Firmware Ver ="-d (temp / 16) "." -d (temp % 16)
 
        write 
        write Setup Complete
        write ----------------------------------------------------
        write
 
############# 추가 시작!! #####################
write DDR-SDRAM TEST
 
w_value = 0
r_value = 0
ok_value = 0
 
while(w_value < 0x00001000 ){
 
poke (0xC0000000 + (w_value)) 1 -d
r_value = peek (0xC0000000 + (w_value)) -d -q
 
 
if(1 == r_value){
}else{
ok_value = 1
}
 
if(w_value == 0x00000100){write check 8%}
if(w_value == 0x00000200){write check 16%}
if(w_value == 0x00000300){write check 24%}
if(w_value == 0x00000400){write check 32%}
if(w_value == 0x00000500){write check 40%}
if(w_value == 0x00000600){write check 48%}
if(w_value == 0x00000700){write check 56%}
if(w_value == 0x00000900){write check 64%}
if(w_value == 0x00000a00){write check 72%}
if(w_value == 0x00000b00){write check 80%}
if(w_value == 0x00000c00){write check 88%}
if(w_value == 0x00000d00){write chcek 96%}
 
w_value++;
} 
 
if(ok_value == 0){
write SDRAM TEST OK!!
}else{
write SDRAM TEST ERROR!!
}
 
############## 추가 끝!!! ##########################
 
    } else {
        write ********************************************
        write Toolset Required is R2.0.5 [Patch1] Or Later
        write ********************************************
        quit 1
    }
}
 
proc board_runtime_init_rom {
  write resetting ...
  reset
  write call memory placements ...
  board_init_hex
  write call C1 memory init...
  ST20C1MemoryInit
  write end of board_runtime_init_rom waiting prepokeloopcallback...
}
 
##############################################
## standard runtime call for boards group   ##
##############################################

LG VSB TUNNER TEST 업데이트

두 번째 부분은 기존의 튜너 테스트의 문제점을 수정했다.
기존의 경우 특정 주소에 값을 R/W 해서 정상 여부를 판단했지만, 테스트 과정에서 정확하지 않음을 발견했다. 그래서 튜너 테스트를 하기 전에 RESET 하는 루틴과 오실로 스코프를 이용해서 눈으로 직접 확인하는 방법을 사용했다.

	case 8:
			VSB_Tuner_Reset();    // TUNNER RESET
			i2cTunerInit();       // TUNNER INIT & R/W TEST
			task_delay(15600);   
			OnRun(579000000, 4);  // TUNNING 
			break;

7710 으로 넘어오면서 'VSB_RESET' 핀이 바뀌었기 때문에, VSB_Tuner_Reset() 함수를 수정해야 한다. 또한 튜너 테스트시 유선 케이블(MBC, KBS, SBS) 를 꼽고 테스트해야 한다. OnRun(579000000, 4) 가 VSB 스트림을 튜닝하는 역할을 한다.
튜너가 제대로 동작한다면, 'VSBIN_DATA' 핀에서 신호가 스코프에 찍힐 것이다.

마치며

여기서 언급하지 않은 사항들은 기존의 DACS5000 기반의 H/W 테스트 프로그램과 동일하다. 테스트 프로그램 설명 를 참고하기 바란다.

  • computer/digitalarena/7710_h_w_테스트_프로그램.txt
  • Last modified: 3 years ago
  • by likewind