Nguyên mẫu SDRAM so với tai ương sản xuất


11

Tôi có một thiết kế sử dụng LPC1788 cùng với mô-đun SDRAM từ ISSI ( IS42S32800D ). Đây là giao diện 32 bit.

Tôi đã chuyển thiết kế này ra và có một nguyên mẫu được sản xuất với một nhà sản xuất PCB có các nguyên mẫu 6 lớp. Nguyên mẫu PCB hoạt động tốt. Sau đó tôi nghĩ rằng tôi sẽ nhận được PCB được sản xuất theo lô khối lượng nhỏ (100) từ nhà cung cấp PCB thông thường của tôi. Tôi đã cung cấp cho họ thông tin chồng lên mà nguyên mẫu của tôi sử dụng để đảm bảo sẽ không có vấn đề gì.

Tuy nhiên! Tôi có vấn đề lớn với ban sản xuất. Lúc đầu, tôi không thể đưa ra bất kỳ phản hồi nào từ SDRAM, vì vậy với cùng một mã tôi đã sử dụng trong bảng nguyên mẫu của mình. Bảng trước đã hoạt động ở mức 120Mhz nên tôi chắc chắn có gì đó không ổn với bảng mới này. Sau đó tôi đã tìm thấy một bài đăng mà mọi người đề xuất sử dụng Chế độ lặp lại trên các dòng dữ liệu SDRAM (tôi chưa từng sử dụng điều này trước đây) và điều này đã đưa ra phản hồi từ SDRAM, tuy nhiên nó không ổn định. Tôi có thể ghi vào 16 địa chỉ hoặc hơn, nhưng sau đó đọc dữ liệu được trả về (tại mỗi địa chỉ) là dữ liệu tôi đã viết cuối cùng (có thể là do Chế độ lặp lại). Khi tôi tắt chế độ lặp lại, dữ liệu được trả về là 0xFFFFFFF. Tôi hiện đang cố gắng kết nối ở mức 48Mhz, cấu hình thấp nhất mà tôi có thời gian.

Tôi đang sử dụng cùng một điện trở kết thúc (trên các dòng Dữ liệu) của 22Ohms trên cả hai bảng, các dòng dữ liệu dài trung bình 3cm. Dòng đồng hồ dài 2,4cm. Dòng địa chỉ dài trung bình 3,8cm.

Đây có phải là quá đặc tả, tôi có nên trì hoãn đồng hồ lâu hơn nếu nó ngắn hơn đáng kể? Tôi thực sự bị mắc kẹt ở đây, vì tôi đã không thay đổi gì về thiết kế mà tôi đã hy vọng cho một hoạt động sản xuất liền mạch cho các bảng này.

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

Đây là cấu hình ngăn xếp PCB cho nguyên mẫu (hoạt động) ban đầu: nhập mô tả hình ảnh ở đây

Đây là cấu hình ngăn xếp PCB cho PCB sản xuất (không hoạt động) nhập mô tả hình ảnh ở đây

Đây là định tuyến cho SDRAM: Định tuyến SDRAM


3
Là điều khiển trở kháng giống nhau giữa proto và chạy sản xuất?
dext0rb

Tôi không chắc. Tôi không biết đủ về tính toàn vẹn tín hiệu để xác định đúng các tham số này cho các bảng nhà. Tôi cảm thấy rằng nếu tôi chỉ định các tham số không biết tôi đang làm gì thì tôi sẽ tạo ra vấn đề thay vì khắc phục sự cố.
James

Và bạn đã trả tiền cho họ để xác minh trở kháng (mà @dextorb đề nghị bạn kiểm soát)?
Brian Carlton

Đó không phải là chiều dài trung bình quan trọng. Đó là mức tối thiểu và tối đa trong nhóm.
Brian Carlton

1
Làm thế nào để tính toàn vẹn tín hiệu trên dấu vết đồng hồ nhìn vào các chân SDRAM?
Brian Carlton

Câu trả lời:


10

Đó là một chồng chất tệ hại. Lõi của bạn phải là 0,2 mm và sự cân bằng về độ dày của bạn phải nằm trong phần chuẩn bị giữa lớp 3 và 4 (Lớp 1 và Lớp 2).

Lý do cho điều này là, đối với bất kỳ tín hiệu nào trên dấu vết, cần phải có đường dẫn trở lại trên mặt phẳng ngay dưới nó. Dòng trở về trong mặt phẳng sẽ cố gắng giảm thiểu độ tự cảm (tức là vùng vòng lặp), có nghĩa là nó sẽ cố gắng theo dõi dưới dấu vết tín hiệu. Nếu dấu vết tín hiệu ở xa mặt phẳng, nó sẽ tìm đến các dấu vết khác để tìm đường trở về. Đây là điện từ bạn đang chiến đấu.

Hơn nữa, bằng cách có các lớp bên trong ở các khoảng cách khác nhau từ các mặt phẳng tham chiếu của chúng (hãy nhớ rằng, tất cả các đường ray cung cấp trông giống như căn cứ tại AC!) So với khoảng cách của lớp bên ngoài, bạn tạo ra một thay đổi trở kháng mỗi khi bạn trao đổi các lớp (mặc dù điều này có thể bị phản tác dụng thay đổi chiều rộng theo dõi, mặc dù tôi thấy nó chỉ đáng để xử lý sự cố một lần) và bạn tăng đáng kể khả năng nhiễu xuyên âm và nhiễu khác.

Một điều khác bạn cần kiểm tra là các vật liệu được sử dụng: có hơn 20 vật liệu khác nhau tự gọi là "FR-4". Những thứ tôi thường sử dụng được gọi là 370-HR. Nó hoạt động khá tốt với tín hiệu 100-500 MHz tốc độ cao.

Về dòng đồng hồ, IIRC trên thiết kế SDRAM cuối cùng của tôi, tôi đã thiết lập đồng hồ để cạnh của nó xảy ra lần cuối (dấu vết của nó dài nhất 1 cm), sau khi tất cả các dòng địa chỉ và dữ liệu ổn định. Vì vậy, vâng, giữ lại đồng hồ là đáng thử. Tôi không cần bất kỳ điều khiển trở kháng nào trên các dòng SDRAM.

Điện trở kết thúc của bạn nên được đặt càng gần trình điều khiển dòng càng tốt. Nếu chúng không nằm trong khoảng 0,5 cm, chúng có thể tự gây ra phản xạ, dẫn đến quá mức và đổ chuông. IMHO, chiều dài theo dõi 3 cm là rất ngắn để cần điện trở kết thúc (tôi sử dụng chúng bắt đầu khoảng 6-10 cm); bạn đã thử chỉ lấy chúng ra?

Một điều nữa cần kiểm tra là các mặt phẳng của bạn: Bạn có dấu vết cắt ngang qua mặt phẳng không? Đây là một điều không nên, bởi vì nó buộc dòng trở lại phải đi một quãng đường dài xung quanh vết cắt.

Cuối cùng, tỷ lệ cạnh là một vấn đề rất lớn trong các thiết kế này. Rất nhiều chip có thời gian tăng giảm ngắn không cần thiết và việc giảm tần số xung nhịp không ảnh hưởng đến điều này. Những cạnh nhanh là tuyệt vời để tạo ra sự phản chiếu. Đây là những gì điện trở terminator 22 ohm của bạn đang cố gắng khắc phục: chúng làm chậm các cạnh. Mặc dù, nếu bạn thực sự thúc đẩy nó, một công cụ như HyperLynx của Mentor Graphics có thể được sử dụng để tìm thiết kế kết thúc tối ưu.

Một số cuốn sách tôi có thể giới thiệu cho bạn bao gồm tất cả những điều này và nhiều hơn nữa, và chúng tôi thề với chúng tại nơi làm việc:

Những cuốn sách này bao gồm giảm EMI, thiết kế che chắn, xếp chồng PCB, kiểm soát trở kháng, tách nguồn cung cấp điện, và nhiều hơn nữa. Hơn nữa, ông Ott dạy các hội thảo về chủ đề này (đi kèm với một bản sao miễn phí của cuốn sách của ông).


Cuốn sách của Henry Ott là một cuốn kinh thánh cho tôi vào năm 1980. Tuy nhiên trước khi đọc nó, tôi đã có kỹ năng nhìn thấy rò rỉ RF trong một thiết kế cơ / điện, trước khi thử nghiệm EMC thậm chí bắt đầu. Khe cắm, và bộ tản nhiệt, và ăng ten điện môi và cáp bus I / O là ăng ten tốt nhất để xâm nhập và đi ra.
Tony Stewart Sunnyskyguy EE75

Thông tin tốt ở đây, theo mô phỏng Hyperlynx dựa trên dữ liệu mô phỏng được nhập vào của tôi, các điện trở 22 Ohm được yêu cầu vì nếu không thì dạng sóng trên datalines (được điều khiển tại thời điểm tăng 1ns) từ SDRAM bị nhiễu khủng khiếp và một số phản xạ vượt qua điện áp tham chiếu.
James

Ngoài ra, các khuyến nghị stackup là tốt. Có một sự khác biệt nhỏ trong stackup giữa nguyên mẫu và nhà sản xuất. Tôi đang thêm sơ đồ vào Câu hỏi để bạn xem. Ngoài ra - Tôi đã đọc Tín hiệu toàn vẹn được đơn giản hóa bởi Eric Bogatin. Thông tin tốt ở đây nhưng sẽ mất một thời gian để tiêu hóa và chìm trong đủ để bắt đầu một bố cục bảng mới với các khuyến nghị của mình.
James

Đối với những gì nó có giá trị, OP ban đầu có những gì trông giống như bức ảnh Altium. Altium có bộ công cụ toàn vẹn tín hiệu riêng có thể sử dụng các tệp IBIS. Nó cũng có thể kiểm tra nhiễu xuyên âm. Nhưng nó cần thông tin stackup chính xác để làm điều này.
ajs410

1
Vì vậy, tại thời điểm này, tôi quan tâm nhất đến các điện trở. Họ dường như ở giữa các dấu vết thay vì tại các trình điều khiển nơi họ thuộc về. Trong các ứng dụng này, tốt nhất là không sử dụng các gói điện trở, mà thay vào đó sử dụng các điện trở nhỏ riêng lẻ. Nếu bạn phải sử dụng gói điện trở, bạn nên dành thời gian để làm rất nhiều công việc tốt hơn trao đổi các điện trở để làm cho bố trí ít qua điên. Đó là tất cả những gì tôi có thể nói từ bố cục của bạn, không có phác thảo gói và làm cho một nửa các lớp khó nhìn thấy.
Mike DeSimone

4

Ở loại tần số này, tôi nghĩ rằng các vấn đề về độ dài theo dõi dường như không phải là vấn đề chính, chắc chắn là các vấn đề chậm trễ. Khi các vấn đề bắt đầu với PCB mới, điều đầu tiên cần làm là kiểm tra tất cả các dòng về tính liên tục (đối với biểu dữ liệu, không phải sơ đồ của bạn, trong trường hợp sơ đồ của bạn có lỗi) và phạm vi mọi chân để kiểm tra xem dạng sóng có ở ít hợp lý nhất - ngay cả khi phạm vi của bạn không kiểm tra chi tiết thời gian thì cũng khá rõ ràng nếu có bất kỳ chân mở hoặc ngắn nào.

Thực hiện loại công cụ này mà không có phạm vi thích hợp sẽ tiềm ẩn nhiều nguy cơ tiềm ẩn - làm thế nào để bạn biết bạn có bao nhiêu lợi nhuận? Ngay cả khi nó hoạt động, làm thế nào để bạn biết liệu bạn có đúng ở rìa hay không, và dễ bị thất bại tại hiện trường / sản xuất do dung sai, nhiệt độ hoặc Pha của Mặt trăng?


2

Thêm lần 2 Chúng tôi giả định thiết kế của bạn đã được kiểm tra lề và mã hoàn hảo trong các câu hỏi của bạn. (không) Tôi đề nghị bạn xác minh những điều sau đây;

  1. Định cấu hình IO để có tốc độ quay nhanh và vô hiệu hóa các bộ lọc đầu vào
  2. Kích hoạt chế độ đầu vào trên đồng hồ
  3. Đặt bit xoay (9?) Để tăng tốc độ xoay cho các chân giao diện SDRAM
  4. Cho phép chế độ lặp lại vì chúng là hai hướng và không được để nổi trên đầu vào cmos.
  5. Thay đổi điện áp cung cấp để xác định độ nhạy với lỗi.
  6. chế độ đặt lại mặc định cho pin bus dữ liệu là FUNC = 0X00, MODE = 0X02, HYSTERESIS = ENABLED, INVERT = DISABLED và SLEW = STANDARD
  7. Cuộc gọi của bạn tới PINSEL_ConfigPin () có giá trị chức năng mới, đặt lại MODE thành INACTIVE (không có điện trở kéo xuống / kéo lên) và tắt HYSTERESIS?
  8. Bạn có đang sử dụng một vòng lặp for / next hoặc mã rời rạc như;

    • LPC_IOCON-> P3_0 | = 1; // D0 @ P3.0
    • LPC_IOCON-> P3_1 | = 1; // D1 @ P3.1
    • LPC_IOCON-> P3_2 | = 1; // D2 @ P3.2, v.v.
  9. Bạn có khẳng định kích hoạt lại pin WE, mỗi khi cần không?
  10. Bạn có dùng không? * pPIN & = ~ (0x00000007); // Xóa các bit chức năng "

Tôi nhớ gỡ lỗi thiết kế CMOS đầu tiên của tôi từ một sinh viên sau đại học Vật lý cho một bản ghi di động địa chấn, bảng logic hẹn giờ có thể chuyển đổi. Không có phần sụn hay uC nhưng anh ta không bao giờ thực hiện phân tích dung sai trường hợp xấu nhất và phần cứng có điều kiện chạy đua khắp nơi khi hàng tá bảng được chế tạo và gỡ lỗi bởi chính tôi. Giáo sư địa chấn đã mang đến Trưởng phòng Vật lý để hỏi tại sao tôi không thể gỡ lỗi các bảng, sau đó tôi phải khuyên anh ta biến thể thành phần phơi bày nhiều lỗi thiết kế được gọi là điều kiện thời gian do điều kiện siêu bền và cạnh đồng hồ được sử dụng. Anh ấy vẫn không hiểu, sau đó tôi hỏi anh ấy cho tôi biết tôi đã mở bao nhiêu ngón tay trong khi tôi đang giơ tay trước khi nó chạm tới eo tôi từ thấp đến cao. Sau đó, ông nói, bạn không thể làm điều đó và mong đợi một câu trả lời chính xác. Tôi nói, chính xác. Đó là một điều kiện chủng tộc nguyên thủy. Chúng trở nên ít rõ ràng hơn với mức độ phức tạp hơn. U của Manitoba năm 1973.

Thêm 1: Bạn đã sử dụng sơ đồ chấm dứt xe buýt nào? xe buýt phương pháp (1) được ưu tiên, 1.25Vdc có sạch không?


  1. Đã trả tiền cho CNTT trên các bảng này? kiểm tra bảng trần là phải
  2. Bạn đã chỉ định trở kháng trên hướng dẫn bố trí gerber của bạn?
  3. Bạn đã chạy mô phỏng trên bố trí của bạn với dung sai?
  4. Hằng số điện môi trên các bảng và các lớp #of của pre-preg kiểm soát trở kháng của đường kẻ sọc và microstrip cùng với chiều rộng và khoảng cách dấu vết.

    Có rất nhiều máy tính Z trực tuyến miễn phí cho đường dây.

    Bạn có thể thử đo điện dung trên các rãnh lớn hoặc mặt phẳng mặt đất và so sánh cả hai bảng trần.

    Đồng thời nhìn vào các tín hiệu với phạm vi tốc độ cao và quan sát mẫu mắt dữ liệu quá mức và đồng hồ <>.

Phải có một lời giải thích đơn giản cho các lỗi, nhưng nó không dễ tìm. Nhưng một khi bạn tìm ra nguyên nhân gốc rễ ... bạn sẽ không phạm sai lầm đó nữa.

đã thêm: Một lỗi khác tôi thấy là sơ đồ chiều cao ngăn xếp của bạn không biểu thị độ dày lớp Cu và không đủ để lắp vào 6 lớp trừ khi sai hoặc độ dày Cu là 0,039 mm (KHÔNG;)


Chỉ là một nhận xét cho OP - Tôi thấy OP đang sử dụng Altium Designer và có một máy tính trở kháng được tích hợp trong phần mềm. Tôi đã không sử dụng nó nhiều nhưng tôi biết nó ở đâu đó!
dext0rb

2
Trong khi nối một dấu vết (nhấn W trong chế độ xem PCB), nhấn phím Tab và bạn sẽ thấy trở kháng ước tính.
ajs410

nói chung với độ phức tạp thấp Qty 100 PWB, tôi sẽ không trả tiền cho CNTT (thử nghiệm), nhưng chúng có dấu vết mù nên tôi sẽ ... xem xét ... và đo điện dung trên bảng trần V + <> GND
Tony Stewart Sunnyskyguy EE75

Tôi đã không trả tiền cho điều khiển trở kháng trên các bảng này. Các đường mô phỏng trong Hyperlynx (MentorGraphics) cho thấy khá nhiều dạng sóng hoàn hảo (hoặc nằm trong thông số kỹ thuật) dựa trên thiết kế định tuyến của tôi. Để mô hình hóa điều này, tôi đã tạo lại từng đường truyền và thông qua các mô hình IBIS. Tôi không có phạm vi băng thông đủ để điều tra đúng các tín hiệu thực tế = (
James

1
Xin chào @TonyStewart, cảm ơn sự hỗ trợ của bạn. 1) Bảng mẫu không yêu cầu quay nhanh. Kích hoạt mà không có thay đổi trong hiệu lực. 2) Không chắc điều này có nghĩa là gì - đồng hồ là đầu ra? 3) Độ trễ được kích hoạt. Vô hiệu hóa không có thay đổi trong hiệu lực. 4) Tăng xoay không được kích hoạt trên proto. Kích hoạt mà không có thay đổi trong hiệu lực. 5) Không được kiểm tra. 7) Chức năng Pin Config không làm thay đổi các bit khác. 8) Mã riêng cho các chân điều khiển, vòng lặp cho dữ liệu / địa chỉ 9) Khi nào tôi cần bật WE? Bộ điều khiển EMC nên làm điều này cho tôi? 10) Các bit KHÔNG được ghi chú trước khi được đặt. Tôi có một nguyên mẫu khác theo thứ tự, sẽ ở đây vào tuần tới.
James
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.