NOWE POSTY | NOWE TEMATY | POPULARNE | STAT | RSS | KONTAKT | REJESTRACJA | Login: Hasło: rss dla

HOME » TECHNIKA, KONSTRUKCJE AMATORSKIE » PIC16F627A I WYŚWIETLACZ LCD - PROBLEM

Przejdz do dołu stronyStrona: 1 / 2>>>    strony: [1]2

PIC16F627A i wyświetlacz LCD - problem

  
sq3mve
24.08.2017 20:30:54
poziom 6



Grupa: Użytkownik

QTH: JO82MB

Posty: 985 #2458128
Od: 2011-2-24


Ilość edycji wpisu: 1
Witam

Od niedawna bawię się mikroprocesorami PIC.

Obecnie próbuję zmigrować jeden projekt z PIC16F877A na PIC16F627A.
PIC16F877A z zewnętrznym oscylatorem 10 MHz.
PIC16F627A z wewnętrznym oscylatorem 4 MHz.

No i wyskoczył problem z obsługą wyświetlacza LCD 2x16.

Za chiny nie mogę zmusić PIC16F627A do wyświetlenia tekstu na wyświetlaczu. :-(

Korzystam zarówno z własnej biblioteki obsługującej LCD jak i pobranej ze strony Microchip'a.

Porty są odpowiednio skonfigurowane i podłączone (PIC16F627A):
RS -> A6
RW -> masa
E -> A7
D4-D7 -> A0-A3

Ma ktoś z Was doświadczenie w tej materii i mógłby mi podpowiedzieć jak to ugryźć?

<edit>
Zapomniałem dodać, że obie biblioteki na PIC16F877A nie mają problemu z poprawnym wyświetlaniem tekstów.
</edit>


Pozdrawiam

_________________
Mariusz SQ3MVE
http://sq3mve.marph.pl
-----------------------------------
Dobrze jest gdy satysfakcja mówiącego nie przewyższa znacznie satysfakcji słuchających.
Jerzy Bralczyk
-----------------------------------
Najlepszy hosting w Polsce już od 100 zł.
  
Electra28.03.2024 19:11:48
poziom 5

oczka
  
sq6ade
24.08.2017 21:31:25
moc !!!
wydawało się ze wiecej już sie nie da ale jednak !



Grupa: Użytkownik

QTH: Wrocław (Breslau) Party-n

Posty: 15107 #2458159
Od: 2008-3-21
Może przez to nieszczęsne ignorowanie flagi BUSY jak RW ustawione tylko na zapis.
_________________
Wiosna się budzi w całej naturze
Witana rzewnym słowików pieniem,
W zielonym gaju, ponad strumieniem,
Kwitną prześliczne dwie róże.

Obrazek
  
SP6LTD
24.08.2017 21:58:21
poziom 2

Grupa: Użytkownik

QTH: JO81LC

Posty: 56 #2458172
Od: 2017-7-7
    sq6ade pisze:

    Może przez to nieszczęsne ignorowanie flagi BUSY jak RW ustawione tylko na zapis.

Raczej nieprawdopodobne przy identycznym sofcie i zwolnionym zegarze.
  
sq3mve
25.08.2017 08:49:30
poziom 6



Grupa: Użytkownik

QTH: JO82MB

Posty: 985 #2458250
Od: 2011-2-24
Witam

    sq6ade pisze:

    Może przez to nieszczęsne ignorowanie flagi BUSY jak RW ustawione tylko na zapis.


Soft jest oparty na opóźnieniach czasowych i nie jest brana pod uwagę flaga BUSY.

I tak na marginesie, dla PIC16F627A mam stosowne ustawienia informujące o zegarze procka:

#define _XTAL_FREQ 4000000

Więc teoretycznie czasy opóźnień powinny być wyliczane prawidłowo.

Sprawdzę co da ich zwiększenie...

Pozdrawiam
_________________
Mariusz SQ3MVE
http://sq3mve.marph.pl
-----------------------------------
Dobrze jest gdy satysfakcja mówiącego nie przewyższa znacznie satysfakcji słuchających.
Jerzy Bralczyk
-----------------------------------
Najlepszy hosting w Polsce już od 100 zł.
  
sq6ade
25.08.2017 09:18:20
moc !!!
wydawało się ze wiecej już sie nie da ale jednak !



Grupa: Użytkownik

QTH: Wrocław (Breslau) Party-n

Posty: 15107 #2458253
Od: 2008-3-21
Nie znam dobrze picków ale widzę że porty mogą mieć różne funkcje w zależności od ustawionych rejestrów sterujących.
Różni się to między tymi dwoma układami jeśli chodzi o PORTA.
"SUMMARY OF REGISTERS ASSOCIATED WITH PORTA"
_________________
Wiosna się budzi w całej naturze
Witana rzewnym słowików pieniem,
W zielonym gaju, ponad strumieniem,
Kwitną prześliczne dwie róże.

Obrazek
  
sp9uxy
25.08.2017 09:19:56
poziom najwyższy i najjaśniejszy :-)

Grupa: Użytkownik

QTH: Gliwice

Posty: 2075 #2458254
Od: 2009-8-25
Obsługa LCD jest napisana w C czy w asemblerze?
  
sp9uxy
25.08.2017 09:29:41
poziom najwyższy i najjaśniejszy :-)

Grupa: Użytkownik

QTH: Gliwice

Posty: 2075 #2458257
Od: 2009-8-25
    sq6ade pisze:

    Nie znam dobrze picków


Nie znam się ale wypowiem się. Co w tym dziwnego że bity w PORTA
mogą mieć różne funkcje?

W 877A nie ma bitów 6 i 7 w PORTA.
  
sq6ade
25.08.2017 09:48:27
moc !!!
wydawało się ze wiecej już sie nie da ale jednak !



Grupa: Użytkownik

QTH: Wrocław (Breslau) Party-n

Posty: 15107 #2458261
Od: 2008-3-21
Skoro robi migrację to raczej oczywiste że nie w asm. Ale to wiedzą ci co coś programują . Spamerzy raczej nie.
_________________
Wiosna się budzi w całej naturze
Witana rzewnym słowików pieniem,
W zielonym gaju, ponad strumieniem,
Kwitną prześliczne dwie róże.

Obrazek
  
sp9uxy
25.08.2017 09:56:56
poziom najwyższy i najjaśniejszy :-)

Grupa: Użytkownik

QTH: Gliwice

Posty: 2075 #2458265
Od: 2009-8-25


Ilość edycji wpisu: 1
    sq6ade pisze:

    Skoro robi migrację to raczej oczywiste że nie w asm. Ale to wiedzą ci co coś programują . Spamerzy raczej nie.


No właśnie ty coś tam programujesz i tak to wygląda.

Znowu udowadniasz że : nie znasz się ale wypowiesz się. Twój spam już osiągną poziom ponad 11k.

Migracje można robić w asemblerze i w C. Jak byś znał C to byś nie spamował.
  
sq6ade
25.08.2017 10:07:15
moc !!!
wydawało się ze wiecej już sie nie da ale jednak !



Grupa: Użytkownik

QTH: Wrocław (Breslau) Party-n

Posty: 15107 #2458266
Od: 2008-3-21
No cóż - można i kod wynikowy HEX dekompilować do asm migrować i kompilować. Nikt nie zabrania tarzania się w pokrzywach.
Pomóż koledze z LCD a swoje charakterystyczne złośliwe docinki zachowaj dla siebie.

http://sp7pki.iq24.pl/default.asp?grupa=3538&temat=438104
_________________
Wiosna się budzi w całej naturze
Witana rzewnym słowików pieniem,
W zielonym gaju, ponad strumieniem,
Kwitną prześliczne dwie róże.

Obrazek
  
sp9uxy
25.08.2017 10:09:56
poziom najwyższy i najjaśniejszy :-)

Grupa: Użytkownik

QTH: Gliwice

Posty: 2075 #2458270
Od: 2009-8-25
    sq6ade pisze:

    No cóż - można i kod wynikowy HEX dekompilować do asm migrować i kompilować. Nikt nie zabrania tarzania się w pokrzywach.
    Pomóż koledze z LCD a swoje charakterystyczne złośliwe docinki zachowaj dla siebie.

    http://sp7pki.iq24.pl/default.asp?grupa=3538&temat=438104


Złośliwe docinki jak zwykle od ciebie jako pierwsze a dalej to tylko pokłosie.
  
Electra28.03.2024 19:11:48
poziom 5

oczka
  
wojrum
25.08.2017 10:36:07
Grupa: Użytkownik

QTH: Biłgoraj

Posty: 11 #2458277
Od: 2011-4-8


Ilość edycji wpisu: 2
Może problem występować przez nieprawidłowe zainicjalizowanie portu - chodzi o współdzielenie pinów jako analogowych(komparator analogowy-ANx) lub cyfrowych (PORTAx).
Tu poniższy kawałek w asemblerze - inicjowanie jako cyfrowy:
MOVLW 0x07 ;Turn comparators off and
MOVWF CMCON ;enable pins for I/O
;functions

P.S.
Pisząc po ludzku(w C):
CMCON=0x07;

Sprawdź czy nie ma w kodzie już podobnej inicjalizacji.
_________________
73!
Wojtek SP8XW
  
sp9uxy
25.08.2017 12:44:34
poziom najwyższy i najjaśniejszy :-)

Grupa: Użytkownik

QTH: Gliwice

Posty: 2075 #2458314
Od: 2009-8-25


Ilość edycji wpisu: 1
    wojrum pisze:

    Może problem występować przez nieprawidłowe zainicjalizowanie portu - chodzi o współdzielenie pinów jako analogowych(komparator analogowy-ANx) lub cyfrowych (PORTAx).
    Tu poniższy kawałek w asemblerze - inicjowanie jako cyfrowy:
    MOVLW 0x07 ;Turn comparators off and
    MOVWF CMCON ;enable pins for I/O
    ;functions

    P.S.
    Pisząc po ludzku(w C):
    CMCON=0x07;

    Sprawdź czy nie ma w kodzie już podobnej inicjalizacji.


Używane przez kolegę piny nie mogą być użyte jako ADC.

Ale mogą być : RA6 dwukierunkowym I/O portem, wyjściem oscylatora kwarcowego,
wyjściem zegara , RA7 dwukierunkowym I/O portem, wejściem oscylatora kwarcowego,
wejściem zegara.
  
wojrum
25.08.2017 13:34:26
Grupa: Użytkownik

QTH: Biłgoraj

Posty: 11 #2458324
Od: 2011-4-8
W 877A bity w CMCON są dafaultowo ustawione na wartość 7 - I/O, w 827A na zero - wejścia analogowego komparatora.
Poza tym w 877A defaultowo piny są ustawione w ADCON1 jako wejścia ADC, w 827A nie występuje.
_________________
73!
Wojtek SP8XW
  
wojrum
25.08.2017 13:50:17
Grupa: Użytkownik

QTH: Biłgoraj

Posty: 11 #2458338
Od: 2011-4-8
[quote]Używane przez kolegę piny nie mogą być użyte jako ADC.

Ale mogą być : RA6 dwukierunkowym I/O portem, wyjściem oscylatora kwarcowego,
wyjściem zegara , RA7 dwukierunkowym I/O portem, wejściem oscylatora kwarcowego,
wejściem zegara.[/quote]

Oczywiście ten wypadek wystąpi jak złe są ustawienia oscylatora w bitach konfiguracyjnych.
_________________
73!
Wojtek SP8XW
  
sq3mve
25.08.2017 14:29:17
poziom 6



Grupa: Użytkownik

QTH: JO82MB

Posty: 985 #2458356
Od: 2011-2-24
Witam

Przypomnę, że problem dotyczy PIC16F627A :-)
Piszę w C, tak dla wyjaśnienia.
Asembler to wyższy stopień wtajemniczenia :-)
Wezmę się za niego jak już dobrze opanuję programowanie picków w C :-)

Porty mam skonfigurowane jako cyfrowe (CMCON=0x07) ;-)

A problem już rozwiązałem, przynajmniej częściowo.
Pomogło wydłużenie kilku opóźnień.

Muszę jeszcze to dokładnie przećwiczyć, bo w jakichś 10% przypadków, po włączeniu zasilania, wyświetlacz się nie inicjalizuje. :-(

Może wystarczy wydłużyć opóźnienie przeznaczone na ustabilizowanie napięcia...

Pozdrawiam
_________________
Mariusz SQ3MVE
http://sq3mve.marph.pl
-----------------------------------
Dobrze jest gdy satysfakcja mówiącego nie przewyższa znacznie satysfakcji słuchających.
Jerzy Bralczyk
-----------------------------------
Najlepszy hosting w Polsce już od 100 zł.
  
sq6ade
25.08.2017 14:32:56
moc !!!
wydawało się ze wiecej już sie nie da ale jednak !



Grupa: Użytkownik

QTH: Wrocław (Breslau) Party-n

Posty: 15107 #2458357
Od: 2008-3-21
Poszukaj biblioteki z obsługą r/w. Dodanie opóźnień przed i po impulsie E też nie zawadzi.
_________________
Wiosna się budzi w całej naturze
Witana rzewnym słowików pieniem,
W zielonym gaju, ponad strumieniem,
Kwitną prześliczne dwie róże.

Obrazek
  
sp9uxy
25.08.2017 16:24:27
poziom najwyższy i najjaśniejszy :-)

Grupa: Użytkownik

QTH: Gliwice

Posty: 2075 #2458410
Od: 2009-8-25
    sq6ade pisze:

    Poszukaj biblioteki z obsługą r/w. Dodanie opóźnień przed i po impulsie E też nie zawadzi.


Po co biblioteka r/w? Tak aby tylko poszukać?
  
sp9uxy
25.08.2017 16:28:35
poziom najwyższy i najjaśniejszy :-)

Grupa: Użytkownik

QTH: Gliwice

Posty: 2075 #2458411
Od: 2009-8-25
    sq3mve pisze:

    Witam

    Przypomnę, że problem dotyczy PIC16F627A :-)
    Piszę w C, tak dla wyjaśnienia.
    Asembler to wyższy stopień wtajemniczenia :-)
    Wezmę się za niego jak już dobrze opanuję programowanie picków w C :-)

    Porty mam skonfigurowane jako cyfrowe (CMCON=0x07) ;-)

    A problem już rozwiązałem, przynajmniej częściowo.
    Pomogło wydłużenie kilku opóźnień.

    Muszę jeszcze to dokładnie przećwiczyć, bo w jakichś 10% przypadków, po włączeniu zasilania, wyświetlacz się nie inicjalizuje. :-(

    Może wystarczy wydłużyć opóźnienie przeznaczone na ustabilizowanie napięcia...

    Pozdrawiam


Kolejność nauki powinna właśnie rozpoczynać się od asemblera, poznajesz wówczas
mapę pamięci uP, rejestry, przerwania.
Potem C, oczywiście pisząc w C często warto dla większej wydajności używać
wstawek asemblerowych.

A próbowałeś czy z innym egzemplarzem LCD są też problemy?
  
wojrum
25.08.2017 16:45:37
Grupa: Użytkownik

QTH: Biłgoraj

Posty: 11 #2458416
Od: 2011-4-8
    sq3mve pisze:

    Witam

    Przypomnę, że problem dotyczy PIC16F627A :-)
    Piszę w C, tak dla wyjaśnienia.
    Asembler to wyższy stopień wtajemniczenia :-)
    Wezmę się za niego jak już dobrze opanuję programowanie picków w C :-)

    Porty mam skonfigurowane jako cyfrowe (CMCON=0x07) ;-)

    A problem już rozwiązałem, przynajmniej częściowo.
    Pomogło wydłużenie kilku opóźnień.

    Muszę jeszcze to dokładnie przećwiczyć, bo w jakichś 10% przypadków, po włączeniu zasilania, wyświetlacz się nie inicjalizuje. :-(

    Może wystarczy wydłużyć opóźnienie przeznaczone na ustabilizowanie napięcia...

    Pozdrawiam



Nie wiem w jakim stopniu kolega ma opanowaną technikę mikroprocesorową oraz ten wyświetlacz ale podzielę się wiedzą:
Czepiając się programowania pic-a to są bity konfiguracyjne do odpowiedniego startu:
1. PWRTE - gdy jest na 0 to zadziała opóźnienie 72ms po włączeniu zasilania pic-a,
2. BOREN - gdy jest na 1 to zadziała opóźnienie (gdy PWRTE=0) 72ms od czasu gdy napięcie zasilania przekroczy odpowiednią do pracy wartość.
Bity te umożliwiają reset układu po włączeniu zasilania bez stosowania elementów RC na wejściu MCLR, czy także jego wyeliminowaniu.

Jeśli chodzi o wyświetlacz to należy dawać opóźnienia pomiędzy instrukcjami w sekwencji inicjalizującej wyświetlacz (chociaż ja zrobiłem sprawdzając flage BUSY wyświetlacza i działało) które są podane w dokumentacji. Wyświetlacz wyrabiał się na 4MIPS-ach pic-a bez problemu.
_________________
73!
Wojtek SP8XW
  
Electra28.03.2024 19:11:48
poziom 5

oczka

Przejdz do góry stronyStrona: 1 / 2>>>    strony: [1]2

  << Pierwsza      < Poprzednia      Następna >     Ostatnia >>  

HOME » TECHNIKA, KONSTRUKCJE AMATORSKIE » PIC16F627A I WYŚWIETLACZ LCD - PROBLEM

Aby pisac na forum musisz sie zalogować !!!

TestHub.pl - opinie, testy, oceny