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



Teraz jest 6 mar 2025, o 20:29


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
Autor Wiadomość
PostNapisane: 25 mar 2017, o 17:26 
Offline
Nowy

Dołączył(a): 05 gru 2015
Posty: 3
Pomógł: 0

Witam, zacząłem pisać własną bibliotekę do w.w. expandera MCP. Otóż mam wielki problem z połączeniem układ nie reaguje. Ale zacznijmy od fundamentów..

A0=A1 -> podłączone do VCC, A2 -> GND więc ustawiłem adres jako 0x43h . Następnie podłączyłem diody poprzez rezystor 220om do portu A. W programie wykorzystuje "Mirkową" bibliotekę do obsługi I2C. W inicjalizacji ustawiam port A jako wyjście poprzez zapisanie do rejestru IODIRA wartości 0x00h, następnie na połowie portu ustawiam stan wysoki, na drugiej połowie niski (czyli teoretycznie 4 diody się zapalają, a 4 są zgaszone). W tym celu zmieniam rejestr GPIOA na wartość 0xF0h.

Sercem jest ATmega328p do której również podłączony jest LCD2x16 też przez I2C o adresie 0x40h który działa. Dodatkowo przy expanderze dołożyłem 2x 4.7k om dla linii SDA i SCL choć już te linie są podciągnięte na adapterze przy LCD.

Gdzie może być bubel i czym się różnią 2 rejestry GPIOx i OLATx wg. mnie przy zapisie działają tak samo a przy odczycie? Pozdrawiam


Ciało funkcji inicjalizującej

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



Ostatnio edytowano 25 mar 2017, o 17:57 przez karl9955, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 mar 2017, o 17:50 
Offline
Użytkownik

Dołączył(a): 15 gru 2013
Posty: 213
Pomógł: 5

Na początek popraw sposób w jaki zamieściłeś swój kod i skorzystaj z SYNTAX. To ważne ;) .



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 mar 2017, o 19:04 
Offline
Nowy

Dołączył(a): 05 gru 2015
Posty: 3
Pomógł: 0

Działa! :D Dla potomnych, skucha była w adresie pominąłem bit R/W zatem wysyłając "zapytanie" do urządzenia slave należy użyć bitu kontrolnego o wartości |0|1|0|0|A2|A1|A0|R/W| np dla A2 podłączonego do VCC i A1=A0 podłączonego do GND. |0|1|0|0||1|0|0|0| czyli adres to 0x48
0x4 pozostaje bez zmian, pozostałe 4 bity mogą przyjmować wartości z przedziału <0;E>
edit: :!:
bez wartości gdzie na najmłodszym bicie występuje 1. Może przyjąć np 0000 0010 0100 0110 1000 1010 1100 1110 tylko te 8 ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 mar 2017, o 21:00 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 gru 2013
Posty: 121
Pomógł: 16

Fajny scalaczek też mam na stercie karteczkę z napisem dotknać-przetestować :) Dla ciekawości jego brat MCP23018 jest ciut szybszy w razie potrzeby :) potrafi gadać po I2C z prędkością 3.4 MHz. Miłej zabawy :)

_________________
http://strefapic.blogspot.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 lis 2020, o 21:34 
Offline
Użytkownik

Dołączył(a): 20 wrz 2015
Posty: 55
Pomógł: 0

Witam
Widzę że wątek już ma kilka lat ale właśnie usiłuję odpalić układ MCP tak jak w temacie
czy można prosić autora o fragment kodu jak ustawiać porty jako wejścia i wyjścia i jak to odczytywać i zapisywać tez używam biblioteki Mirka MK_I2C i o ile ogarnąłem sobie już pcf-y to z tym MCP jakoś mi nie idzie
wszystko mam podłączone raczej na 99% dobrze tylko tych rejestrów nie ogarniam :(

piny A1 A2 A3 -> VCC
diody podłączone katodami do układu
wiec teoretycznie powinno wszystko się zaświecić a tu nic :(
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

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



Proszę o pomoc
Pozdrawiam



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

Strefa czasowa: UTC + 1


Kto przegląda forum

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