Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 29 gru 2024, o 21:00


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 13 ] 
Autor Wiadomość
PostNapisane: 6 sty 2012, o 21:50 
Offline
Nowy

Dołączył(a): 06 sty 2012
Posty: 5
Pomógł: 0

Witam wszystkich!

Próbuje się skomunikować z przetwornikiem ADS1110, ale mimo rożnych kombinacji nie daje rady. Mikrokontroler to atmega32 z zewnętrznym taktowaniem 16MHz. Ukłąd podłączony tak jak nocie katalogowej. Zastosowałem na początku bibliotekę: http://radzio.dxp.pl/twi/, i kod z: http://www.elektroda.pl/rtvforum/topic1 ... ml#9009345, program tak jakby się zawieszał w linijce gdzie szczytuje się dane: High = twiread(ACK); jeśli nie ma tej linijki i sczytywania NACK program przechodzi. Zastosowałem następnie podobną bibliotekę Pana Mirosława i ten sam problem, dorzuciłem również funkcję: i2cSetBitrate(uint16_t bitrateKHz) ustawiając na 100kH, ale nic to nie dało. Oto kod:

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 sty 2012, o 23:10 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8589
Pomógł: 337

Umieszczaj źródła w znacznikach [syntax] nie [Code] bo analiza czegoś takiego to katastrofa
2 chyba coś słabo czytałeś notę układu -- gdzie masz konfigurację str 11. ??
jesteś pewny swoich adresów R/W ?? -- str 2.

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 sty 2012, o 23:45 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27322
Lokalizacja: Szczecin
Pomógł: 1041

Jak można w ogóle rozpocząć "ręcznie w tym przypadku" procedurę odczytu, START, write - a potem dopiero ustawiać prędkość magistrali I2C ? (sorki ale szok).

Po drugie musi kolega jednak dokładnie przeczytać rozdział o tym jak dokonuje się odczytu przez I2C na przykładach np z książki ale z pełnym zrozumieniem jak to działa od podstaw - bo widzę, że kolega po prostu - zobaczył jakieś tam biblioteki albo w necie albo w książce i na oślep próbuje coś tam zrobić - nie do końca wiedząc o co chodzi niestety :(

Po trzecie - trzeba KONIECZNIE poczytać notę PDF swojego scalaka - a szczególnie pierwsze strony mówiące o zaszytych fabrycznych adresach I2C w zależności od modelu scalaka, no i PODSTAWA - szczególnie strony od 9 do 12 w nocie PDF, gdzie jest opisany dokładnie sposób komunikacji z tym scalakiem. Bo to co kolega zrobił tu w tym przykładowym kodzie to jakieś nieporozumienie genetyczne niestety :(

No i w końcu to co pisze wyżej kolega SunRiver - strona 11 - czyli konfiguracja scalaka.....

No tak - bez zrozumienia od podstaw tego wszystkiego to kolega tego nie da rady zrobić. Dlatego na początek warto może sobie kopić czy wyłupać skądś scalaczek PCF8583 i poćwiczyć kody z książki tak od deski do deski żeby dobrze zrozumieć zasady komunikacji I2C. Przynajmniej będzie miał wtedy kolega jakieś porównanie i punkt odniesienia.

A tak ????? nie znając ni w ząb zagadnienia, próbuje kolega na chybił trafił jakieś tam polecenia bez składu i ładu wpisywać - to i nie dziwota - że nic nie działa. Zresztą tak na prawdę - to może by kolega napisał - co kolega w ogóle oczekuje po takim odczycie z tego scalaka - bo to jest bardzo ciekawe.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 sty 2012, o 13:24 
Offline
Nowy

Dołączył(a): 06 sty 2012
Posty: 5
Pomógł: 0

Trochę się pospieszyłem z tym tematem. Przez sesje ciężko mi znaleźć czas by powalczyć, ale udało mi się zrobić konfigurację dla najmniejszej prędkości odczytu, oraz dla wzmocnienia =1. Układ ma służyć do pomiaru napięcia na termoparze, której sygnał zostanie wzmocniony. Narazie próbuje zmierzyć napięcie na potencjometrze. Adresy się zgadzają, mam układ z napisem na obudowie ED0 - czyli według pdf adresy to 0x90 i 0x91.

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


Nie mam narazie możliwości przetestować innych układów na I2C. Obecnie program przechodzi i jest wyświetlana wartość 255 cały czas. próbowałem odpalić inny program na ads1100 i też pojawia się te nieszczęsne 255.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 sty 2012, o 15:26 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8589
Pomógł: 337

nie dziwi mnie to specjalnie

1. Nie widzę byś zapisywał konfiguracje do układu czyli tylko zdefiniowałeś sobie adres i to wszystko
2. Nie widzę byś cokolwiek odczytywał z układu po prostu uruchomiłeś TWI i to wszystko

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 sty 2012, o 15:51 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27322
Lokalizacja: Szczecin
Pomógł: 1041

Poza tym widać, że nie poczytałeś jeszcze dokładnie na temat komunikacji I2C w książce. Masz tam opisane i przygotowane funkcje wyższego rzędu do zapisu/odczytu całego bufora .... przejrzyj je dokładnie. A nie rzucasz niestety jakby na oślep granatem odłamkowym, pisząc jakieś tam TWI_START. READ, WRITE a co ciekawe w pętli głównej wciąż czyścisz LCD, wciąż ustawiasz prędkość na 100kHz - po co? prędkość ustawia się RAZ przy inicjalizacji. Zrozum więc proszę, że pośpiech tu nic nie pomoże - i bez zagłębienia się w temat - nie uda ci się przejść dalej a nam będzie nawet ciężko ci pomóc, chyba że oczekujesz gotowego kodu ?

Kolega SunRiver udzielił ci dobrej wskazówki wcześniej, że trzeba najpierw zainicjalizować układ, ustawić rejestry, a gdzie to zrobiłeś/poprawiłeś ? Nic a nic się w tym kodzie nie zmieniło :( .... Dlatego sam widzisz, że pośpiech jest złym doradcą.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 lut 2012, o 20:47 
Offline
Nowy

Dołączył(a): 06 sty 2012
Posty: 5
Pomógł: 0

Sesja, sesja i po sesji. Można w końcu walczyć dalej. Poćwiczyłem trochę z PCF8583 i ładnie współpracuje. Następnie wróciłem do ADS1110 i trochę udało się zdziałać. Pojawił się nowy problem, który nie jestem w stanie zrozumieć. Zastosowałem bibliotekę TWI z http://radzio.dxp.pl/twi/. Kod wygląda tak:

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


Obecnie układ testuje na atmega8 z wewnętrznym oscylatorem 8MHz. Jesli na nożkę ADS1110 (-IN) dam GND, a (+IN)do potencjometru (czyli tak jak powinno być) , to na wyświetlaczu otrzymuje wartość 32768 i utrzymuje się aż do przekroczenia około 2,8 V zamienia się na 0 i po 5 sekundach program jakby się zawiesza bo wyświetlacz się czyści. Jeśli podłącze na (-IN) VCC to na wyświetlaczu wraz z potencjometrem zmieniają się wartości z minusem przed liczba i na zakresie 5-3 V. Przy czym 3V to -32768. Dziękuję za zainteresowanie i pomoc!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 lut 2012, o 21:03 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27322
Lokalizacja: Szczecin
Pomógł: 1041

Przykro mi ale ja jestem w stanie pomóc tylko w przypadku pytań odnośnie bibliotek zawartych w książce. Nie z uwagi na to, że innych nie uznaję ale z prozaicznej przyczyny, nie mam czasu na analizę innego kodu. Dlatego nawet nie będę rozpatrywał co tu nie działa bo nie mam pewności co jest w tych bibliotekach....

Proszę spróbować ew w oparciu o te z książki, z uwzględnieniem aktualizacji do kodów z książki/DVD która wprowadziła funkcję do ustawiania prędkości na magistrali I2C w kHz - a wtedy ja będę się mógł odnieść. A teraz to chyba że ktoś z kolegów się podejmie analizy.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 lut 2012, o 21:30 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8589
Pomógł: 337

W sumie mi tez się nie bardzo chce analizować jakieś zlepki

ja zrobiłem sobie kiedyś do ADS1100 plik nagłówkowy może cię natchnie
osobiście nie lubię ADSów są jakieś pomylone :)

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



Masz jeszcze kod pliku ADS1100.c bo znalazłem
Możliwe ze dojdziesz;

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


w każdym razie to mi działało , ale dałem sobie spokój z kostkami ADS11xx

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 lut 2012, o 19:50 
Offline
Nowy

Dołączył(a): 06 sty 2012
Posty: 5
Pomógł: 0

Dzięki SunRiver po testuje Twoja bibliotekę, ale jestem pewien, że na samym TWI powinno się spokojnie go odpalić. Skorzystałem z bibliotek Panaw Mirosława i sprawa wygląda identycznie jak wcześniej. W nocie ads1110 napisali, że gdy (-IN) podłączone jest do GND to na (+IN) czyta napięcie 0-2,048 V. Ale jesli na ta nozke podaje napiecie 0-2,048 to na wyswietlaczu mam wartość 0 i po paru sekundach program sie zawiesza, a po przekroczeniu 2,048 wyświetla 32767 i sie nie zawiesza:) Możliwe, że układ jest uszkodzony? Może znacie jakiś lepszy przetwornik ADC np 12 bitowy? Pozdrawiam!

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 lut 2012, o 22:13 
Offline
Nowy

Dołączył(a): 06 sty 2012
Posty: 5
Pomógł: 0

Przetwornik okazał się wadliwy. Temat do zamknięcia. Dziękuję za pomoc i zainteresowanie. Pozdrawiam!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 lis 2012, o 12:19 
Offline
Nowy

Dołączył(a): 12 lis 2012
Posty: 15
Pomógł: 0

Witam. Kolega SunRiver dawno temu napisał:
Cytuj:
ja zrobiłem sobie kiedyś do ADS1100 plik nagłówkowy może cię natchnie
osobiście nie lubię ADSów są jakieś pomylone

.. możesz sprecyzować dlaczego ADSy są "jakieś pomylone"?

Pozdrawiam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 lis 2012, o 15:42 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8589
Pomógł: 337

greg_leo napisał(a):
.. możesz sprecyzować dlaczego ADSy są "jakieś pomylone"?


No nie da się sprecyzować, w zasadzie , ale jakoś nigdy ich nie lubiłem :)

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 13 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 3 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO