도와주세요!!
터치스크린 사용하려면, CPLD를 설정해줘야 하나요??
CPLD파일을 열어보니까....
entity decoder is
Port (
PWR_NRST : in std_logic;
EXT_NRST : in std_logic;
PXA_NRST : out std_logic;
nOE : in std_logic;
nWE : in std_logic;
RDnWR : in std_logic;
nCS : in std_logic_vector( 5 downto 0 );
A23_22 : in std_logic_vector( 1 downto 0 );
A9_8 : in std_logic_vector( 1 downto 0 );
OE_DB : out std_logic;
DIR_RnW : out std_logic;
DIR_WnR : out std_logic;
OE_ETH : out std_logic;
WE_ETH : out std_logic;
CS_BOOT : out std_logic;
CS_TOUCH : out std_logic;
OE_NB : out std_logic;
RE_NAND : out std_logic;
WE_NAND : out std_logic;
CLE_NAND : out std_logic;
ALE_NAND : out std_logic;
CE_NAND : out std_logic;
LCD_ON : out std_logic;
SDCLK2 : in std_logic;
REV : out std_logic_vector( 2 downto 0 )
);
end decoder;
architecture arch_decoder of decoder is
signal cs8900_sel : std_logic;
signal nand_sel : std_logic;
begin
--REV 추후 서브보드의 핀으로 확장 예정이다.
REV(0) <= 'Z';
REV(1) <= 'Z';
REV(2) <= 'Z';
-- reset
PXA_NRST <= PWR_NRST and EXT_NRST;
-- OE_DB
OE_DB <= nCS(0) and nCS(1) and nCS(2) and nCS(3) and nCS(4) and nCS(5);
-- DIR
DIR_RnW <= RDnWR;
DIR_WnR <= not RDnWR;
-------------
-- nCS0 영역
-------------
-- CS_BOOT
CS_BOOT <= '0' when nCS(0) = '0' and A23_22 = "00" else '1';
-- CS8900
cs8900_sel <= '0' when nCS(0) = '0' and A23_22 = "01" else '1';
OE_ETH <= nOE when cs8900_sel = '0' else '1';
WE_ETH <= nWE when cs8900_sel = '0' else '1';
-- LCD_ON 확장보드를 연결했을때만 가능하다.
process( nCS(0), A23_22, A9_8 )
begin
if nCS(0) = '0' and A23_22 = "10" and A9_8 = "00" then LCD_ON <= '1'; -- back-light ON
elsif nCS(0) = '0' and A23_22 = "10" and A9_8 = "01" then LCD_ON <= '0'; -- back-light OFF
end if;
end process;
-------------
-- nCS1 영역
-------------
-- CS_TOUCH
CS_TOUCH <= '0' when nCS(1) = '0' and A23_22 = "01" else '1';
-- NAND Flash
nand_sel <= '0' when nCS(1) = '0' and A23_22 = "00" else '1';
OE_NB <= '0' when nand_sel = '0' else '1';
RE_NAND <= nOE when nand_sel = '0' else '1';
WE_NAND <= nWE when nand_sel = '0' else '1';
CLE_NAND <= '1' when nand_sel = '0' and A9_8 = "01" else '0';
ALE_NAND <= '1' when nand_sel = '0' and A9_8 = "10" else '0';
process( nand_sel, A9_8 )
begin
if nand_sel = '0' and A9_8 = "00" then CE_NAND <= '0';
elsif nand_sel = '0' and A9_8 = "11" then CE_NAND <= '1';
end if;
end process;
이렇게 되어 있던데요...
decoder.vhd 파일에서 세팅한게 다 끝인가요??
터치스크린이나 NAND 관련, 메모리맵은 어디서 잡나요??
CPLD를 안구워주면, 동작을 안하나요??
고수님들의 조언 부탁드립니다...
안녕하세요..
EZ-X5보드에서는 터치스크린의 칪셀렉터가 CPLD에서 디코팅되어서 나갑니다. 따라서 CPLD를 굽지 않으면 동작하지 않습니다.
그리고 메모리맵은 CPLD에서 보시면 nCS와 어드레스를 가지고 디코팅하여 사용하고 있습니다.
그럼 좋은 하루 되세요.