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



Teraz jest 28 mar 2024, o 18:01


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 43 ]  Przejdź na stronę Poprzednia strona  1, 2
Autor Wiadomość
PostNapisane: 16 maja 2017, o 07:46 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 cze 2014
Posty: 855
Lokalizacja: pod Warszawą
Pomógł: 58

Kolega odkopał wątek sprzed dwóch lat, ale Ci odpowiem.
Dowolne przypisanie pinów procesora tyczy się standardowego podłączenia wyświetlacza gdzie wykorzystujesz siedem pinów procesora.(D4-D7,RW,E,RS w wyświetlaczu)
W przypadku I2C podłączasz oczywiście expander do SDA i SCL procesora chyba, że potrafisz obsłużyć I2C programowo - tylko po co?
Biblioteka będzie działać z dowolnym procesorem ale trzeba zwrócić uwagę na rejestry konfiguracyjne.

_________________
Pomóżcie mi stanąć na nogi



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 maja 2017, o 18:18 
Offline
Nowy

Dołączył(a): 07 lut 2016
Posty: 13
Pomógł: 0

Odkopałem stary wątek to fakt.
Mczarny , dokładnie tak myślałem jak napisałeś , wolałem się upewnić.
Jednak zastanawiam się ( w ramach ćwiczeń oczywiście ) nad rozwiązaniem programowym dla
połączenia : Mikrokontroler --- Expander I2C na PCF8574 --- Wyświetlacz LCD2x16.
Np do najmniejszych Attiny które nie mają I2C ( mają co prawda USI podobne do I2C ale to nie dokładnie to samo )
Natomiast te małe Attiny mają dość dobre ADC więc nadają się do pomiarów.
Rozwiązanie programowe wymagałoby moim zdaniem jeszcze głębszej modyfikacji bibliotek Mirka na HD44780 no i zastosowania
też przerobionych bibliotek i2c_soft z przykładu programowego I2C. Ja to już próbowałem naprędce zrobić, ale niestety bez rezultatu.

Wydaje mi się że programowe I2c na Lcd z expanderem PCF8574 jest warte pracy, bo pomimo oczywistych wad jest mocno uniwersalne
( definiujemy 2 piny i cześć )

W tym miejscu stawiam pytanie czy ktoś forum już dał radę zrealizować taki projekt a jeśli nie to czy warto opisać co już zrobiłem.

PZDR - Paweł



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 maja 2017, o 19:13 
Offline
Użytkownik

Dołączył(a): 02 gru 2015
Posty: 544
Pomógł: 27

Ja mam taka bibliotekę tylko jest małe ale nie jestem jej autorem ja ją tylko przerobiłem pod i2c soft więc musisz się spytać Mirka który jest autorem czy mogę udostępnić jak tak to wrzucę .



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 maja 2017, o 17:43 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2013
Posty: 485
Lokalizacja: Siedlce
Pomógł: 9

Tutaj może coś znajdziesz: topic13873.html

_________________
Ucz się ucz ,bo po to tutaj jesteś...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 maja 2017, o 14:38 
Offline
Użytkownik

Dołączył(a): 02 gru 2015
Posty: 544
Pomógł: 27

a kolega te piny co w bibliotece ustawił to podciągnoł rezystorami 4,7k do plusa?
Z ciekawości zrobiłem tak samo jak pisałeś na pw no i zrób tak :
1) w pliku lcd.h ustaw adres dla twojego pcf zobacz czy masz zwarte a0,a1 lub a2 i jaka jest nazwa, czy na końcu jest literka a, czy samo t bo jak at i nie masz zwarte a0-a2 to wpisz adres 0x7e a jak masz na końcu t i nie zwarte a0-a2 to adres to 0x4e.
2)oscylator w procku ustaw na 8Mhz albo kwarc nie więcej jak 11059200 hz



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 maja 2017, o 19:20 
Offline
Nowy

Dołączył(a): 07 lut 2016
Posty: 13
Pomógł: 0

No tak, - wszystko dokładnie pozmieniałem a zapomniałem o adresie ... Dzieki za podpowiedź :D :D ŚMIGA!!.
Jeszcze raz dziękuję koledze za pomoc i poświęcony czasem wręcz bezcenny czas !
Przy okazji info dla posiadaczy tego expandera - rezystory podciągające ma on w sobie.



Ostatnio edytowano 19 maja 2017, o 19:25 przez Parser, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 maja 2017, o 19:22 
Offline
Użytkownik

Dołączył(a): 02 gru 2015
Posty: 544
Pomógł: 27

a działa Ci?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 maja 2017, o 19:41 
Offline
Nowy

Dołączył(a): 07 lut 2016
Posty: 13
Pomógł: 0

Działa.
I fajnie, że pomogłeś. Jeszcze raz dziękuję.
Zastanawiam się czy nie warto opublikować Twoich przeróbek w formie fragmentarycznej oczywiście
aby nie upubliczniać 100% bibliotek Mirka. Jak widziałem ten temat jest nowy. Tu sam zadecyduj.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 maja 2017, o 20:10 
Offline
Użytkownik

Dołączył(a): 02 gru 2015
Posty: 544
Pomógł: 27

Jak Mirek się zgodzi to publikuj bo to naprawdę nie mój kod tylko Mirka ja tylko troszkę to zmodyfikowałem.



Ostatnio edytowano 20 maja 2017, o 13:00 przez tonygryps, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 maja 2017, o 08:39 
Offline
Nowy

Dołączył(a): 07 lut 2016
Posty: 13
Pomógł: 0


Realizacja transmisji do LCD44780 poprzez konwerter(expander) I2C na PCF8574 z góry postu ale z dowolnych pinów uC


Przykład przeróbki : Powielić w eclipse lekcję LCD_I2C_PCF8574 z inną nazwą projektu dla sprawdzenia działania
Katalog z biblotekami I2C_TWI zlikwidować, w to miejsce wstawić katalog z biblotekami I2C_SOFT z lekcji 08_I2C_SOFT
W biblotece lcd44780.c zawierającej obsługę I2C w miejsce bibloteki i2c.twi.h nalezy wprowadzic odwłołanie do i2c.soft.h
W biblotece lcd44780.h jwst definicja #define PCF8574_LCD_ADDR po której nalezy wprowadzić adres konwertera(expandera)
(Jak okreslic adres - są wskazówki we wcześniejszych postach w tym watku)
Biblotekę i2c_soft.c pod koniec uzupełnić o 2 dodatkowe funkcje ( zamieszczam dzięki uprzejmości kolegi tonygryps ) :
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Wyszczególnić odwołania do tych funkcji w końcówce pliku i2c_soft.h :

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


Plik i2c_soft_cfg.h
Uzupełnić o makra upraszczające dostęp do portów :
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


oraz określić w nim piny z których wychodzimy z I2C do konwertera.

Skompilować i sprawdzić czy przykładowy program z licznikiem termometrem i bużką zawarty w main.c działa.

------------------

Idea samych przeróbek jest taka , ze w wersji sprzętowej bibloteka LCD z I2C od Mirka pośrednio odwołuje się do funkcji :
uint8_t TWI_read_int(uint8_t SLA);
uint8_t PCF8574_read( uint8_t SLA );
których nie ma w wersji programowej obsługi I2C - a więc należało je w niej dodać.

PZDR - Paweł



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 paź 2017, o 18:06 
Offline
Nowy

Dołączył(a): 22 lut 2016
Posty: 2
Pomógł: 0

Wszystko zrobione wg wskazówek, lecz kompilator wywala:

avr-gcc -Wl,-Map,LCD_I2C_PCF8574_tiny_13.map -Wl,--gc-sections -mmcu=attiny13 -o "LCD_I2C_PCF8574_tiny_13.elf" ./LCD/lcd44780.o ./I2C_SOFT/i2c_soft.o ./main.o
./LCD/lcd44780.o: In function `lcd_init':
lcd44780.c:(.text.lcd_init+0x8): undefined reference to `i2cSetBitrate'
collect2.exe: error: ld returned 1 exit status
make: *** [LCD_I2C_PCF8574_tiny_13.elf] Błąd 1

Przy LCD_I2C_PCF.. kompiluje się normalnie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 paź 2017, o 20:40 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 mar 2014
Posty: 1475
Pomógł: 167

Masz wyraźnie napisane, że używasz w pliku lcd44780.c w funkcji lcd_int() odwołania do funkcji i2cSetBitrate(), której kompilator nie widzi.
Masz dołączoną bibliotekę do I2C i jest ona zainkludowana w lcd44780.c?

--
Pozdrawiam,
Robert

------------------------ [ Dodano po: 2 minutach ]

Jeżeli używasz softwarego I2C to możesz nie mieć funkcji ustawiania baudrate i dlatego jej nie znajduje.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 paź 2017, o 17:29 
Offline
Nowy

Dołączył(a): 22 lut 2016
Posty: 2
Pomógł: 0

Dałem się wpuścić aż mi wstyd. Jasne, że funkcja. Pozdrawiam
Dzięki



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: 43 ]  Przejdź na stronę Poprzednia strona  1, 2

Strefa czasowa: UTC + 1


Kto przegląda forum

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