ATNEL tech-forum
https://forum.atnel.pl/

problem z komunikacją z czujnikiem koloru TCS34725
https://forum.atnel.pl/topic23139.html
Strona 1 z 1

Autor:  ahmed10 [ 18 maja 2020, o 20:25 ]
Tytuł:  problem z komunikacją z czujnikiem koloru TCS34725

Witam!
Walczę z problemem od ładnych paru godzin.
Nie mogę odczytać wartości ID czujnika. W ogóle jest problem z komunikacją.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


W taki sposób staram się odczytać do zmiennej temp wartość tego rejestru. Niestety ciągle jest 0.
Przed uruchomieniem komunikacji linia SCL ma 5V natomiast po uruchomieniu spada do 0V i tak już zostaje, ale sprawdzałem zwykłym miernikiem.
po debugowaniu kodu diodą doszedłem do wniosku że coś nie tak jest w linii
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Procesor atmega 8A (16Mhz) po tej linijce jest już zawieszony i nic nie da się zrobić.
I2C na 400kHz
Obrazek
Komunikacja wg bibliotek Pana Mirka.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Co robię nie tak ?

Autor:  fofex [ 18 maja 2020, o 23:24 ]
Tytuł:  Re: problem z komunikacją z czujnikiem koloru TCS34725

ahmed10 napisał(a):
#define TCS34725_ADDRESS (0x29)


Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


albo

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Autor:  ahmed10 [ 19 maja 2020, o 16:28 ]
Tytuł:  Re: problem z komunikacją z czujnikiem koloru TCS34725

Działa, dziękuję bardzo !:)

Autor:  ahmed10 [ 20 maja 2020, o 08:53 ]
Tytuł:  Re: problem z komunikacją z czujnikiem koloru TCS34725

Rozwiązany jeden problem, a pojawił się drugi.
Nie wiedzieć dlaczego mam problem z odczytem wartości poszczególnych kolorów.
Problem występuje tylko w przypadku odczytu wartości z rejestrów górnych tzn:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

W tym przypadku wyświetla mi się w konsoli non stop jedna i ta sama wartość np 168 albo 80
Natomiast jeśli dam tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

to wyniki są adekwatne i liniowe. To tak jakby ADC było tylko 8-mio bitowe.
Przeglądnąłem całą note katalogową i nie znalazłem satysfakcjonujących informacji.
Co dziwne przerabiam kod biblioteki .cpp od adafruit i w gruncie rzeczy nie zmieniałem nic istotnego.

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Wcześniej oczywiście użyta jest funkcja:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Wartość rejestru odczytywana w pętli co 300ms. Czas integracji ustawiony na 2,4ms

Autor:  ahmed10 [ 20 maja 2020, o 12:53 ]
Tytuł:  Re: problem z komunikacją z czujnikiem koloru TCS34725

I taka ciekawostka jeszcze... nie wiem totalnie co o tym sądzić bo mam dwa czujniki i reagują dokładnie tak samo a mianowicie po odczycie wszystkich 20 rejestrów z czujnika takie coś dostaję:
3
0
255
255
0
0
0
0
0
0
0
0
0
0
0
2
0
1
68
17


3 - wartość pierwszego rejestru z ustawionym 0 i 1 bitem czyli ok bo powinny być ustawione.
0 - mam wątpliwości czy aby na pewno to jest poprawna wartość w tym miejscu
255- wartość domyślna czyli ok
255- wartość domyślna czyli ok
Później te zera to ja nie wiem skąd się wzięły... :/
i na końcu jeszcze rozpoznaję liczbę
68 - to jest ID czujnika ale dlaczego znajduje się aż na przedostatnim miejscu ??

Całość odczytuję funkcją do odczytu do bufora Pana Mirka, tylko lekko zmodyfikowaną na potrzeby układu.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Również ciekawe jest to, że nie ma różnicy czy wysyłam bajt w taki sposób jak zakomentowany czy w taki sposób jak by sugerowała nota aplikacyjna do odczytu sekwencyjnego.
Połączenia sprawdzone 100x i są poprawne, filtracja napięcia również.
Ktoś ma jakieś pomysły ?

Autor:  ahmed10 [ 21 maja 2020, o 16:11 ]
Tytuł:  Re: problem z komunikacją z czujnikiem koloru TCS34725

Problem rozwiązany i w sumie nie do końca wiem w jaki sposób :D
Po pierwsze to zauważyłem że adresacja rejestrów nie idzie po kolei jak do tej pory myślałem natomiast dlaczego teraz odczytuję poprawne wartości z rejestrów koloru to ja nie wiem. układ był odłączony od prądu przez noc i może się namyślał ? :D kto wie...
Temat do zamknięcia.

Strona 1 z 1 Strefa czasowa: UTC + 1
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/