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



Teraz jest 12 lis 2024, o 17:34


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 11 ] 
Autor Wiadomość
PostNapisane: 28 maja 2012, o 20:27 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 maja 2012
Posty: 471
Lokalizacja: ZGY/ZS
Pomógł: 30

Witam, jestem tu świeży:) Mam problem z nawiązaniem poprawnej komunikacji z tym układem. Do rzeczy, to co naskrobałem:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


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


No i na starcie próbowałem odczytać CHIP_ID
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Witamy, witamy ;) tylko proszę kod programu umieszczać w znacznikach [ syntax = c ] tak jak to poprawiłem OK? (mirekk36)

Jednak w odpowiedzi dostaje 0x8888, czyli dwukrotnie wartość STMPE811_R, a powinienem dostać 0x0811. Dodam że jak zamienię adres przy odczycie np na 0x89 to procek wisi na TWI_read(). Na magistrali jest jeszcze PCF8563 i śmiga. Proszę o rady ;)

_________________
eDiyCraft.blogspot.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 maja 2012, o 20:49 
Offline
Moderator
Avatar użytkownika

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

Ja też na magistrali mam PCF8583 oraz EEPROM 24c04 a także miły scalaczek STMPE811 ;) ... adres scalaka masz prawidłowy, ja mam taki ;)

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


to co robisz dalej to po prostu gdzieś są pomyłki w odczycie I2C ale z tego co widzę to też masz inicjalizację inną niż ja.

_________________
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: 28 maja 2012, o 21:02 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 maja 2012
Posty: 471
Lokalizacja: ZGY/ZS
Pomógł: 30

Inicjalizacje mam stąd:
http://mirekk36.blogspot.com/2011/12/pa ... 1-i2c.html
Podłączenie elektryczne, również jest identyczne, jedynie nie ma dławika na zasilaniu

To jak to jest z tym adresem tego scalaczka? W pierwszym etapie jak zapisuje do niego jakiś adres komórki, którą chcę odczytać to również wysyłam do niego 0x88? Bo z noty zrozumiałem to w ten sposób, że jak robię tylko zapis to wysyłam 0x82. A jak robie odczyt to robię najpierw 0x82 ... restart 0x88 ... Wachlowałem tymi adresami w różnych kombinacjach, bez rezultatu;/

_________________
eDiyCraft.blogspot.com



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

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

Hmm teraz już dużo nie pamiętam a w najnowszej książce będzie opisane wszystko ze szczegółami ;)

http://sklep.atnel.pl/pl/p/KSIAZKA-II-DVD/36

zobacz na spis treści...

ale ok już widzę masz jakiegoś mega babola - jak tyś sobie te adresy ustalił ???

Tak przy okazji zapytam masz moją pierwszą książkę? tam masz pokazaną zasadę jak sobie robić odczyt i moją uwagę żeby nigdy się nie bawić w takie właśnie definiowanie adresu do zapisu i odczytu jak u ciebie

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


po co to ??? przecież adres do zapisu to tylko dodanie 1 do adresu bazowego - a tymczasem ty sobie to liczysz na piechotę i sam wpadasz we własną pułapkę

a jakbyś napisał

Cytuj:
#define STMPE811 0x88

TWI_start();
TWI_write(STMPE811);
TWI_write(adr);
TWI_start();
TWI_write(STMPE811 + 1);
while (len--) *buf++ = TWI_read( len ? ACK : NACK );
TWI_stop();


to od razu miałbyś 12 kilo problemów z głowy - ale to już jak pisałem wyżej - tłumaczyłem w książce ;)

przemyśl to wszystko i zastanów się teraz - jeśli adres bazowy = 0x88 to jaki będzie większy o 1 ??? na pewno nie 0x82 ;)

_________________
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: 28 maja 2012, o 21:51 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 maja 2012
Posty: 471
Lokalizacja: ZGY/ZS
Pomógł: 30

Tak, tak, zgadza się:) Post wyżej opisałem jak zrozumiałem to co odczytałem z PDF-a. I zdziwiło mnie że nie jest właśnie +1. Przeczytałem ponownie odpowiednią część z PDF-a bardziej wnikliwie. No i to zmienne adresowanie tyczyło się konfiguracji w jakiej jest podłączony PIN3 (a0). Gdy do VCC to 0x88 i 0x88+1. Gdy do GND to 0x82 i 0x82+1. No ale już utwierdziłeś mnie w tych podejrzeniach :)
Zastosowałem programową obsługę I2C dla porównania. W odpowiedzi dostałem 0xFFFF, wniosek, brak jakiejkolwiek komunikacji ;] Wcześniej w odpowiedzi dostawałem to co ostatnio wysłałem, ponieważ koniec końców to ten sam rejestr TWDR.
Diagnoza taka, że nieprawidłowo jest przylutowany scalak, było to moje pierwsze podejście do QFN. Jutro poprawię i będę działać dalej.

BTW. Pierwszą książkę posiadam, drugą również mam w planach, a panel muszę uruchomić do piątku. Zrobiłem sterownik oświetlenia i na weekend montuje go u rodziców, żeby mama z wyra nie musiała wstawać by sobie przyświecić:) A jak już wstanie to żeby miała ładny panel zamiast tradycyjnego włącznika.

Dzięki za czas i pomoc. Pozdrawiam

_________________
eDiyCraft.blogspot.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 maja 2012, o 21:58 
Offline
Moderator
Avatar użytkownika

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

Hmm - no tak - lutowańsko tego QFN'a to jednak precyzyjna zabawa co by nie mówić. Dławika przynajmniej do testów nie musisz mieć - on się szczególnie przydaje gdy już docelowo korzystasz z panelu żeby jak najlepiej przetworniki ADC miały filtrowane zasilanie

tu masz moją aktualną inicjalizację z odczytaniem na początku ID scalaka ;)

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

_________________
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: 29 maja 2012, o 20:59 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 maja 2012
Posty: 471
Lokalizacja: ZGY/ZS
Pomógł: 30

Udało się:)
Cytuj:
Podłączenie elektryczne, również jest identyczne

Kłamałem;]

Rozlutowując i przylutowując scalaka kilkukrotnie bez rezultatu, ręce mi opadły. Myślałem że go przegrzałem. Zerknąłem na schemat Twój i przerysowany przeze mnie do Orzeła;] no i okazało się że takiego babola walnąłem, aż wstyd;] Pin 9 podłączyłem do Vcc, z SPI chciałem wydusić I2C:) No i ponowne przylutowanie scalaka i ruszył z kopa. Pojawiły się upragnione trzy cyferki 811. Plus z tego taki, że wypracowałem sobie sprawne lutowanie QFN.
Na dzisiaj to tyle zabawy, właściwą częścią zajmę się jutro po robocie.

-- dodano 31 maja 2012, o 17:50 --



Samą komunikację nawiązałem z STMPE, ale właściwie na tym koniec moich sukcesów. Próbując pobrać współrzędne w przerwaniu, nie jest ono wcale zgłaszane do uC. Procka konfigurowałem we wszystkich dostępnych możliwościach reakcji na przerwanie. Zrobiłem również tak, że do pętli głównej wrzuciłem bezpośrednio odczyt współrzędnych, wykonujący się co ok 250ms.

Włączam zasilanie -> odczyt X:0, Y:0 -> naciskam panel -> X: ok 65200(wartość rejestru) Y: 0 -> po chwili X:0 Y:0 -> każde następne naciśniecie panela X:0 Y:0

Pomysły mi się skończyły. Miałbym ogromną prośbę do Ciebie mirekk36, ponieważ masz tego STMPE rozpykanego. Jak będziesz miał wolną chwilkę i ochotę, a jestem świadomy, że z tym bywa ciężko tzn. z czasem ;] sprawdziłbyś na swoim układzie czy to co naskrobałem ruszy u Ciebie? wtedy wyeliminowałbym usterkę sprzętową. Załączam projekcik w którym jest tylko to co niezbędne, przygotowany dla Atmega8. Dodam że panel który używam jest od SonyEricsona P900, a podłączony bezpośrednio do uC jako tako śmiga.

-- dodano 31 maja 2012, o 21:36 --

Dobra, zwojowałem te moje problemy, panel śmiga. Tak więc Mirku zwalniam Ciebie z mojej prośby i tak masz sporo na głowie;] miałem kilka błędów, a jednorazowe odczyty i późniejsze wieszanie się były spowodowane tym, że zapomniałem odpowiednio poprzesuwać bity na swoje miejsce.
Ale dalej trapi mnie jak to jest z tymi rejestrami FIFO, a konkretnie FIFO_STA,FIFO_TH (FULL, EMPTY, OVF). Czy odnoszą się one do odczytu grupowego? Definiujemy ile próbek ma zbierać i tamte poszczególne bity wskazują stan, czy bufor przepełniony, czy zebrał tyle próbek ile chcieliśmy itd. ?


Załączniki:

Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.

_________________
eDiyCraft.blogspot.com



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

Dołączył(a): 28 maja 2012
Posty: 471
Lokalizacja: ZGY/ZS
Pomógł: 30

Odkopuję trochę temat. Urządzenie przy którym walczyłem z STMPE, pracowało sobie bezawaryjnie kilka miesięcy,aż tu w tym tygodniu pojawił się taki problem, że touch-panel wzbudza się pomimo braku dotyku. STMPE wykrywa dotyk panela i wyrzuca raczej przypadkowe punkty (brak powtarzalności wartości tego wzbudzania się). Moje pytanie jest takie, czy możliwe jest, aby wystąpiły takie objawy jeśli pojawiłby się zimny lut gdzieś na scalaczku STMPE? Czy raczej sam panel już szykować do wymiany? Niestety nie mam teraz dostępu do tego urządzenia, aby to sprawdzić, więc moje pytanie jest czysto teoretyczne :)

_________________
eDiyCraft.blogspot.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 sty 2013, o 19:56 
Offline
Moderator
Avatar użytkownika

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

bardzo ciężko odpowiedzieć na takie pytanie :( jeśli nie masz zapasowego albo innego touch panela do sprawdzenia ...

na jakim w ogóle jedziesz ? jaki masz LCD ?

_________________
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 2013, o 20:32 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 maja 2012
Posty: 471
Lokalizacja: ZGY/ZS
Pomógł: 30

Mam panel zapasowy, tak jak napisałem nie mam teraz dostępu do urządzenia więc sobie trochę teoretyzuje :) Panel jest od telefonu komórkowego i nałożony na wydrukowane ikony na folii i to podświetlone. Ogólnie jest to prosty sterownik oświetlenia zamontowany u rodziców. W niedzielę odziałam z tym.

_________________
eDiyCraft.blogspot.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 sty 2013, o 17:14 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 maja 2012
Posty: 471
Lokalizacja: ZGY/ZS
Pomógł: 30

Usterka zlikwidowana, okazało się, że panel odszedł do krainy wiecznych dotyków :)

_________________
eDiyCraft.blogspot.com



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: 11 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 4 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