logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[Atmega8][C] czujnik ciśnienia MPL115A2

kajfi 10 Gru 2011 19:02 4190 15
  • #1 10242888
    kajfi
    Poziom 10  
    Witam,
    mam zamiar sprawdzić działanie czujnika ciśnienia firmy FREESCALE MPL115A2 na magistrali I2C.
    Z racji tego, ze jestem mocno początkujący, chciałbym zweryfikować mój schemat. Czujnik jest w obudowie LGA8, nie mogłem znaleźć odpowiedniej bilbioteki do Eagle więc element stworzyłem sam. Korzystam z zestawu uruchomieniowego, wiec chciałem stworzyć płytke która ułatwi mi podłaczenie czujnika za pomoca kabli.

    W załączniku załączyłem pliki .sch i .brd. Proszę o weryfikacje, wtedy zabiore się za wytrawianie i lutowanie a potem implementacje :)

    PS.
    Proszę sie nie przerazić estetyką układu, bo tak jak mowiłem jestem mocno początkujący :)

    pozdrawiam

    ps. poprawilem załącznik bo dałem nieaktualna wersje
  • #5 10248168
    kajfi
    Poziom 10  
    moglby ktos zerknac? :)
  • #7 10249182
    kajfi
    Poziom 10  
    ahh racja, elementy R maja wartosc 4,7k a C 1uF :)
  • #9 10251350
    Piotrek_P
    Poziom 18  
    Patrzę na te czujniki ponad pół roku i podchodzę do nich "jak pies do jeża" hehe :wink: Z tym że moje są na SPI. Oprogramowanie jakoś może ogarnę, ale kto mi to maleństwo bez nóżek polutuje to nie wiem :wink: . Też ciekawy jestem rezultatów :D u kolegi.

    Pozdrawiam
    Piotrek
  • #10 10284624
    kajfi
    Poziom 10  
    malenstwo przylutowane, pomogl mi w tym serdeczny kolega za co mu dziekuje bo sam bym sobie z tym nie poradzil ;) niestety nadal nie moge uruchomic czujnika, posiłkowałem sie artykułem zamieszonym w EP 8/2011 niestety bez rezulatatu (wgrywająć pliki zamieszczone na plycie CD niestety tez nie mogę nawiązać komunikacji z czujnikiem)

    Oto mój program:

    obsługa TWI
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    program do obsługi czujnika, lekko go zmienilem ale wzorowałem sie na artykule z EP 8/2011
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    main
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Prawdopodobnie coś jest nie tak z obsługa magistrali TWI, bo na LCD gdy wgram program wyswietla mi tylko "Pomiar cisnienia..." i nic wiecej sie nie dzieje. Probowałem oczywiście wgrywać program na którym sie wzorowałem w nie zmienionej formie niestety jak sie okazuje wykonywanie programu dochodzi do momentu wyswietlania "Coeffs. error!".
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Może problem jest w płytce i w ogółe nie ma komunikacji z czujnkiem? Jak to sprawdzić?
    Bede wdzieczny za wszelkie sugestie i wytkniecie bledow ;)
    pozdrawiam



    EDIT:
    Sa postepy, postanowiłem posłuzyć sprawdzona bilbioteka TWI ze strony http://jump.to/fleury i dalo to juz jakies efekty. Tak jak myslalem porabalem komunikacje I2C mieszajac w funkjach niemilosiernie :)
    Poprawiony kod:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Teraz tylko musze dojsc do tego czego na wyświetlaczu pojawia mi sie znak zapytania zamiast wartości ciśnienia...
  • #11 10287527
    kajfi
    Poziom 10  
    Niestety wciąż jest coś nie tak, nawet po odlaczeniu ktorejs z lini na wyswietlaczu dalej otrzymuje jakas kosmiczna wartosc, a przeciez program powinien przestac dzialac bo nie ma nawet skad pobierac danych. Jakieś pomysły co zmienic?
  • #12 10389459
    popiel_kam
    Poziom 11  
    Witam, Problem jest dalej aktualny ? Ja uruchomiłem komunikacje z tym czujnikiem lecz odczytuje strasznie nie stabilne pomiary (raz na jakiś czas wskakuje pomiar różniący się o 400 hPa od prawidłowego) może ktoś spotkał się z takim problemem?
  • #13 10558082
    encore
    Poziom 19  
    Po co wy się tym czujnikiem zajmujecie. polecam spojrzeć w dokumentację jaką ma dokładność pomiaru. Od razu powiem że bardzo niską. Moim zdaniem szkoda czasu marnować na ten czujnik.
  • #14 10558397
    popiel_kam
    Poziom 11  
    Encore jaki czujnik wiec polecasz? oczywiście pytam o taki który jest łatwo dostępny w naszym kraju
  • #16 11017881
    ky3orr
    Poziom 11  
    Czołem!

    trochę odgrzewam kotleta, jednak walcze teraz z tym samym czujnikiem w wersji SPI i mam problemy z ogarnieciem konwersji danych.

    Zgodnie z notą AN3785 Freescale pobieram i usadawiam współczynniki w zmiennych int16_t (justowanie do lewej).
    Staram się ogarnąć umysłem kolejne kroki przeliczeniowe i mam wrażenie, że w 1 kroku jest błąd.

    Mianowicie współczynnik C11 jest typu S(11,10)+11ZeroPad co jest = S(11,21), a w efekcie S(16,26) nie zaś S(16,27)!.
    Powoduje to, że C11x1 jest S(26,26), nie zaś S(26,27).
    Błąd propaguje się na krok 2, gdzie przesunięcie bitowe w lewo dla lt1 powinno wynosić 13 (nie 14), aby część ułamkową dociągnąć do 26 (tak jak C11x1).
    Dalej A11 należy przesunąć w prawo o 13 (nie o 14), aby dostać S(16,13) z S(29,26) (nie S(30,26)!

    Czy kombinuję dobrze?

    Dodatkowo nie potrrafię za Chiny zrozumieć tłumaczenia kroku 6, gdzie nie czaję dla czego coś przesówa się o 31 bitów, a zakłada się, że wartości są 32 bitowe czy coś...

    czy możecie mi to deczko objaśnić?

    pozdrawiam i dzięki za pomoc.
REKLAMA