Problem z bascomem (znowu)

To forum jest dla wszystkich pasjonatów mikrokontrolerów AVR Atmela. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
Spanner
Użytkownik
Posty: 364
Rejestracja: 18 lip 2010, 18:29
Lokalizacja: Bielsko biała

Problem z bascomem (znowu)

Post autor: Spanner » 23 lut 2012, 17:49

Ponieważ projekt urządzenia na cmosach okazał się kompletną klapą postanowiłem po sporej przerwie wrócić do programowania. No więc do rzeczy moim problemem jest to ze procesor nie chce obsługiwać wyświetlacza. nie wiem co robie źle, w ogóle coś mi nie idzie.

Np ten program włącza mi podświetlenie lcd i działa

Kod: Zaznacz cały

$regfile = "m8def.dat"
$crystal = 8000000
Dim Pom As Bit
Config Portc = Output
Config Portd = Input
Config Portb = Output
Portd.0 = 1
Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5
Config Lcd = 16 * 2



Do
Portb.1 = 1
Loop
End

natomiast ten ma sprawić by migało i jakimś cudem nie działa

Kod: Zaznacz cały

$regfile = "m8def.dat"
$crystal = 8000000
Dim Pom As Bit
Config Portc = Output
Config Portd = Input
Config Portb = Output
Portd.0 = 1
Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5
Config Lcd = 16 * 2



Do
Waitms 500
Toggle Portb.1
Loop
End
Żadne komendy wyświetlania napisów jak chociażby

Kod: Zaznacz cały


LCD "Hello"

nie działają. Płytkę mam chyba bezbłędna ale na wszelki wypadek podsyłam projekt (wiem że tranzystor jest źle podpiety, poprawione)
Proszę niech mi ktoś to wyjaśni bo takie sytuacje mnie skutecznie zniechęcaja do porgramowania, ewentualnie podeśle jakiś program testowy który pozwoli mi to sprawdzić.

http://www.mediafire.com/download.php?o0872i8pkqgc4tr
http://www.mediafire.com/download.php?2d446g021i8yk2q


Pozdrawiam serdecznie
spanner

Rene
-
Posty: 5
Rejestracja: 04 lut 2012, 0:15
Lokalizacja: Poznań

Post autor: Rene » 24 lut 2012, 7:31

Możesz zapodac jeszcze raz te pliki z płytką i schematem żeby mi eagle otwarł. Bo te linki coś nie halo u mnie są i eagle zgłasza bład przy otwieraniu. Może jakiś jpg tez moze byc. Jeśli komenda LCD "Hello" Ci nie działa to coś jest nie tak sprzętowo bo powinno działać. Chetnie spojrze na schemat i płytkę.

Spanner
Użytkownik
Posty: 364
Rejestracja: 18 lip 2010, 18:29
Lokalizacja: Bielsko biała

Post autor: Spanner » 24 lut 2012, 9:35

Witam. Dla mnie też jest to dziwne. To normalne że nie możesz otworzyć tych plików eaglem, bo ja używam kicada. W załączniku screeny płytki i schematu. I jeśli dodam do tego programu polecenie wyswietlacza :

Kod: Zaznacz cały

$regfile = "m8def.dat"
$crystal = 8000000
Dim Pom As Bit
Config Portc = Output
Config Portd = Input
Config Portb = Output
Portd.0 = 1
Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5
Config Lcd = 16 * 2



Do
Waitms 500
Lcd "hello"
Portb.1 = 1
Loop
End

To podświetlenie przestaje działać :shock: :shock: :shock:

Edit
sprawdziłem na innym procku i efekt ten sam. Aha fusebit ustawiony na 11111111, kwarc 8MHz

pozdrawiam
Załączniki
pliki.rar
(141 KiB) Pobrany 423 razy

Awatar użytkownika
dondu
Użytkownik
Posty: 211
Rejestracja: 24 maja 2005, 9:47
Lokalizacja: Śląskie
Kontakt:

Post autor: dondu » 24 lut 2012, 11:45

Czemu mój samochód nie jedzie szybciej, niż 15km/h?

1. Nie czytasz datasheetów zastosowanych elementów.
2. Podłącz prawidłowo mikrokontroler: Minimalne podłączenia mikrokontrolera
3. Regulator napięcia także niezgodnie z datasheet: Zasilanie mikrokontrolera
4. Pokazujesz schemat na którym nie ma wartości elementów - mamy wróżyć?
Od tego zacznij, a dopiero później zajmij się programem.

Upss! Zapomniałem napompować koła, wlać olej do silnika i skrzyni biegów, no i zatankowałem ropę zamiast benzyny i w dodatku do zbiornika gazu ...

Rene
-
Posty: 5
Rejestracja: 04 lut 2012, 0:15
Lokalizacja: Poznań

Post autor: Rene » 24 lut 2012, 11:53

Rozumiem, że złącze K1 to potencjometr do ustawiania kontrastu.
Spróbuj wyłączyć podświetlenie - Portb.1 = 0 i zobacz czy na LCD wyświetla się spodziewany napis kręcąc potencjometrem od kontrastu.

Linia konfigurująca Lcd w bascomie cała musi być w jednej linii.
Możesz też sprawdzić na sucho po wypięciu procesora czy po podaniu 5V na rezystor R2 podświetlenie zachowuje sie w oczekiwany sposób.

Poniżej program, powinien wyświetlać i gasić napis bez podświetlenia.

$regfile = "m8def.dat"
$crystal = 8000000

Config Portc = Output
Config Portd = Input
Config Portb = Output


Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5
Config Lcd = 16 * 2

Portb.1 = 0

Do
cls
Waitms 500
Lcd "hello"
Waitms 1000
Loop
End

I tak jak kolega Dondu radzi koniecznie dorzuć kondensatory do stabilizatora. Załączanie podświetlenia i wzrost obciążenia może powodować stany przejściowe które powodują zawieszanie procesora

Spanner
Użytkownik
Posty: 364
Rejestracja: 18 lip 2010, 18:29
Lokalizacja: Bielsko biała

Post autor: Spanner » 24 lut 2012, 13:00

Witam
R1 - 10kOhm
R2 - 4,7Kohm
R3 - 24Ohm

Kwarc 8Mhz, kondki 22pF. Układ na razie zasilam z programatora, docelowo z baterii 9V - Wiec problemów być nie powinno Strone czytałem - bardzo wiele mi pomogła lecz po prostu zapomniałem o tym. Dolutowae.
1. Nie czytasz datasheetów zastosowanych elementów.
2. Podłącz prawidłowo mikrokontroler: Minimalne podłączenia mikrokontrolera
3. Regulator napięcia także niezgodnie z datasheet: Zasilanie mikrokontrolera
4. Pokazujesz schemat na którym nie ma wartości elementów - mamy wróżyć?
Od tego zacznij, a dopiero później zajmij się programem.

Czy mógłbyś powiedzieć co jeszcze jest źle podłączone?

Rene - nadal nie działa.mimo kręcenia potencjometrem uzyskuję tylko zapełnioną prostokątami górną linie zasilacza.
pozdrawiam

Awatar użytkownika
dondu
Użytkownik
Posty: 211
Rejestracja: 24 maja 2005, 9:47
Lokalizacja: Śląskie
Kontakt:

Post autor: dondu » 24 lut 2012, 13:06

Spanner pisze:Czy mógłbyś powiedzieć co jeszcze jest źle podłączone?
Załącz aktualny schemat.

Spanner
Użytkownik
Posty: 364
Rejestracja: 18 lip 2010, 18:29
Lokalizacja: Bielsko biała

Post autor: Spanner » 24 lut 2012, 13:09

Witam. Dodałem tylko dwa kondensatory na wyjściu stabilizatora - jeden 100uF oraz jeden ceramiczny 100nF. Reszta pozostała bez zmian.
pozdrawiam
spanner

Awatar użytkownika
dondu
Użytkownik
Posty: 211
Rejestracja: 24 maja 2005, 9:47
Lokalizacja: Śląskie
Kontakt:

Post autor: dondu » 24 lut 2012, 13:19

Czyli dolałeś olej do skrzyni biegów nie usuwając pozostałych problemów.

Jeżeli chcesz w elektronice coś osiągnąć, to stosuj się kompleksowo do zawartych w datasheetach informacji. Jeżeli robisz to połowicznie, to takie też efekty mieć będziesz.

Spiesząc się będziesz stał na stopniach Piekła Początkujących - tylko po co?

Przeczytaj więc jeszcze raz, dokładnie i powoli wcześniej podane przeze mnie linki i zastosuj się do nich.
Następnie popraw schemat i wrzuć tutaj.

Dopiero wtedy będę w stanie odpowiedzieć Ci na pytanie, czy od strony sprzętowej masz już wszystko OK.

Rene
-
Posty: 5
Rejestracja: 04 lut 2012, 0:15
Lokalizacja: Poznań

Post autor: Rene » 24 lut 2012, 13:29

W jaki sposób zasilasz ten układ? Z programatora ze złącza P2 ? czy przez stabilizator? Spróbuj wgrać program odłączyć prgramator i zasilić z zewnętrznego źródła przez stabilizator.

Spanner
Użytkownik
Posty: 364
Rejestracja: 18 lip 2010, 18:29
Lokalizacja: Bielsko biała

Post autor: Spanner » 24 lut 2012, 13:33

Witam. Myślę ze z połączeniami na schemacie wszystko jest już ok. Niestety nic się nie zmieniło.
na razie zasilam przez programator. Poczekajcie chwile, sprawdzę jak działa przez baterię.


Niestety zmiana źródła zasilania nie pomogła.


pozdrawiam
Załączniki
schemat.rar
(238.43 KiB) Pobrany 402 razy

Rene
-
Posty: 5
Rejestracja: 04 lut 2012, 0:15
Lokalizacja: Poznań

Post autor: Rene » 24 lut 2012, 16:39

Strasznie pokrętny ten schemat, ale wydaje się zgodny z datasheet i minimalnymi wymaganiami jakie są w linku kolegi @dondu chyba ze czegoś nie widzę. Wydaje sie ze powinno śmigać.
Przez przypadek trafiłem dziś na linka do aukcji, w której kolego sprzedawałeś płytką AVT3500??? Udało się masz ją jeszcze. Jeśli tak może tam na szybko podłącz lcd i sprawdź czy idzie?
W czym programujesz? Bascom? Jeśli tak ustaw sobie Option - Programmer - AutoVerify. Po zrzuceniu programu do kontrolera sprawdzi wtedy czy wszystko jest ok i prawidłowo wszystko przeszło.

Spanner
Użytkownik
Posty: 364
Rejestracja: 18 lip 2010, 18:29
Lokalizacja: Bielsko biała

Post autor: Spanner » 24 lut 2012, 17:52

Ten lcd jest sprawny bo kiedyś działał. Po za tym nie mam wolnej attiny by to sprawdzić.

Ale jakaś przyczyna takiego zachowania musi być. Tylko jaka?

Awatar użytkownika
Syzyf
-
Posty: 24
Rejestracja: 15 sty 2010, 10:54
Lokalizacja: Polska

Post autor: Syzyf » 24 lut 2012, 18:13

1 A jaki będzie efekt, jeśli zwiększysz czas pomiędzy włączaniem/wyłączaniem podświetlenia np. do 3 sekund (zamiast 500ms), czyli

Kod: Zaznacz cały

Do 
Wait 3 
Toggle Portb.1 
Loop 
End
2. Dlaczego rezystor R3 jest "w emiterze" tranzystora a nie w obwodzie kolektora, połączony szeregowo z diodą podświetlenia?

Spanner
Użytkownik
Posty: 364
Rejestracja: 18 lip 2010, 18:29
Lokalizacja: Bielsko biała

Post autor: Spanner » 24 lut 2012, 18:48

Pomyłka przy projektowaniu, ale działa

ODPOWIEDZ