SDRAM 프로토 타입 및 생산 비애


11

ISSI ( IS42S32800D ) 의 SDRAM 모듈과 함께 LPC1788을 사용하는 디자인이 있습니다 . 이것은 32 비트 인터페이스입니다.

이 디자인을 라우팅했고 6 개의 레이어 프로토 타입을 수행하는 PCB 제조업체로 만든 프로토 타입을 가지고있었습니다. 프로토 타입 PCB가 제대로 작동합니다. 그런 다음 일반적인 PCB 공급 업체로부터 PCB를 소량 배치 (100)로 제조 할 것이라고 생각했습니다. 나는 그들에게 내 프로토 타입이 아무런 문제가 없도록 보장하기 위해 사용한 스택 업 정보를 주었다.

하나! 생산 보드에 큰 문제가 있습니다. 처음에는 프로토 타입 보드에서 사용한 것과 동일한 코드를 사용하여 SDRAM으로부터 응답을받을 수 없었습니다. 이전 보드는 120Mhz에서 작동했기 때문에이 새로운 보드에 문제가 있다고 확신했습니다. 그런 다음 사람들이 SDRAM 데이터 라인에서 반복기 모드 사용을 제안한 게시물을 찾았으며 (이전에 사용하지 않았 음) SDRAM에서 응답을 얻었지만 안정적이지 않습니다. 16 개 정도의 주소에 쓸 수는 있지만 후속 읽기와 함께 (모든 주소에서) 반환 된 데이터는 마지막으로 쓴 데이터입니다 (아마도 리피터 모드로 인해). 리피터 모드를 비활성화하면 반환되는 데이터는 0xFFFFFFF입니다. 지금은 타이밍이 가장 낮은 48Mhz로 연결하려고합니다.

두 보드에서 22Ohms의 동일한 종단 저항 (데이터 라인)을 사용하고 있으며 데이터 라인의 평균 길이는 3cm입니다. 시계 줄의 길이는 2.4cm입니다. 주소는 평균 3.8cm입니다.

이 사양이 너무 맞지 않습니까? 클록이 실질적으로 더 짧으면 더 오래 지연해야합니까? 나는이 보드에 대한 완벽한 제조 실행을 희망했던 디자인에 대해 아무것도 바꾸지 않았기 때문에 정말로 여기 붙어 있습니다.

Maximum Data Line Length: 59mm (Although this includes the branch to the NAND Flash)
Minimum Data Line Length (Ctrl to Res): 18mm
Maximum Address Line Length: 44mm
Minimum Address Line Length: 24mm
CLK: 24.5mm
CKE: 25mm
CAS: 28mm
RAS: 28.7mm

다음은 원본 (작동) 프로토 타입에 대한 PCB 스택 구성입니다. 여기에 이미지 설명을 입력하십시오

다음은 프로덕션 (비 작동) PCB의 PCB 스택 구성입니다. 여기에 이미지 설명을 입력하십시오

SDRAM의 라우팅은 다음과 같습니다. SDRAM 라우팅


3
프로토 타입과 생산 실행간에 임피던스 제어가 동일 했습니까?
dext0rb

확실하지 않습니다. 보드 하우스에 이러한 파라미터를 올바르게 정의하기위한 신호 무결성에 대해 충분히 알지 못합니다. 내가하고있는 일을 모르는 매개 변수를 지정하면 문제를 해결하는 대신 문제를 해결할 것이라고 생각했습니다.
James

그리고 임피던스를 검증하기 위해 비용을 지불 했습니까 (@dextorb가 제어하도록 제안 했습니까)?
Brian Carlton

중요한 평균 길이가 아닙니다. 그룹 내에서 최소 및 최대입니다.
브라이언 칼튼

1
클록 트레이스의 신호 무결성은 SDRAM 핀을 어떻게 확인합니까?
Brian Carlton

답변:


10

그것은 스택 업입니다. 코어는 0.2mm이고 두께의 균형은 레이어 3과 레이어 4 (내부 1과 내부 2) 사이의 프리프 레그에 있어야합니다.

그 이유는 트레이스의 모든 신호에 대해 바로 아래 평면에 리턴 전류 경로가 있어야하기 때문입니다. 평면의 리턴 전류는 인덕턴스 (예 : 루프 영역)를 최소화하려고 시도합니다. 즉, 신호 추적을 따르려고합니다. 신호 트레이스가 평면에서 멀리 떨어져 있으면 리턴 경로를 찾기 위해 다른 트레이스를 찾습니다. 이것은 당신이 싸우고있는 전자기입니다.

또한 외부 레이어 거리와 비교하여 참조 평면과 다른 거리의 내부 레이어 (모든 공급 레일이 AC에서 접지 된 것처럼 보입니다!)를 가짐으로써 레이어를 교체 할 때마다 임피던스 변경이 발생합니다. 추적 너비가 변경되었지만 문제가 한 번만 발생하지만) 누화 및 기타 간섭의 가능성이 크게 증가합니다.

확인해야 할 또 다른 사항은 사용 된 재료입니다. 예를 들어 "FR-4"라고하는 20 가지가 넘는 재료가 있습니다. 내가 일반적으로 사용하는 것을 370-HR이라고합니다. 고속 100-500 MHz 신호와 잘 작동합니다.

클럭 라인과 관련하여, 마지막 SDRAM 디자인의 IIRC는 모든 주소와 데이터 라인이 안정화 된 후 에지가 마지막으로 발생하도록 추적을 설정했습니다. 따라서 시계를 지연시키는 것은 시도해 볼 가치가 있습니다. SDRAM 라인에서 임피던스 제어가 필요하지 않았습니다.

종단 저항은 가능한 한 라인 드라이버에 가깝게 배치해야합니다. 약 0.5cm 내에 있지 않으면 스스로 반사되어 오버 슈트 및 링잉 현상이 발생할 수 있습니다. IMHO, 3cm 트레이스 길이는 종단 저항이 필요하기에 너무 짧습니다 (약 6-10cm에서 시작합니다). 그냥 꺼내려고 했어?

확인해야 할 또 다른 사항은 비행기입니다. 평면 컷을 교차하는 신호 트레이스가 있습니까? 이것은 리턴 전류가 컷 주변에서 긴 경로를 취하도록 강제하기 때문에 엄청나게 큰 일이 아닙니다.

마지막으로, 에지 속도는 이러한 디자인에서 큰 문제입니다. 많은 칩은 불필요하게 상승 및 하강 시간이 불필요하며 클럭 주파수를 줄이면 아무런 영향미치지 않습니다 . 이 빠른 가장자리는 반사를 만드는 데 좋습니다. 이것이 22 옴 터미네이터 저항기가 고치려고하는 것입니다. 에지가 느려집니다. 그러나 실제로 추진하고 있다면 Mentor Graphics의 HyperLynx와 같은 도구를 사용하여 최적의 종료 설계를 찾을 수 있습니다.

이 모든 것들과 그 이상을 다루는 책을 추천 할 수 있으며, 직장에서 맹세합니다.

이 책은 EMI 감소, 차폐 설계, PCB 스택 업, 임피던스 제어, 전원 디커플링 등을 다루고 있습니다. 또한, Ott 는이 주제에 관한 세미나를 진행하고 있습니다 (자기 책 무료 사본 제공).


Henry Ott의 책은 1980 년에 저에게 성서입니다. 그러나이 책을 읽기 전에 EMC 테스트가 시작되기 전에 기계 / 전기 설계에서 RF 누출을 확인하는 데 이미 능숙했습니다. 슬롯, 라디에이터, 유전체 안테나 및 I / O 버스 케이블은 수신 및 송신에 가장 적합한 안테나였습니다.
Tony Stewart Sunnyskyguy EE75

여기에 좋은 정보가 있습니다. 입력 한 시뮬레이션 데이터를 기반으로 한 Hyperlynx 시뮬레이션에 따르면 SDRAM의 데이터 라인 (1ns 상승 시간으로 구동)의 파형이 심하게 왜곡되고 일부 반사가 기준 전압을 가로 지르기 때문에 22 Ohm 저항이 필요합니다.
James

또한 스택 업 권장 사항이 좋습니다. 프로토 타입과 제조업체의 스택 업에는 약간의 차이가 있습니다. 질문에 다이어그램을 추가하고 있습니다. 또한-Eric Bogatin이 단순화 한 Signal Integrity를 ​​읽었습니다. 여기에 좋은 정보가 있지만 그의 추천으로 새로운 보드 레이아웃을 시작하기에 충분한 시간이 소요될 것입니다.
James

그 가치에 대해 OP는 원래 Altium 사진처럼 보였습니다. Altium에는 IBIS 파일을 사용할 수있는 자체 신호 무결성 도구 세트가 있습니다. 누화를 검사 할 수도 있습니다. 그러나이를 위해서는 정확한 스택 업 정보가 필요합니다.
ajs410

1
이 시점에서 저항에 대해 가장 우려하고 있습니다. 그들은 그들이 속한 드라이버 대신 흔적의 중간에있는 것처럼 보입니다. 이러한 애플리케이션에서는 저항 팩을 사용 하지 않고 작은 개별 저항을 사용 하는 것이 가장 좋습니다 . 저항 팩을 사용해야 하는 경우 레이아웃을 덜 미치도록 저항을 교체 하는 데 훨씬 더 나은 시간을 할애해야합니다 . 그것은 당신의 레이아웃에서 알 수있는 모든 것입니다. 패키지 개요가 없으며 레이어의 절반을보기가 어렵습니다.
Mike DeSimone

4

이런 종류의 주파수에서 트랙 길이 유형 문제는 확실히 지연 문제의 주요 문제는 아닐 것 같습니다. 문제가 새로운 PCB로 시작함에 따라 가장 먼저해야 할 일은 모든 라인의 연속성을 테스트하는 것 (도표에 오류가있는 경우 회로도가 아닌 데이터 시트와 비교하여)이며 모든 핀의 범위를 지정하여 파형이 타당성이 가장 낮음-스코프가 타이밍 세부 사항을 확인하지 않더라도 핀이 열려 있거나 짧아 져 있는지는 분명합니다.

적절한 범위없이 이런 종류의 일을하는 것은 잠재적 인 위험으로 가득 차 있습니다. 얼마나 많은 마진이 있는지 어떻게 알 수 있습니까? 그것이 작동하더라도, 당신은 가장자리에 있고, 공차, 온도 또는 달의 위상으로 인해 현장 / 제품 고장에 취약한 지 어떻게 알 수 있습니까?


2

두 번째 추가 디자인은 마진 테스트를 거쳤으며 코드는 완벽하게 작성되었습니다. (아니요) 다음 사항을 확인하시기 바랍니다.

  1. 빠른 회전을 위해 IO 구성 및 입력 필터 비활성화
  2. 시계에서 입력 모드를 활성화합니다
  3. SDRAM 인터페이스 핀의 슬 루율을 높이려면 슬루 비트 (9?)를 설정하십시오.
  4. 양방향이며 리피터 모드를 활성화하면 cmos 입력에 떠 다니지 않아야합니다.
  5. 오류에 대한 민감도를 결정하기 위해 공급 전압을 변경하십시오.
  6. 데이터 버스 핀의 기본 리셋 모드는 FUNC = 0X00, MODE = 0X02, HYSTERESIS = ENABLED, INVERT = DISABLED 및 SLEW = STANDARD입니다.
  7. 새 함수 값으로 PINSEL_ConfigPin ()을 호출하고 MODE를 INACTIVE (풀다운 / 풀업 저항 없음)로 재설정하고 HYSTERESIS를 끄시겠습니까?
  8. for / next 루프 나 이산 코드를 사용하고 있습니까?

    • LPC_IOCON-> P3_0 | = 1; // D0 @ P3.0
    • LPC_IOCON-> P3_1 | = 1; // D1 @ P3.1
    • LPC_IOCON-> P3_2 | = 1; // D2 @ P3.2 등
  9. 필요할 때마다 WE 핀을 다시 활성화해야합니까?
  10. 당신은 사용합니까? * pPIN & = ~ (0x00000007); // 클리어 기능 비트 "

물리학 대학원생의 내 첫 번째 CMOS 디자인을 지진 휴대용 기록, 전환 가능한 타이머 로직 보드로 디버깅하는 것을 기억합니다. 펌웨어 나 uC는 없었지만 최악의 공차 분석을 한 적이 없었으며, 12 개 이상의 보드를 직접 제작하고 디버깅 할 때 하드웨어에 경쟁 조건이있었습니다. 지진 교수는 물리 부서장을 가져 와서 왜 보드를 디버깅 할 수 없는지 물었습니다. 그런 다음 메타 스타트 조건과 사용 된 클럭 에지로 인해 타이밍 레이스 조건이라는 많은 설계 결함에 노출 된 구성 요소 변형에 대해 조언해야했습니다. 그는 여전히 이해하지 못했고, 허리에서 허리까지 도달하기 전에 손을 올리는 동안 손가락이 몇 개나 펴 졌는지 말해주었습니다. 그리고 그는 말했다, 당신은 그렇게 할 수 없으며 정답을 기대합니다. 나는 정확하게 말했다. 이것이 원시 경쟁 조건입니다. 더 복잡한 수준에서는 명확하지 않습니다. 매니토바 1973.

첫 번째 추가 : 어떤 버스 종료 구성표를 사용 했습니까? 버스 방법 (1)이 선호됩니다. 1.25Vdc가 깨끗합니까?


  1. 이 보드에서 ICT 비용을 지불 했습니까? 베어 보드 테스트는 필수입니다
  2. 거버 레이아웃 지침에 임피던스를 지정 했습니까?
  3. 공차로 레이아웃에서 시뮬레이션을 실행 했습니까?
  4. 보드 및 프리프 레그 층의 유전 상수는 트레이스 폭 및 간격과 함께 스트립 라인 및 마이크로 스트립의 임피던스를 제어합니다.

    stripline를위한 많은 무료 온라인 Z 계산기가 있습니다.

    큰 트랙이나 접지면에서 커패시턴스를 측정하고 두 베어 보드를 비교할 수 있습니다.

    또한 고속 스코프의 신호를보고 오버 슈트 및 클럭 <> 데이터 아이 패턴을 관찰하십시오.

오류에 대한 간단한 설명이 있어야하지만 찾기 쉽지 않습니다. 근본 원인을 찾으면 다시는 실수하지 않습니다.

추가 : 내가 찾은 또 다른 실수는 스택 높이 다이어그램이 Cu 층 두께를 나타내지 않으며 잘못되었거나 Cu 두께가 0.039 mm (NOT;)가 아닌 한 6 층에 맞지 않는 것입니다.


OP에 대한 의견-OP가 Altium Designer를 사용하고 있으며 소프트웨어에 임피던스 계산기가 내장되어 있습니다. 많이 사용하지는 않았지만 어딘가에 있습니다.
dext0rb

2
트레이스를 배선하는 동안 (PCB보기에서 W를 누름) Tab 키를 누르면 추정 된 임피던스가 표시됩니다.
ajs410

일반적으로 낮은 복잡성 Qty 100 PWB의 경우 ICT (테스트)에 대한 비용을 지불하지 않겠지 만, 이는 맹목적인 트랙이 있으므로 고려해야 할 사항 ... 베어 보드에서 정전 용량을 측정하고 V + <> GND
Tony Stewart Sunnyskyguy EE75

이 보드의 임피던스 제어 비용은 지불하지 않았습니다. Hyperlynx (MentorGraphics)의 시뮬레이션 된 선은 라우팅 된 설계에 따라 거의 완벽한 (또는 사양 내에있는) 파형을 나타 냈습니다. 이를 모델링하기 위해 각 전송 라인과 IBIS 모델을 통해 다시 작성했습니다. 실제 신호를 제대로 조사하기에 충분한 대역폭의 범위가 없습니다 = (
James

1
안녕하세요 @TonyStewart, 지원해 주셔서 감사합니다. 1) 프로토 타입 보드는 빠른 회전을 요구하지 않았다. 변경 사항없이 활성화되었습니다. 2) 이것이 무엇을 의미하는지 확실하지 않습니다-시계가 출력입니까? 3) 히스테리시스가 활성화되어 있습니다. 변경 사항없이 비활성화되었습니다. 4) 프로토 타입에서 증가 된 회전이 활성화되지 않았습니다. 변경 사항없이 활성화되었습니다. 5) 테스트되지 않았습니다. 7) Pin Config 기능은 다른 비트를 변경하지 않습니다. 8) 제어 핀, 데이터 / 주소 용 루프 용 이산 코드 9) WE를 언제 활성화해야합니까? EMC 컨트롤러가 나를 위해해야합니까? 10) 비트는 설정되기 전에 유의해야합니다. 다음 주에 여기에 또 다른 프로토 타입이 있습니다.
James
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.