Odczytywanie stanu BUSY z LCD Hitachi ? jak prawidłowo kontrolować E?
Stan BUSY w LCD z kontrolerem Hitatchi
From: pos__at_nospam_poczta.onet.pl
Subject: Stan BUSY w LCD z kontrolerem Hitatchi
Date: Tue, 08 Feb 2000 00:52:09 +0100
Witam!
Jak odczytać BUSY w LCD?
tzn. wiem że trzeba dać komendę RS=0;R/!W=1 i bit 7 to BusyFlag, ale
czy wystarczy wystawić jw. i RAZ "mignąć" E czy trzeba migać E i za
każdym razem sprawdzać czy "to już" ;->
mam coś takiego:
BUSYWAIT:
ANL P1,#11111000B ;zerowanie E,RS,RW (1.2-RS 1.1-rw 1.0-E)
ORL P1,#00000011B ;SET RW + E
NOP
ANL P1,#11111110B ;CLR E
JB P2.7,$ ;BUSY
ANL P1,#11111000B ;CLR E,RS,RW
RET
było też tak:
BUSYWAIT:
ANL P1,#11111010B ;RW=1 RS,E=0
JESZCZERAZ:
ORL P1,#00000001B ;SET E
NOP
ANL P1,#11111110B ;CLR E
JB P2.7,JESZCZERAZ ;BUSY
ANL P1,#11111000B ;CLR E,RS,RW
RET
a może to się wogóle innaczej sprawdza...
TIA
--
POSdrawiam GCS/IT/MC d- s: a18>? C++>++++ !U !L ?E
W++(+) N++(+++) !o ?K w(--) !O !M !V PS(+)
P.O.S. PE Y+ PGP+ t- 5 X+ !R tv+() b-(+) !DI
Bartłomiej Molawka D+++ G(+) e h! r-- y(--)>+
pos__at_nospam_poczta.onet.pl ICQ#:15695665 PGP:0x08D79191
From: "Wojtek Sujkowski" <wpsujkowski_at_nospam_qdnet.pl>
Subject: Re: Stan BUSY w LCD z kontrolerem Hitatchi
Date: Tue, 8 Feb 2000 08:47:13 +0100
pos__at_nospam_poczta.onet.pl napisał(a) w wiadomo?ci:
<2cl99s8rvmk5a7ju9a75f7odhvgbi5kiv7_at_nospam_4ax.com>...
Witam!
Jak odczytać BUSY w LCD?
<ciach>
RTFM
Wojtek
From: "Henry(k)" <Henryk_K_at_nospam_poczta.onet.pl>
Subject: Re: Stan BUSY w LCD z kontrolerem Hitatchi
Date: Tue, 08 Feb 2000 10:04:11 GMT
Wojtek Sujkowski napisał(a) w wiadomości: <389fc5e4.0_at_nospam_news.qdnet.pl>...
pos__at_nospam_poczta.onet.pl napisał(a) w wiadomo?ci:
<2cl99s8rvmk5a7ju9a75f7odhvgbi5kiv7_at_nospam_4ax.com>...
Witam!
Jak odczytać BUSY w LCD?
<ciach>
RTFM
Wojtek
Z tym RTFM jest różnie, pięknie się czyta ale mój wyświetlacz
za chiny ludowe nie chciał wystawić bitu Busy i program
szczekał na niewiemco. Musiałem wstawić po prostu
pętelki czasowe.
Henry(k)
From: "Wojtek Sujkowski" <wpsujkowski_at_nospam_qdnet.pl>
Subject: Re: Stan BUSY w LCD z kontrolerem Hitatchi
Date: Tue, 8 Feb 2000 15:55:53 +0100
Henry(k) napisał(a) w wiadomości: ...
Z tym RTFM jest różnie, pięknie się czyta ale mój wy?wietlacz
za chiny ludowe nie chciał wystawić bitu Busy i program
szczekał na niewiemco. Musiałem wstawić po prostu
pętelki czasowe.
Henry(k)
Przy sprawdzaniu bitu BUSY trzeba go probkowac a nie czytac w sposob ciagly,
tzn. jesli jest BUSY to trzeba "odpuscic" E(nable), mozna odczekac troche
(ale niekoniecznie) i ponownie wystawic E i sprawdzac czy dalej BUSY. Przy
aktywnym E(nable) bit BUSY nigdy sie nie zmieni i rzeczywiscie mozna czekac
do "usranej smierci" !! Poza tym wszyscy producenci LCD z uC Hitachi
zalecaja aby po wlaczeniu zasilania czekac 15-30 ms (zaleznie od producenta)
i dopiero wtedy mozna sprawdzac BUSY.
Jest jeszcze jeden punkt: wg datasheet'ow dopuszczalne opoznienie pojawienia
sie danych na szynie po rosnacym zboczu E (przy czytaniu z wyswietlacza)
wynosi 320ns co dla szybkich prockow jest na tyle dlugim czasem, ze trzeba
wstawiac NOPy miedzy wystawieniem E a czytaniem danych (BUSY). Nie wszyscy
zwracaja na to uwage i efekty moga byc przerozne.
Wszystko co napisalem powyzej JEST w danych technicznych wysw. LCD - trzeba
tylko je starannie czytac.
Pozdrawiam,
Wojtek
From: "Henry(k)" <Henryk_K_at_nospam_poczta.onet.pl>
Subject: Re: Stan BUSY w LCD z kontrolerem Hitatchi
Date: Wed, 09 Feb 2000 06:20:10 GMT
Wojtek Sujkowski napisał(a) w wiadomości: <38a02d48.0_at_nospam_news.qdnet.pl>...
Henry(k) napisał(a) w wiadomości: ...
Z tym RTFM jest różnie, pięknie się czyta ale mój wy?wietlacz
za chiny ludowe nie chciał wystawić bitu Busy i program
szczekał na niewiemco. Musiałem wstawić po prostu
pętelki czasowe.
Henry(k)
Przy sprawdzaniu bitu BUSY trzeba go probkowac a nie czytac w sposob
ciagly,
tzn. jesli jest BUSY to trzeba "odpuscic" E(nable), mozna odczekac troche
(ale niekoniecznie) i ponownie wystawic E i sprawdzac czy dalej BUSY. Przy
aktywnym E(nable) bit BUSY nigdy sie nie zmieni i rzeczywiscie mozna czekac
do "usranej smierci" ........
.......
Pozdrawiam,
Wojtek
A wiesz, może i masz rację, chyba nie próbkowało bitu Busy i stąd bigos.
Sprawdzę w domciu.
Pozdrowionka
Henry(k)
From: Grzegorz Redlarski <gred_at_nospam_kki.net.pl>
Subject: Re: Stan BUSY w LCD z kontrolerem Hitatchi
Date: Wed, 09 Feb 2000 23:35:50 +0100
Tue, 8 Feb 2000 15:55:53 +0100 "Wojtek Sujkowski"
<wpsujkowski_at_nospam_qdnet.pl> napisal(a):
Jest jeszcze jeden punkt: wg datasheet'ow dopuszczalne opoznienie pojawienia
sie danych na szynie po rosnacym zboczu E (przy czytaniu z wyswietlacza)
wynosi 320ns co dla szybkich prockow jest na tyle dlugim czasem, ze trzeba
wstawiac NOPy miedzy wystawieniem E a czytaniem danych (BUSY). Nie wszyscy
zwracaja na to uwage i efekty moga byc przerozne.
Z tego tez powodu moze byc duzy problem z umieszczeniem LCD w obszarze
RAM procesora. Jesli procek ma osobny I/O to trzeba pamietac aby
odpowiedni wait-state ustawic.
gr
From: Romuald Bialy <romekb_at_nospam_polbox.com>
Subject: Re: Stan BUSY w LCD z kontrolerem Hitatchi
Date: Wed, 09 Feb 2000 23:28:16 GMT
Wojtek Sujkowski napisał(a):
Przy sprawdzaniu bitu BUSY trzeba go probkowac a nie czytac w sposob ciagly,
tzn. jesli jest BUSY to trzeba "odpuscic" E(nable), mozna odczekac troche
(ale niekoniecznie) i ponownie wystawic E i sprawdzac czy dalej BUSY. Przy
aktywnym E(nable) bit BUSY nigdy sie nie zmieni i rzeczywiscie mozna czekac
do "usranej smierci" !! Poza tym wszyscy producenci LCD z uC Hitachi
zalecaja aby po wlaczeniu zasilania czekac 15-30 ms (zaleznie od producenta)
i dopiero wtedy mozna sprawdzac BUSY.
Jest jeszcze jeden punkt: wg datasheet'ow dopuszczalne opoznienie pojawienia
sie danych na szynie po rosnacym zboczu E (przy czytaniu z wyswietlacza)
wynosi 320ns co dla szybkich prockow jest na tyle dlugim czasem, ze trzeba
wstawiac NOPy miedzy wystawieniem E a czytaniem danych (BUSY). Nie wszyscy
zwracaja na to uwage i efekty moga byc przerozne.
Wszystko co napisalem powyzej JEST w danych technicznych wysw. LCD - trzeba
tylko je starannie czytac.
Pozdrawiam,
Wojtek
Hmmmm, albo ja mam cholerne szczescie, albo nie wszystkie wyswietlacze
tak dzialaja. Ja przy obsludze LCD na 51 nie "klapie" sygnalem E przy
sprawdzaniu BUSY i dziala wszystko, lacznie z ladowaniem wlasnych
fontow do CGRAM. Jedyne co mam to NOP'a pomiedzy wystawieniem 1 na E
a petelka sprawdzajaca BUSY.
Moze tez byc jeszcze jeden problem nie dzialania sprawdzania BUSY. A
mianowicie nie zwolnienie portu danych (poprzez wpisanie $FF) przed
odczytem stanu BUSY, a wtedy mamy piekna kolizje na porcie danych.
Moja procedurka wyglada tak:
WRCOM: CLR LCDCOM ;BEDA WYSYLANE KOMENDY
SJMP WR1
WRDAT: SETB LCDCOM ;BEDA WYSYLANE DANE
WR1: CLR LCDWR ;PRZELACZENIE NA ZAPIS DO LCD
MOV LCDDATA,A ;WYSLANIE DANYCH NA PORT
SETB LCDENA ;ENABLE
NOP
CLR LCDENA ;DISABLE
NOP
NOP
CLR LCDCOM ;ODCZYT REJESTRU KOMEND (FLAGA BUSY)
SETB LCDWR ;PRZELACZENIE NA ODCZYT
MOV LCDDATA,#255 ;PRZEL. PORTU NA WEJSCIE
SETB LCDENA ;UAKTYWNIENIE LCD
NOP
WAID: JB LCDDATA.7,WAID ;CZEKAJ NA BUSY=0
NOP
CLR LCDENA ;ZABLOKOWANIE LCD
CLR LCDWR ;PRZELACZENIE NA ZAPIS
RET
I co wy na to ???
P.S. Czeka do usr...smierci tylko wtedy gdy fizycznie nie ma
podlaczonego wyswietlacza..., ale to nie jest normalny stan.
--
Pozdrawiam.... Romuald Bialy
E'mail: romekb_at_nospam_polbox.com
WWW: http://www.polbox.com/r/romekb
From: "Wojtek Sujkowski" <wpsujkowski_at_nospam_qdnet.pl>
Subject: Re: Stan BUSY w LCD z kontrolerem Hitatchi
Date: Thu, 10 Feb 2000 09:33:20 +0100
Romuald Bialy napisał(a) w wiadomo?ci: <38A1B999.1ADDE228_at_nospam_polbox.com>...
Hmmmm, albo ja mam cholerne szczescie, albo nie wszystkie wyswietlacze
tak dzialaja. Ja przy obsludze LCD na 51 nie "klapie" sygnalem E przy
sprawdzaniu BUSY i dziala wszystko, lacznie z ladowaniem wlasnych
fontow do CGRAM. Jedyne co mam to NOP'a pomiedzy wystawieniem 1 na E
a petelka sprawdzajaca BUSY.
Moze tez byc jeszcze jeden problem nie dzialania sprawdzania BUSY. A
mianowicie nie zwolnienie portu danych (poprzez wpisanie $FF) przed
odczytem stanu BUSY, a wtedy mamy piekna kolizje na porcie danych.
Oczywiscie
Moja procedurka wyglada tak:
WRCOM: CLR LCDCOM ;BEDA WYSYLANE KOMENDY
SJMP WR1
WRDAT: SETB LCDCOM ;BEDA WYSYLANE DANE
WR1: CLR LCDWR ;PRZELACZENIE NA ZAPIS DO LCD
MOV LCDDATA,A ;WYSLANIE DANYCH NA PORT
SETB LCDENA ;ENABLE
NOP
CLR LCDENA ;DISABLE
NOP
NOP
CLR LCDCOM ;ODCZYT REJESTRU KOMEND (FLAGA BUSY)
SETB LCDWR ;PRZELACZENIE NA ODCZYT
MOV LCDDATA,#255 ;PRZEL. PORTU NA WEJSCIE
SETB LCDENA ;UAKTYWNIENIE LCD
NOP
WAID: JB LCDDATA.7,WAID ;CZEKAJ NA BUSY=0
NOP
CLR LCDENA ;ZABLOKOWANIE LCD
CLR LCDWR ;PRZELACZENIE NA ZAPIS
RET
I co wy na to ???
Moim zdaniem powyzsze programiki mozna traktowac jako podrecznikowe.
Z wyjatkiem metody czekania na BUSY=0 ;))). I sklonny jestem twierdzic, ze
nie masz zadnych problemow przez przypadek a raczej zbieg sprzyjajacych
okolicznosci. Chyba, ze stwierdzisz, ze widziales na oscyloskopie przebiegi
i jawnie zobaczyles zmiane stanu BUSY - wtedy poddaje sie i odszczekuje
wszystko :))
Czasy wykonania przez wyswietlacz prawie wszystkich komend wynosza do 40us,
wyjatkami sa komendy "CLEAR DISPLAY" i "RETURN HOME" - wymagaja do 1.64 ms.
Jesli nie odwolujesz sie do wyswietlacza czesciej niz coo 40 us (takze przy
definiowaniu fontow) to zawsze bedziesz mial OK. Ponadto jesli w
wyswietlaczu jest sterownik Epsona lub Toshiby zamiast Hitachi to
wyswietlacz bedzie dzialal srednio 2 razy szybciej :) a firma w datasheetach
napisze i tak standardowe (dluzsze) czay. Te informacje i tak nie sa
pierwszej "swiezosci" i mozna sie spodziewac, ze najnowsze sterowniki sa
jeszcze szybsze.
A wracajac do BUSY. Zwroccie koledzy uwage, ze modul wyswietlacza w systemie
uP traktowany jest jako rodzaj pamieci RAM (dosyc specyficznej ale jednak) i
stosuja sie don takie same reguly - stan szyny danych NIE MOZE sie zmieniac
przy aktywnym E (taki Chip Select) niezaleznie od tego czy trwa operacja
Write czy Read. We wszystkich notach aplikacyjnych z jakimi mialem do
czynienia stosowana jest jednakowa technika czytania BUSY - chyba nie przez
przypadek.
Pozdrawiam wszystkich
Wojtek
From: jfox_at_nospam_friko6.onet.pl (J.F.)
Subject: Re: Stan BUSY w LCD z kontrolerem Hitatchi
Date: 10 Feb 2000 10:32:02 GMT
On Wed, 09 Feb 2000 23:28:16 GMT, Romuald Bialy <romekb_at_nospam_polbox.com> wrote:
Hmmmm, albo ja mam cholerne szczescie, albo nie wszystkie wyswietlacze
tak dzialaja.
Biorac pod uwage ze kontroler robi jedna czy dwie firmy, to pewnie wszystkie
Ja przy obsludze LCD na 51 nie "klapie" sygnalem E przy
sprawdzaniu BUSY i dziala wszystko, lacznie z ladowaniem wlasnych
fontow do CGRAM.
Bo mowiac szczerze ja sie nigdy nie spotkalem z wyraznym stwierdzeniem
ze stan busy jest zatrzaskiwany przy odczycie i nie moze sie zmienic
w srodku cyklu odczytu. Czy jest ? Hm, skoro piszesz ze dziala ..
Jedyne co mam to NOP'a pomiedzy wystawieniem 1 na E
a petelka sprawdzajaca BUSY.
O ile pamietam dane to tam potrzebne czasy sa rzedu kilkuset ns, co
moze jest zbyt wolno przy podlaczeniu przez magistrale [ale dziala],
natomiast przy programowym zmienianiu E to NOP niepotrzebny...
J.
From: this_address_is_invalid_see_signature_at_nospam_adresniewazny.com (Jaroslaw Cichorski Jr.)
Subject: Re: Stan BUSY w LCD z kontrolerem Hitatchi
Date: Thu, 10 Feb 2000 20:28:55 GMT
jfox_at_nospam_friko6.onet.pl (J.F.) wrote:
Bo mowiac szczerze ja sie nigdy nie spotkalem z wyraznym stwierdzeniem
ze stan busy jest zatrzaskiwany przy odczycie i nie moze sie zmienic
w srodku cyklu odczytu. Czy jest ? Hm, skoro piszesz ze dziala ..
Tez tego nie znalazlem, ale na logike, to tak powinno byc, ze zmiana
nie nastepuje w czasie odczytu.
Tak wiec czytam machajac E i wszystko dziala.
Pozdrawiam
-----
Jaroslaw Cichorski Jr <cichy_at_nospam_amart.JUNK_MAIL_PROTECTION.com.pl>
UWAGA Adres email niewazny!
Prosze usunac JUNK MAIL PROTECTION zeby otrzymac prawidlowy adres.
WWW http://www.amart.com.pl
From: Romuald Bialy <romekb_at_nospam_polbox.com>
Subject: Re: Stan BUSY w LCD z kontrolerem Hitatchi
Date: Thu, 10 Feb 2000 23:27:38 GMT
"Jaroslaw Cichorski Jr." napisał(a):
jfox_at_nospam_friko6.onet.pl (J.F.) wrote:
Bo mowiac szczerze ja sie nigdy nie spotkalem z wyraznym stwierdzeniem
ze stan busy jest zatrzaskiwany przy odczycie i nie moze sie zmienic
w srodku cyklu odczytu. Czy jest ? Hm, skoro piszesz ze dziala ..
Tez tego nie znalazlem, ale na logike, to tak powinno byc, ze zmiana
nie nastepuje w czasie odczytu.
Tak wiec czytam machajac E i wszystko dziala.
Pozdrawiam
Wlasnie. Ale na logike E to enable a nie CLOCK. Bufory 74244 czy
zatrzaski 74373 maja tez wejscie E (enable), ale jak sie poda tam zero
(bo sa negowane) to maja bezposrednie przejscie z wejscia na wyjscie.
Przegladajac datascheet tez nie spotkalem stwierdzenia ze trzeba
machac.
--
Pozdrawiam.... Romuald Bialy
E'mail: romekb_at_nospam_polbox.com
WWW: http://www.polbox.com/r/romekb
From: this_address_is_invalid_see_signature_at_nospam_adresniewazny.com (Jaroslaw Cichorski Jr.)
Subject: Re: Stan BUSY w LCD z kontrolerem Hitatchi
Date: Fri, 11 Feb 2000 13:25:06 GMT
Romuald Bialy <romekb_at_nospam_polbox.com> wrote:
Wlasnie. Ale na logike E to enable a nie CLOCK. Bufory 74244 czy
zatrzaski 74373 maja tez wejscie E (enable), ale jak sie poda tam zero
(bo sa negowane) to maja bezposrednie przejscie z wejscia na wyjscie.
Przegladajac datascheet tez nie spotkalem stwierdzenia ze trzeba
machac.
Tak, ale jak ktos wczesniej napisal, taki LCD to uproszczona pamiec, a
wyjscia pamieci nie moga sie zmieniac w trakcie odczytu.
Podobnie z zegarkami RTC w ktorych jest zabezpieczenie przed rollover.
Z reszta, nie zastanawialem sie nad tym, macham E i
nie mam problemow :-)
Odczt z machaniem czy bez to zadna roznica w dlugosci programu.
Pozdrawiam
-----
Jaroslaw Cichorski Jr <cichy_at_nospam_amart.JUNK_MAIL_PROTECTION.com.pl>
UWAGA Adres email niewazny!
Prosze usunac JUNK MAIL PROTECTION zeby otrzymac prawidlowy adres.
WWW http://www.amart.com.pl
From: "Wojtek Sujkowski" <wpsujkowski_at_nospam_qdnet.pl>
Subject: Re: Stan BUSY w LCD z kontrolerem Hitatchi
Date: Sat, 12 Feb 2000 23:01:33 +0100
Romuald Bialy napisał(a) w wiadomości: <38A343F6.9734B901_at_nospam_polbox.com>...
Wlasnie. Ale na logike E to enable a nie CLOCK. Bufory 74244 czy
zatrzaski 74373 maja tez wejscie E (enable), ale jak sie poda tam zero
(bo sa negowane) to maja bezposrednie przejscie z wejscia na wyjscie.
Przegladajac datascheet tez nie spotkalem stwierdzenia ze trzeba
machac....
Siegnalem glebiej do biblioteki i znalazlem katalog... Philipsa. W czesci
dotyczacej sposobu aplikacji znalazlem ogolny schemat blokowy kontrolera, z
ktorego wynika, ze sygnal E chyba rzeczywiscie miedzy innymi otwiera brame
do... wewnetrznej szyny danych sterownika. Biorac to tez na logike to mozna
by przypuszczac, ze w tym czasie (przy aktywnym E) dostep do tej szyny dla
sterownika jest niemozliwy (zablokowany) aby nie dopuscic do kolizji.
Ponadto w pokazanych przykladowych timingach jest "machanie" E w przypadku
stwierdzenia BUSY sterownika.
Zreszta, jak zauwazyl Jaroslaw Cichocki, roznica w dlugosci programu jest
zadna. Osobiscie machalem, macham i bede machac :))).
Pozdrawiam
Wojtek
PS. A gdzie sie zapodzial autor tego watku?
From: "Henry(k)" <henrico_at_nospam_friko6.onet.pl>
Subject: Re: Stan BUSY w LCD z kontrolerem Hitatchi
Date: Mon, 14 Feb 2000 15:03:55 GMT
Wojtek Sujkowski napisał(a) w wiadomości: <38a5d400.0_at_nospam_news.qdnet.pl>...
Siegnalem glebiej do biblioteki i znalazlem katalog... Philipsa. W czesci
dotyczacej sposobu aplikacji znalazlem ogolny schemat blokowy kontrolera, z
ktorego wynika, ze sygnal E chyba rzeczywiscie miedzy innymi otwiera brame
do... wewnetrznej szyny danych sterownika. Biorac to tez na logike to mozna
by przypuszczac, ze w tym czasie (przy aktywnym E) dostep do tej szyny dla
sterownika jest niemozliwy (zablokowany) aby nie dopuscic do kolizji.
Ponadto w pokazanych przykladowych timingach jest "machanie" E w przypadku
stwierdzenia BUSY sterownika.
Pozdrawiam
Wojtek
PS. A gdzie sie zapodzial autor tego watku?
Cześć!
Autora gdzieś wsiąkło (może czeka na BUSY Bit :-))
Niestety, zgodnie z katalogiem Hitachi (pdf, strona 238 Figure 19)
trzeba wahlować linią E i w dodatku BUSY Bit odczytywać gdy jest ustawiona
(stan 1) a nie dopiero po zboczu opadającym (tak są wpisywane dane).
Sprawdziłem w moim projekcie (a miałem pętle czasowe) i niestety tak działa.
Pozdrowionka.
Henry(k)
From: jfox_at_nospam_friko6.onet.pl (J.F.)
Subject: Re: Stan BUSY w LCD z kontrolerem Hitatchi
Date: 8 Feb 2000 13:26:54 GMT
On Tue, 08 Feb 2000 00:52:09 +0100, pos__at_nospam_poczta.onet.pl <pos__at_nospam_poczta.onet.pl> wrote:
Jak odczytać BUSY w LCD?
tzn. wiem że trzeba dać komendę RS=0;R/!W=1 i bit 7 to BusyFlag, ale
czy wystarczy wystawić jw. i RAZ "mignąć" E czy trzeba migać E i za
każdym razem sprawdzać czy "to już" ;->
BUSYWAIT:
ANL P1,#11111000B ;zerowanie E,RS,RW (1.2-RS 1.1-rw 1.0-E)
ORL P1,#00000011B ;SET RW + E
NOP
ANL P1,#11111110B ;CLR E
JB P2.7,$ ;BUSY
BUSYWAIT:
ANL P1,#11111010B ;RW=1 RS,E=0
JESZCZERAZ:
ORL P1,#00000001B ;SET E
NOP
ANL P1,#11111110B ;CLR E
JB P2.7,JESZCZERAZ ;BUSY
Tak to na pewno nie - E musisz miec aktywne na czas czytania danych, czyli
JB. Po dezaktywacji E wyswietlacz przechodzi w 3-ci stan...
J.