L3G4200D gai ngẫu nhiên


8

Tôi đã tìm kiếm diễn đàn này một chút về con quay hồi chuyển L3G4200D và chưa thấy vấn đề này được đề cập, nhưng tôi đã thấy những người khác nói về nó trên các diễn đàn khác. Tôi đang thấy một giá trị lớn kỳ lạ trong đầu ra của mình khi con quay hồi chuyển đứng yên. Thật không may, dường như không ai có thể trả lời tại sao lại như vậy, vì vậy tôi nghĩ rằng tôi sẽ hỏi xung quanh

Vì vậy, tôi đang thu thập dữ liệu từ con quay hồi chuyển bằng i2c ở tốc độ 400kHz (chế độ nhanh), thu thập dữ liệu con quay hồi chuyển bằng cách sử dụng đa đọc (sáu byte mỗi lần). Lấy mẫu ở tần số 100Hz (cũng đã thử 800Hz trên cùng), cũng đã thử với tính năng bật và tắt ở các giá trị khác nhau. Tôi không sử dụng mã pin ngắt, nhưng tôi đang sử dụng thuộc tính 'chặn cập nhật dữ liệu' trong GYRCTRLREG4, để dữ liệu không xuất ra cho đến khi cả LSB và MSB được đọc. Full 2000dps và không làm bất cứ điều gì với FIFO. Tôi có thể đăng các giá trị đăng ký chính xác của mình nếu nó giúp, nhưng con số hầu hết các bạn sẽ không có biểu dữ liệu để xử lý.

Hình ảnh dưới đây cho thấy vấn đề của tôi. Dữ liệu được xuất ra tốt, được tính toán chính xác (theo hiểu biết của tôi) và tiếng ồn nói chung là rất chấp nhận được. Nhưng sau đó tôi nhận thấy những 'cú đánh' khó chịu này xuất hiện ngẫu nhiên khi thiết bị đứng yên. Nếu tôi để yên trong vài giây, tôi sẽ nhận được một trong những mũi nhọn này, luôn bằng khoảng 250-255 (do đó ~ 18 khi được chuyển đổi, sử dụng '(đầu ra * 70) / 1000'). Các gai, như tôi nói, là ngẫu nhiên, có thể xuất hiện trong bất kỳ mặt phẳng nào (trong hình bên dưới, bạn có thể thấy gai đầu tiên trong mặt phẳng X, thứ hai trong Y), luôn ở cùng một giá trị và một, hai hoặc tất cả ba có thể xảy ra cùng một lúc. Giá trị lớn chỉ dành cho một mẫu duy nhất, sau đó trở lại bình thường.

lỗi blips

Tôi đã thấy trong một chủ đề khác ở đâu đó rằng tôi nên sử dụng chức năng chờ dữ liệu khối trong GYRCTRLREG4, như tôi đã đề cập trước đây, nhưng không thay đổi. Tôi đã thu hẹp vấn đề xuống khi MSB bằng 0 hoặc cao hơn, tức là số dương, khi kết hợp MSB và LSB, tôi nhận được những con số lớn này. Ví dụ: tôi lấy hai byte cần thiết cho mặt phẳng X, tôi nhận được -6 trong LSB và 0 trong MSB, kết hợp chúng mang lại cho tôi 250, sau đó chuyển đổi cho (250 * 70) / 1000 = 17,5 dps ( tức là quá lớn cho văn phòng phẩm / không chính xác). Trong cùng một mẫu, hai byte cho mặt phẳng Y là -3 LSB và -1 MSN, kết hợp chúng cho -3 và chuyển đổi cho -0,21 (nghĩa là mong đợi / chính xác).

Đã gặp vấn đề này trong nhiều ngày nay, tôi cũng thấy một chút các đột biến ngẫu nhiên này với từ kế của mình, vì vậy tôi nghĩ rằng tôi đang đọc thiết bị (thông qua i2c) không chính xác?

Bất kỳ đề xuất hoặc những điều để thử là thực sự hoan nghênh!


Liên kết đến biểu dữ liệu có thể hữu ích: Bảng dữ liệu L3G4200D
Tut

Bạn đã giải quyết vấn đề chưa ? Tôi bị mắc kẹt kể từ một ngày về một vấn đề tương tự bằng cách sử dụng một con quay hồi chuyển khác nhau. Tôi có một đột biến duy nhất mỗi giây cho đến nay không thể giải quyết được.
Giăng

Tôi cũng gặp vấn đề tương tự với L3g4200d. Bạn đã bao giờ tìm ra nó?
người bẫy

Câu trả lời:


1

Bởi vì bạn đang quan sát một vấn đề tương tự với từ kế của bạn, tôi đoán là bạn có vấn đề trên xe buýt I2C. Mặc dù nó có thể là một vấn đề về mã do hoạt động không liên tục trước tiên tôi sẽ kiểm tra xem xe buýt được kết nối như thế nào. Một vài điều cần kiểm tra / thử:

  • Nếu bạn không sử dụng điện trở kéo lên bên ngoài, hãy thử điện trở kéo lên 10K trên SDA và SCL. Sức kéo nội bộ trên hầu hết các bộ vi điều khiển sẽ không đủ mạnh.

  • Nếu có thể hãy giảm chiều dài của xe buýt càng nhiều càng tốt và cố gắng giữ cho nó tránh xa các tín hiệu tốc độ cao.

  • Nếu sử dụng bảng mạch bánh, hãy cố gắng giữ các kết nối càng trực tiếp càng tốt để tránh điện dung dư thừa.

  • Nếu bạn đang sử dụng bảng nguyên mẫu đã bao gồm các điện trở kéo lên, chúng có thể kết thúc song song và thực tế bạn có thể có giá trị điện trở kéo lên quá thấp.

  • Nếu bạn có thể sắp xếp quyền truy cập vào một phạm vi lý tưởng để đảm bảo đồng hồ và đường dữ liệu trông đẹp và vuông và không bị lệch quá nhiều.

Nếu các bước đó không hoạt động, Texas Cụ có báo cáo ứng dụng Giao thức Bus I2C Khắc phục sự cố chi tiết hơn về tính toán điện trở kéo lên và các sự cố bạn có thể gặp phải với điện dung.


Cám ơn phản hồi của bạn. Tôi đã thử nghiệm trên cả hai bảng mạch, với các dây ngắn và thay đổi giá trị điện trở, từ 10k đến 1,5k (tôi đã giải quyết trên 1,5k). Tôi cũng có một bảng trang điểm, với các thành phần gắn trên bề mặt và các bản nhạc rất ngắn. Tôi sẽ kiểm tra với một phạm vi sau, nhưng tôi sẽ ngạc nhiên nếu điện trở hoặc đường ray của tôi bị trục trặc. Tôi sẽ thử thu thập một số dữ liệu từ bất kỳ thiết bị điện tử nào để loại bỏ các sự cố EMI.
ritchie888

0

Điều có thể xảy ra là một mẫu mới đang được thực hiện giữa việc đọc LSB và MSB. Vì vậy, nếu MSB = 0 và LSB = -4, bạn sẽ nhận được 252, hoặc khoảng 1g. Nếu lần đọc tiếp theo là MSB = 1 và LSB = 2, bạn sẽ nhận được 258, điều này là hợp lý. Vấn đề là khi chỉ có 1 mẫu thì MSB đã cập nhật thành 1 và LSB vẫn là -4 bạn nhận được 508, khoảng 2g, có thể là đốm sáng này.

BDU trên CTRL_REG4 được cho là để ngăn chặn điều này. Có thể đọc rằng đăng ký tắt cảm biến và đảm bảo giữ khối được kích hoạt?


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.