PIC 16F627A =?ISO-8859-2?Q?wra=BFenia_i_pytanie_dotycz=B1c?=



Masz problem? Zapytaj na forum elektroda.pl

Poprzedni Następny
Wiadomość
Spis treści
From: Radek <radkowal_at_nospam_mitsoft.com.pl>
Subject: PIC 16F627A =?ISO-8859-2?Q?wra=BFenia_i_pytanie_dotycz=B1c?=
Date: Tue, 18 Apr 2006 02:19:51 +0200


Witam,

Dopadłem 16F627A jako że wydawałem mi się ten model PICa odpowiedni na
początek. Na papierze przekraczał on nawet moje potrzeby (16I/O a
zadowoliłbym się 12) ale w praktyce wyszło kilka zabawnych rzeczy.
Numer jeden problem wystąpił po kilku pierwszych programowaniach. Nie
korzystam z LVP (wyłączyłem to jak najprędzej) i planowałem przełączyć
pin z MCLR na I/O ale okazało się, że taka konfiguracja nie jest możliwa
z włączonym wewnętrznym oscylatorem? (mplab wywala warning a Piklab
program załaduje tylko później są kłopoty z rozpoznaniem układu)

Dlaczego to jest kłopot? Dlatego, że MCLR trzeba podciągnąć pod Vdd a
przy programowaniu na pin z MCLR jest podawane napięcie 12V kiedy układ
jest zasilany 5V. I teraz to komplikuje "ISP" ponieważ trzeba wstawić
zworkę lub przełącznik pomięczy MCLR oraz Vdd. A może nie przejmować się
i umieścić tylko mocniejszy rezystor (albo jeszcze lepiej diodę bo
efektywnie polaryzacja się odwróci)?

Nie chciałbym nic popalić choć jednego PICa mogę poświęcić. :)

Drugą ciekawostką są instrukcję rlf/rrf a w zasadzie, że są tylko one.
Fakt korzystania z flagi C dla efektywnie 9 bitowe shiftera jest
przydatny ale przydałby się zwykły 8 bitowy shift także.

Całe szczęście jest swapf - świetna instrukcja!



Pozdrawiam,

Radek

Poprzedni Następny
Wiadomość
Spis treści
From: "A.Grodecki" <ag.usun_to_at_nospam_modeltronik.com>
Subject: Re: PIC 16F627A =?ISO-8859-2?Q?wra=BFenia_i_pytanie_dotycz?=
Date: Tue, 18 Apr 2006 03:01:30 +0200


Radek napisał(a):
planowałem przełączyć
pin z MCLR na I/O ale okazało się, że taka konfiguracja nie jest możliwa
z włączonym wewnętrznym oscylatorem? (mplab wywala warning a Piklab
program załaduje tylko później są kłopoty z rozpoznaniem układu)

Dlaczego to jest kłopot? Dlatego, że MCLR trzeba podciągnąć pod Vdd a
przy programowaniu na pin z MCLR jest podawane napięcie 12V kiedy układ
jest zasilany 5V. I teraz to komplikuje "ISP" ponieważ trzeba wstawić
zworkę lub przełącznik pomięczy MCLR oraz Vdd. A może nie przejmować się
i umieścić tylko mocniejszy rezystor (albo jeszcze lepiej diodę bo
efektywnie polaryzacja się odwróci)?

Co toznaczy "mocniejszy rezystor"? Podciągasz MCLR do +5V przez 10k na
przykład i po krzyku. Jeśli wykorzystasz to jako wejście, to nie może
ono wymusić stanu niskiego podczas programowania. Zdodnie z aplikacją ICD.

--

Pozdrawiam,

A. Grodecki

"Wszystkie zwierzęta sa równe.
Ale te, które mają futerko w trzykolorowe pasy, są równiejsze."

Poprzedni Następny
Wiadomość
Spis treści
From: Adam Jurkiewicz <sword_at_nospam_wywalic.ajpic.zonk.pl>
Subject: Re: PIC 16F627A =?ISO-8859-2?Q?wra=BFenia_i_pytanie_dotycz?=
Date: Wed, 19 Apr 2006 16:45:41 +0200



Radek wrote:

Dlaczego to jest kłopot? Dlatego, że MCLR trzeba podciągnąć pod Vdd a
przy programowaniu na pin z MCLR jest podawane napięcie 12V kiedy układ
jest zasilany 5V. I teraz to komplikuje "ISP" ponieważ trzeba wstawić
zworkę lub przełącznik pomięczy MCLR oraz Vdd. A może nie przejmować się
i umieścić tylko mocniejszy rezystor (albo jeszcze lepiej diodę bo
efektywnie polaryzacja się odwróci)?

Nie chciałbym nic popalić choć jednego PICa mogę poświęcić. :)

Wątek przeczytałem i widzę, że nie do końca łapiecie dlaczego tak
się dzieje. Ostrzeżenia MPLABa są jak najbardziej poprawne i nie
ma to związku z bugami w krzemie. Wszystko rozchodzi się o warunki
wejścia w tryb programowania.

Wystawienie na MCLR napięcia Vpp wcale nie wystarcza do wejścia
w ten tryb, dodatkowym warunkiem jest utrzymywanie portów DATA
i CLOCK w stanie "0".

Jeśli procesor pracuje na wewnętrznym oscylatorze i ma dodatkowo
wyłączony zewnętrzny MCLR to programator nie jest w stanie zatrzymać
procesora. Poprawny sygnał powinien być ("H") -> "0" -> Vpp
Przy powyższym układzie sygnał "0" nie dotrze do układu resetu
bo jest odciety, a będzie to tylko "H" -> Vpp. Jeśli w tym
czasie procesor generuje jakieś sygnały na DATA i CLOCK i w danym
momencie pojawi się tam jakaś "1" to wystawienie sygnały Vpp
nic nie daje i procesor nie wchodzi w tryb programowania.

Procesor w takim stanie wcale się nie zatrzaskuje tylko wymaga
poprawnego wystawienia sygnałów. Najprostszym rozwiązaniem
w tej sytuacji jest podanie napięcia tylko podczas programowania.
Procesor nie zdąży wtedy wystartować i bez problemów wejdzie
w tryb programowania.

Dodatkowym warunkiem na wejście w tryb programowania jest
wystawienie stromego zbocza "0" -> Vpp na MCLR z tych samych
powodów - aby procesor przechodząc przez poziom "H" nie zdążył
wystartować. Szczególnie ważne jest to przy oscylatorach RC,
które bardzo szybko startują w porównaniu do kwarcu.

No i ostatnia rzecz związana z powyższym, jeśli na MCLR
"wisi" jakieś RC do opóźniania startu trzeba zastosować
diodę separującą, żeby kondensator nie "zepsuł" tego
zbocza. Alternatywnie zamiast diody można zastosować
układ rezystorowy opisany w pdfie o ICSP.

Samą sekwencją programującą nie da się ubić procesora jeśli nie
wystąpiły jakieś niezależne czynniki zewnętrzne.

Pozdrawiam,
sword

--
e-mail: sword_at_nospam_wywalic.ajpic.zonk.pl
www: http://ajpic.zonk.pl/
gg#: 1781804

Poprzedni Następny
Wiadomość
Spis treści
From: "A.Grodecki" <brak_at_nospam_adresu.com>
Subject: Re: PIC 16F627A =?ISO-8859-2?Q?wra=BFenia_i_pytanie_dotycz?=
Date: Thu, 20 Apr 2006 12:57:28 +0200


Adam Jurkiewicz napisał(a):

Wystawienie na MCLR napięcia Vpp wcale nie wystarcza do wejścia
w ten tryb, dodatkowym warunkiem jest utrzymywanie portów DATA
i CLOCK w stanie "0".

Dzięki za informację, nigdzie tego nie doczytałem, że w tym samym
momencie muszą być zera. Podejrzewałem coś takiego, ale tylko tyle.

--

Pozdrawiam,

A. Grodecki

"Wszystkie zwierzęta sa równe.
Ale te, które mają futerko w trzykolorowe pasy, są równiejsze."

Poprzedni Następny
Wiadomość
Spis treści
From: "szlovak" <adamkxBEZx_at_nospam_o2.pl>
Subject: Re: PIC 16F627A =?iso-8859-2?Q?wra=BFenia_i_pytanie_dotycz=B1c_e_napi=EA=E6_na_MCLR/VDD?=
Date: Tue, 18 Apr 2006 06:55:36 +0000 (UTC)


Radek wrote:


korzystam z LVP (wyłączyłem to jak najprędzej) i planowałem przełączyć
pin z MCLR na I/O ale okazało się, że taka konfiguracja nie jest możliwa
z włączonym wewnętrznym oscylatorem? (mplab wywala warning a Piklab
program załaduje tylko później są kłopoty z rozpoznaniem układu)


nie, problemów nie ma. Dostałeś jakiegoś warninga, ale na pewno nie takiego że nie można mieć tego pinu jako wejście, bo to nie ma nic wspólnego z INTOSC

Dlaczego to jest kłopot? Dlatego, że MCLR trzeba podciągnąć pod Vdd a
przy programowaniu na pin z MCLR jest podawane napięcie 12V kiedy układ
jest zasilany 5V. I teraz to komplikuje "ISP" ponieważ trzeba wstawić
zworkę lub przełącznik pomięczy MCLR oraz Vdd. A może nie przejmować się
i umieścić tylko mocniejszy rezystor (albo jeszcze lepiej diodę bo efektywnie polaryzacja się odwróci)?


jak zrobisz wejście zamiast mclr to resetu nie potrzeba bo niby reset czego? :-) . A jeśli chcesz mieć reset to najprostszy to dwa oporniki i kondensator

Nie chciałbym nic popalić choć jednego PICa mogę poświęcić. :)


spoko, nie popalisz

Drugą ciekawostką są instrukcję rlf/rrf a w zasadzie, że są tylko one.
Fakt korzystania z flagi C dla efektywnie 9 bitowe shiftera jest
przydatny ale przydałby się zwykły 8 bitowy shift także.

więc po rlf zrób bcf status,c , a jeśli C potrzebujesz później do czegoś to go przechowaj

Całe szczęście jest swapf - świetna instrukcja!


no czasem się przydaje ale nie czesto


pzdr.



--


Poprzedni Następny
Wiadomość
Spis treści
From: "A.Grodecki" <ag.usun_to_at_nospam_modeltronik.com>
Subject: Re: PIC 16F627A =?ISO-8859-2?Q?wra=BFenia_i_pytanie_dotycz?=
Date: Tue, 18 Apr 2006 14:14:14 +0200


szlovak napisał(a):

nie, problemów nie ma. Dostałeś jakiegoś warninga, ale na pewno nie takiego że nie można mieć tego pinu jako wejście, bo to nie ma nic wspólnego z INTOSC

A skąd to wiesz? Moze mieć jakąś zależność sprzętową lub błąd sprzętowy
z którego ona wynika.
Błędów w procesorkach nie brakuje i nie brakuje ich w samym Mplabie.
Warningi trzeba czytać i zastanawiać się z czego wynikają, to dobry zwyczaj.


Nie chciałbym nic popalić choć jednego PICa mogę poświęcić. :)

spoko, nie popalisz

W ten sposób nie, ale bardzo łatwo załatwić procesor programatorem ICD,
jeśli się do tego bezmyślnie zabrać. I potem taki procesor może
"działywać", gubić dane, przekłamywać licznik rozkazów...

--

Pozdrawiam,

A. Grodecki

"Wszystkie zwierzęta sa równe.
Ale te, które mają futerko w trzykolorowe pasy, są równiejsze."

Poprzedni Następny
Wiadomość
Spis treści
From: Radek <radkowal_at_nospam_mitsoft.com.pl>
Subject: Re: PIC 16F627A =?ISO-8859-2?Q?wra=BFenia_i_pytanie_dotycz?=
Date: Tue, 18 Apr 2006 15:32:04 +0200


A.Grodecki napisał(a):
szlovak napisał(a):

nie, problemów nie ma. Dostałeś jakiegoś warninga, ale na pewno nie
takiego że nie można mieć tego pinu jako wejście, bo to nie ma nic
wspólnego z INTOSC


A skąd to wiesz? Moze mieć jakąś zależność sprzętową lub błąd sprzętowy
z którego ona wynika.
Błędów w procesorkach nie brakuje i nie brakuje ich w samym Mplabie.
Warningi trzeba czytać i zastanawiać się z czego wynikają, to dobry
zwyczaj.

OK - doszedłem z czego wynikał problem i dlaczego czasami się pojawiał a
czasami nie (kłopot z reprogramowaniem).

Tekst warninga:
"ICDWarn0033: MPLAB ICD 2 does not support programming this device if
both the internal oscillator and internal MCLR are selected. You may
continue programming, but you are encouraged to cancel, reconfigure your
device, and try again."

Po dalszej lekturze - chodzi o to, że 12V nie jest odrazu podłączone
do pinu z MCLR/VPP. Przez chwilę procesor będzie wykonywał normalny kod
i może zapisać coś do pinów clock i data co może zablokować możliwość
komunikacji z programatorem.

Związek z użyciem wewnętrznego oscylatora jest taki, że używając
zewnętrznego ma się gwarancję, że cpu nie wykona żadnej instrukcji przed
pojawieniem się 12V na Vpp więc nie ma możliwości zablokowania pinów
PGD/PGC.

W sumie to logiczne choć upierdliwe - można więc zaprogramować układ tak
aby działał z wewnętrznym MCLR i oscylatorem ale mogą się pojawić
kłopoty z ponownym programowaniem. Całe szczęście dało się odblokować po
którejś próbie z kolei te 3 kości jakie zapaćkałem w ten sposób.

Nie chciałbym nic popalić choć jednego PICa mogę poświęcić. :)


spoko, nie popalisz


W ten sposób nie, ale bardzo łatwo załatwić procesor programatorem ICD,
jeśli się do tego bezmyślnie zabrać. I potem taki procesor może
"działywać", gubić dane, przekłamywać licznik rozkazów...

Mój dylemat polega na tym, że MCLR trzeba podciągnąć do Vdd i teraz jak
to zrobić aby nie było jakiś cyrków przy programowaniu w układzie po
podłączenia napięcia 12V do tego pinu. Rozumiem, że zwykły rezystor 10k
w zupełności wystarczy i nie będzie żadnych kłopotów z programowaniem
"ISP". Dotychczas robiłem to przy użyciu odpowiedniego adaptora i
gniazdka ale ciągłe wyjmowanie/wsadzanie scalaków robi się już nudne. :)


Pozdrawiam,

Radek

Poprzedni Następny
Wiadomość
Spis treści
From: "A.Grodecki" <ag.usun_to_at_nospam_modeltronik.com>
Subject: Re: PIC 16F627A =?ISO-8859-2?Q?wra=BFenia_i_pytanie_dotycz?=
Date: Tue, 18 Apr 2006 17:36:45 +0200


Radek napisał(a):

Związek z użyciem wewnętrznego oscylatora jest taki, że używając
zewnętrznego ma się gwarancję, że cpu nie wykona żadnej instrukcji przed
pojawieniem się 12V na Vpp więc nie ma możliwości zablokowania pinów
PGD/PGC.

Ja nie rozumiem dlaczego niby tak by miało być.
Normalne jest, że dane i zegar ICD sa uzywane do innych funkcji niż
tylko programowanie. I po pojawieniu sie podwyższonego napięcia na MCLR
te piny są zwalniane dla ICD.
Mozliwe że po prostu w tym konkretnym scalaku coś jest skopane w
strukturze i stąd ostrzeżenie. MOze bierze się to stąd, że wcześniejsze
wersje tych układów nie miały możliwości współpracy z ICD i
implementacja funkcji jest mnoieco inna niż w układach które miały ICD
od początku.

Mój dylemat polega na tym, że MCLR trzeba podciągnąć do Vdd i teraz jak
to zrobić aby nie było jakiś cyrków przy programowaniu w układzie po
podłączenia napięcia 12V do tego pinu.

A dlaczego miałby być jakikolwiek "cyrk". Ile prądu popłynie przez 10k?
0.7mA niec nie zmieni w zasilanu układu na linii 5V.
A że trzeba pamiętać, aby odpowiednio używać linii ICD w przcującym
układzie... no trudno - coś za coś.

--

Pozdrawiam,

A. Grodecki

"Wszystkie zwierzęta sa równe.
Ale te, które mają futerko w trzykolorowe pasy, są równiejsze."

Poprzedni Następny
Wiadomość
Spis treści
From: Radek <radkowal_at_nospam_mitsoft.com.pl>
Subject: Re: PIC 16F627A =?ISO-8859-2?Q?wra=BFenia_i_pytanie_dotycz?=
Date: Tue, 18 Apr 2006 17:39:46 +0200


Związek z użyciem wewnętrznego oscylatora jest taki, że używając
zewnętrznego ma się gwarancję, że cpu nie wykona żadnej instrukcji
przed pojawieniem się 12V na Vpp więc nie ma możliwości zablokowania
pinów PGD/PGC.


Ja nie rozumiem dlaczego niby tak by miało być.
Normalne jest, że dane i zegar ICD sa uzywane do innych funkcji niż
tylko programowanie. I po pojawieniu sie podwyższonego napięcia na MCLR
te piny są zwalniane dla ICD.
Mozliwe że po prostu w tym konkretnym scalaku coś jest skopane w
strukturze i stąd ostrzeżenie. MOze bierze się to stąd, że wcześniejsze
wersje tych układów nie miały możliwości współpracy z ICD i
implementacja funkcji jest mnoieco inna niż w układach które miały ICD
od początku.

To może zacytuje z dokumentacji MPLABa:

"ICDWarn0033: You have selected Internal MCLR and Internal Oscillator in
your configuration settings. If your code makes use of port pins that
correspond to Clock and Data pins in programming mode, you may not be
able to reprogram your device. See on-line help for this warning for
more information. (OK/Cancel)

When Internal MCLR is used with MPLAB ICD 2 for programming, both Vpp
and Vdd are powered together, and then Vpp is pulled high to Vihh to
enter programming mode. This means that your code will be running before
Vpp goes to Vihh. If that code makes use of port pins that correspond to
Clock and Data pins in programming mode, there is a chance their values
may not be 0, as necessary to enter programming mode. Therefore, the
device could not be reprogrammed."

Feature, bug a może coś jeszcze?

Biorąc jednak pod uwagę to, że daje się odblokować scalak po kilku
próbach i zaprogramować "normalnie" imho jest to problem w
oprogramowaniu MPLABa (i innym). Po prostu 16F627A wymaga nieco innej
procedury przy tym, może poprawią to kolejnej wersji?

Mój dylemat polega na tym, że MCLR trzeba podciągnąć do Vdd i teraz
jak to zrobić aby nie było jakiś cyrków przy programowaniu w układzie
po podłączenia napięcia 12V do tego pinu.


A dlaczego miałby być jakikolwiek "cyrk". Ile prądu popłynie przez 10k?
0.7mA niec nie zmieni w zasilanu układu na linii 5V.
A że trzeba pamiętać, aby odpowiednio używać linii ICD w przcującym
układzie... no trudno - coś za coś.

Też tak sądziłem ale wolałem się zapytać. :)
(bo doświadczeniach jakie opisałem okazało się, że bardzo drobne
szczegóły mają jednak znaczenie)


Pozdrawiam,

Radek

Poprzedni Następny
Wiadomość
Spis treści
From: "A.Grodecki" <ag.usun_to_at_nospam_modeltronik.com>
Subject: Re: PIC 16F627A =?ISO-8859-2?Q?wra=BFenia_i_pytanie_dotycz?=
Date: Tue, 18 Apr 2006 18:21:32 +0200


Radek napisał(a):

To może zacytuje z dokumentacji MPLABa:
...

To wydaje się potwierdzać moją teorię.

I prosty jest na to sposób - trzymać piny jakiś czas w bezpiecznym
stanie po resecie.

Biorąc jednak pod uwagę to, że daje się odblokować scalak po kilku
próbach i zaprogramować "normalnie" imho jest to problem w
oprogramowaniu MPLABa (i innym). Po prostu 16F627A wymaga nieco innej
procedury przy tym, może poprawią to kolejnej wersji?

Bardzo wiele jest układów które nmają nieco inny tryb programowania
przez co ICD2 musi przeładować sobie soft. Dlatego mam 2, żeby nie robić
tego zbyt często (używam bardzo różnych procesorów, nawet w jednym
projekcie).

A dlaczego miałby być jakikolwiek "cyrk". Ile prądu popłynie przez
10k? 0.7mA niec nie zmieni w zasilanu układu na linii 5V.
A że trzeba pamiętać, aby odpowiednio używać linii ICD w przcującym
układzie... no trudno - coś za coś.

Też tak sądziłem ale wolałem się zapytać. :)
(bo doświadczeniach jakie opisałem okazało się, że bardzo drobne
szczegóły mają jednak znaczenie)

Święte słowa.

Jeśli nie grodzi złapaniem zakłóceń, możesz na ten pin dać większy
opornik niż 10k, np 47k. Zobacz w specyfikacji jaki jest prąd
polaryzacji tego wejścia.

--

Pozdrawiam,

A. Grodecki

"Wszystkie zwierzęta sa równe.
Ale te, które mają futerko w trzykolorowe pasy, są równiejsze."

Poprzedni Następny
Wiadomość
Spis treści
From: Gregor <pij_at_nospam_wiecej.piwa.a.nie.spamuj.pl>
Subject: =?ISO-8859-2?Q?Re=3A=20PIC=2016F627A=20wra=BFenia=20i=20pytanie=20dotycz=20=B1?= =?ISO-8859-2?Q?c=20e=20napi=EA=E6=20na=20MCLR=2FVDD?=
Date: Tue, 18 Apr 2006 20:55:09 +0200


Radek napisal:

Biorąc jednak pod uwagę to, że daje się odblokować scalak po kilku
próbach i zaprogramować "normalnie" imho jest to problem w
oprogramowaniu MPLABa (i innym). Po prostu 16F627A wymaga nieco innej
procedury przy tym, może poprawią to kolejnej wersji?

IMHO jest to faktycznie blad w oprogramowaniu programatora. Uzywalem
16f627 skonfigurowanego na wewnetrzny oscylator i wejscie na lini MCLR
z "samorobnym" programatorkiem (bufor na ls244 AFAIR) i programem "picprog"
pod linuksa. Program przy kazdym starcie testowal czy hardware jest podlaczone
i jesli tak skonfigurowany procesor byl w zlaczu stwierdzal ze programotor jest
niepodlaczony lub zepsuty. Wystarczalo przeczekac testowanie i wetkac proc pozniej.
Przypuszczlnie ICD jest zbyt "inteligentne" i niepotrzebnie przejmuje sie
tym co proc wyrabia pomimo uaktywnienie MCLR :)
GRG



Poprzedni Następny
Wiadomość
Spis treści
From: "szlovak" <adamkxBEZx_at_nospam_o2.pl>
Subject: Re: PIC 16F627A =?iso-8859-2?Q?wra=BFenia_i_pytanie_dotycz_=B1c_e_napi=EA=E6_na_MCLR/VDD?=
Date: Tue, 18 Apr 2006 14:08:53 +0000 (UTC)


A.Grodecki wrote:

szlovak napisał(a):

nie, problemów nie ma. Dostałeś jakiegoś warninga, ale na pewno nie
takiego że nie można mieć tego pinu jako wejście, bo to nie ma nic
wspólnego z INTOSC

A skąd to wiesz? Moze mieć jakąś zależność sprzętową lub błąd
sprzętowy z którego ona wynika. Błędów w procesorkach nie brakuje i
nie brakuje ich w samym Mplabie. Warningi trzeba czytać i
zastanawiać się z czego wynikają, to dobry zwyczaj.


Na pewno nie w tak prostych procesorach. Co innego dsPIC, troche błędów
niektóre mają.


Nie chciałbym nic popalić choć jednego PICa mogę poświęcić. :)

spoko, nie popalisz

W ten sposób nie, ale bardzo łatwo załatwić procesor programatorem
ICD, jeśli się do tego bezmyślnie zabrać. I potem taki procesor może
"działywać", gubić dane, przekłamywać licznik rozkazów...

Jak niby można załatwić procesor programatorem? Chyba że źle
działającym, oprócz niektórych procesorów z literą J których nie można
programowac bez kasowania to nie wiem o co Tobie chodzi. Nigdy nie
miałem żadnych problemów ze wszystkimi procesorami tj. pic10f200,
12f508, 16f84a, 16f628, 16f877, 16f877a, 16f872. A jak były komplikacje
to jak zwykle przez moje niedopatrzenia.

łatwo można załatwić programatorem Atmele, z tym się moge zgodzić

--


Poprzedni Następny
Wiadomość
Spis treści
From: "A.Grodecki" <ag.usun_to_at_nospam_modeltronik.com>
Subject: Re: PIC 16F627A =?ISO-8859-2?Q?wra=BFenia_i_pytanie_dotycz?=
Date: Tue, 18 Apr 2006 17:45:33 +0200


szlovak napisał(a):

Błędów w procesorkach nie brakuje i
nie brakuje ich w samym Mplabie. Warningi trzeba czytać i
zastanawiać się z czego wynikają, to dobry zwyczaj.

Na pewno nie w tak prostych procesorach. Co innego dsPIC, troche błędów
niektóre mają.

Na pewno co? Erraty jakieś czytałeś?

Jak niby można załatwić procesor programatorem? Chyba że źle
działającym, oprócz niektórych procesorów z literą J których nie można
programowac bez kasowania to nie wiem o co Tobie chodzi. Nigdy nie
miałem żadnych problemów ze wszystkimi procesorami tj. pic10f200,
12f508, 16f84a, 16f628, 16f877, 16f877a, 16f872. A jak były komplikacje
to jak zwykle przez moje niedopatrzenia.

No właśnie o tym mówię - niedopatrzeniach. Np chwilowy brak kontaktu na
złączu icd przy programowaniu z zasilaniem przez icd. Albo jakiś upływ
do sieci przez niskiej jakości zasilacz impulsowy, albo impuls po petli
masy przez programator... Wiele przyczyn których zabezpieczenia
struktury nie wytrzymają.
Załatwiłem kilka PIC-ów w swoim życiu i wszystkie podczas programowania.
A używałem wyłącznie Picstarta, ICD i ICD2, których mam 2 sztuki.
ICD2 też zresztą można rozwalić przy odrobinie pecha, programując w
warunkach bojowych

--

Pozdrawiam,

A. Grodecki

"Wszystkie zwierzęta sa równe.
Ale te, które mają futerko w trzykolorowe pasy, są równiejsze."

Poprzedni Następny
Wiadomość
Spis treści
From: "szlovak" <adamkxBEZx_at_nospam_o2.pl>
Subject: Re: PIC 16F627A =?iso-8859-2?Q?wra=BFenia_i_pytanie_dotycz__=B1c_e_napi=EA=E6_na_MCLR/VDD?=
Date: Tue, 18 Apr 2006 19:20:54 +0000 (UTC)


A.Grodecki wrote:

szlovak napisał(a):

Błędów w procesorkach nie brakuje i
nie brakuje ich w samym Mplabie. Warningi trzeba czytać i
zastanawiać się z czego wynikają, to dobry zwyczaj.

Na pewno nie w tak prostych procesorach. Co innego dsPIC, troche
błędów niektóre mają.

Na pewno co? Erraty jakieś czytałeś?

dokładnie, errate któregoś dsPICa


No właśnie o tym mówię - niedopatrzeniach. Np chwilowy brak kontaktu
na złączu icd przy programowaniu z zasilaniem przez icd. Albo jakiś
upływ do sieci przez niskiej jakości zasilacz impulsowy, albo impuls
po petli masy przez programator... Wiele przyczyn których
zabezpieczenia struktury nie wytrzymają. Załatwiłem kilka PIC-ów w
swoim życiu i wszystkie podczas programowania. A używałem wyłącznie
Picstarta, ICD i ICD2, których mam 2 sztuki. ICD2 też zresztą można
rozwalić przy odrobinie pecha, programując w warunkach bojowych

Miałem na myśli niedopatrzenia które powodowały inny błąd, a nie
uszkodzenie procesora.

No to jesteś pechowy, ja używałem JDM z zasilaniem własnym i ICD2 i
tych cykli programowania było bardzo dużo i nadal wszystko działa.
Jedyne co mi się zjarało to włożona na odwrót pamięć 24c64.

--


Poprzedni Następny
Wiadomość
Spis treści
From: "A.Grodecki" <ag.usun_to_at_nospam_modeltronik.com>
Subject: Re: PIC 16F627A =?ISO-8859-2?Q?wra=BFenia_i_pytanie_dotycz?=
Date: Tue, 18 Apr 2006 21:44:49 +0200


szlovak napisał(a):

Na pewno co? Erraty jakieś czytałeś?

dokładnie, errate któregoś dsPICa

Nie tylko dspise mają erraty, wszystkie inne też.

No właśnie o tym mówię - niedopatrzeniach. Np chwilowy brak kontaktu
na złączu icd przy programowaniu z zasilaniem przez icd. Albo jakiś
upływ do sieci przez niskiej jakości zasilacz impulsowy, albo impuls
po petli masy przez programator... Wiele przyczyn których
zabezpieczenia struktury nie wytrzymają. Załatwiłem kilka PIC-ów w
swoim życiu i wszystkie podczas programowania. A używałem wyłącznie
Picstarta, ICD i ICD2, których mam 2 sztuki. ICD2 też zresztą można
rozwalić przy odrobinie pecha, programując w warunkach bojowych


Miałem na myśli niedopatrzenia które powodowały inny błąd, a nie
uszkodzenie procesora.

No to jesteś pechowy, ja używałem JDM z zasilaniem własnym i ICD2 i
tych cykli programowania było bardzo dużo i nadal wszystko działa.
Jedyne co mi się zjarało to włożona na odwrót pamięć 24c64.

Ja tego nie postrzegam jako pech. Klips ma prawo nie zakontaktować na
układzie SOIC na przykład, albo na złączy krawedziowym, co innego jeśli
jest złącze szpilkowe. Raz na kilkaset operacji coś się ma prawo
zdarzyć, szczególnie jeśli często chodzi o prototypowe konstrukcje
zamontowane w środowisku przemysłowym.

--

Pozdrawiam,

A. Grodecki

"Wszystkie zwierzęta sa równe.
Ale te, które mają futerko w trzykolorowe pasy, są równiejsze."

Poprzedni Następny
Wiadomość
Spis treści
From: Adam Jurkiewicz <sword_at_nospam_wywalic.ajpic.zonk.pl>
Subject: Re: PIC 16F627A =?ISO-8859-2?Q?wra=BFenia_i_pytanie_dotycz?=
Date: Wed, 19 Apr 2006 16:27:03 +0200


A.Grodecki wrote:

ICD2 też zresztą można rozwalić przy odrobinie pecha, programując w
warunkach bojowych

W starszych wersjach ICD2 ubijały się nagminnie bufory wyjściowe,
naprawiałem tego na kilogramy. Nawet nie trzeba się było zbytnio
starać ;)

Pozdrawiam,
sword

--
e-mail: sword_at_nospam_wywalic.ajpic.zonk.pl
www: http://ajpic.zonk.pl/
gg#: 1781804

Poprzedni Następny
Wiadomość
Spis treści
From: Radek <radkowal_at_nospam_mitsoft.com.pl>
Subject: Re: PIC 16F627A =?ISO-8859-2?Q?wra=BFenia_i_pytanie_dotycz?=
Date: Tue, 18 Apr 2006 16:00:00 +0200


Drugą ciekawostką są instrukcję rlf/rrf a w zasadzie, że są tylko one.
Fakt korzystania z flagi C dla efektywnie 9 bitowe shiftera jest
przydatny ale przydałby się zwykły 8 bitowy shift także.


więc po rlf zrób bcf status,c , a jeśli C potrzebujesz później do czegoś to go przechowaj

To jest shift logiczny a ja chcę 8 bitowy "barrel shifter". :)
Więc trzeba najpierw bcf C/btfsc (skrajny bit)/bsf C i dopiero rlf/rrf.
4 instrukcję zamiast 1... :))


Całe szczęście jest swapf - świetna instrukcja!



no czasem się przydaje ale nie czesto

Mi się już swapf przydał bo zredukował 4 x rrf + movlw/andwf właśnie do
1 x swapf. :)


Pozdrawiam,

Radek

Poprzedni Następny
Wiadomość
Spis treści
From: Radek <radkowal_at_nospam_mitsoft.com.pl>
Subject: Re: PIC 16F627A =?ISO-8859-2?Q?wra=BFenia_i_pytanie_dotycz?=
Date: Tue, 18 Apr 2006 16:03:48 +0200


Całe szczęście jest swapf - świetna instrukcja!



no czasem się przydaje ale nie czesto


Mi się już swapf przydał bo zredukował 4 x rrf + movlw/andwf właśnie do
1 x swapf. :)

Ciągle plus movlw/andwf ale i tak to zysk. :)


Pozdrawiam,

Radek

Poprzedni Następny
Wiadomość
Spis treści
From: Adam Jurkiewicz <sword_at_nospam_wywalic.ajpic.zonk.pl>
Subject: Re: PIC 16F627A =?ISO-8859-2?Q?wra=BFenia_i_pytanie_dotycz?=
Date: Wed, 19 Apr 2006 16:23:50 +0200


Radek wrote:
To jest shift logiczny a ja chcę 8 bitowy "barrel shifter". :)
Więc trzeba najpierw bcf C/btfsc (skrajny bit)/bsf C i dopiero rlf/rrf.
4 instrukcję zamiast 1... :))

Przesuwanie bez Carry robi się w 2 cyklach a nie w 4 ;)

rlf ZMIENNA, W
rlf ZMIENNA, F

sword

--
e-mail: sword_at_nospam_wywalic.ajpic.zonk.pl
www: http://ajpic.zonk.pl/
gg#: 1781804

Poprzedni Następny
Wiadomość
Spis treści
From: Radek <radkowal_at_nospam_mitsoft.com.pl>
Subject: Re: PIC 16F627A =?ISO-8859-2?Q?wra=BFenia_i_pytanie_dotycz?=
Date: Wed, 19 Apr 2006 17:44:11 +0200


Przesuwanie bez Carry robi się w 2 cyklach a nie w 4 ;)

rlf ZMIENNA, W
rlf ZMIENNA, F

Sprytne a ja jak zwykle przekombinowałem... ;)


Pozdrawiam,

Radek