# HG changeset patch # User martin # Date 2011-02-28 14:23:49 # Node ID 7a2c75e9a56c82ef386e7c8587121122b3b85e08 # Parent 553a77d94eef94d70d2a6785dd31f9c9405b6595 Modification UART (VHDL) Ajout Driver (C) diff --git a/LPP_drivers/exemples/BenchUART/bin/Release/UART_Driver.exe b/LPP_drivers/exemples/BenchUART/bin/Release/UART_Driver.exe new file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..2b80237b2e185daf7ca46db902a45ab1c350e799 GIT binary patch literal 117532 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 P*ZSS;4|R6?{C@5y6flot diff --git a/LPP_drivers/exemples/BenchUART/main.c b/LPP_drivers/exemples/BenchUART/main.c new file mode 100644 --- /dev/null +++ b/LPP_drivers/exemples/BenchUART/main.c @@ -0,0 +1,19 @@ +#include +#include "lpp_apb_functions.h" +#include "apb_uart_Driver.h" + + +int main() +{ + printf("Debut Main\n\n"); + UART_Device* dev = openUART(0); + printf("addr: %x\n",(unsigned int)dev); + printf("cfg: %x\n",dev->ConfigReg); + char* a = "hello world\n"; + uartputs(dev,a); + printf("Try #1 done\n"); + uartputs(dev,"salut monde\n"); + printf("Try #2 done\n"); + return 0; +} + diff --git a/LPP_drivers/exemples/Makefile b/LPP_drivers/exemples/Makefile --- a/LPP_drivers/exemples/Makefile +++ b/LPP_drivers/exemples/Makefile @@ -23,4 +23,5 @@ all: make all -C ScanAPB make all -C APB_lcd_ctrlr make all -C BenchFIFO + make all -C BenchUART diff --git a/LPP_drivers/includes/apb_dac_Driver.h b/LPP_drivers/includes/apb_dac_Driver.h new file mode 100644 --- /dev/null +++ b/LPP_drivers/includes/apb_dac_Driver.h @@ -0,0 +1,60 @@ +/*------------------------------------------------------------------------------ +-- This file is a part of the LPP VHDL IP LIBRARY +-- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +------------------------------------------------------------------------------- +-- Author : Martin Morlot +-- Mail : martin.morlot@lpp.polytechnique.fr +-----------------------------------------------------------------------------*/ +#ifndef APB_CNA_DRIVER_H +#define APB_CNA_DRIVER_H + +#define DAC_ready 3 +#define DAC_enable 1 +#define DAC_disable 0 + + +/*=================================================== + T Y P E S D E F +====================================================*/ + +/** Structure repr�sentant le registre du CNA */ +struct DAC_Driver +{ + int configReg; /**< Registre de configuration: Flag Ready [1] ; Flag Enable [0] */ + int dataReg; /**< Registre de donn�e sur 16 bits */ +}; + +typedef struct DAC_Driver DAC_Device; + +/*=================================================== + F U N C T I O N S +====================================================*/ + +/** Ouvre l'acc� au CNA */ +DAC_Device* DacOpen(int count); + +//DAC_Device* DacClose(int count); + +/** Les donn�es sont lus a partir d'un tableau pour obtenir le signal de CAL (10Khz + 625hz) */ +int DacTable(); + +/** Les donn�es sont entr�e par l'utilisateur, la conversion se fait a chaque nouvelle donn�e */ +int DacConst(); + + + +#endif diff --git a/LPP_drivers/libsrc/Makefile b/LPP_drivers/libsrc/Makefile --- a/LPP_drivers/libsrc/Makefile +++ b/LPP_drivers/libsrc/Makefile @@ -26,6 +26,7 @@ all: make all -C LCD make all -C DAC make all -C FIFO + make all -C UART cleanall: @@ -33,4 +34,5 @@ cleanall: make clean -C LCD make clean -C DAC make clean -C FIFO + make clean -C UART diff --git a/LPP_drivers/libsrc/UART/apb_uart_Driver.c b/LPP_drivers/libsrc/UART/apb_uart_Driver.c new file mode 100644 --- /dev/null +++ b/LPP_drivers/libsrc/UART/apb_uart_Driver.c @@ -0,0 +1,60 @@ +/*------------------------------------------------------------------------------ +-- This file is a part of the LPP VHDL IP LIBRARY +-- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +------------------------------------------------------------------------------- +-- Author : Martin Morlot +-- Mail : martin.morlot@lpp.polytechnique.fr +-----------------------------------------------------------------------------*/ +#include "apb_uart_Driver.h" +#include "lpp_apb_functions.h" +#include + + +UART_Device* openUART(int count) +{ + UART_Device* uart0; + uart0 = (UART_Device*) apbgetdevice(LPP_UART_CTRLR,VENDOR_LPP,count); + uart0->ConfigReg = BaudGenOnDuty; + return uart0; +} + + +void uartputc(UART_Device* dev,char c) +{ + //while (!(dev->ConfigReg & (1<<5))); + while (!((dev->ConfigReg & DataSended) == DataSended)); + dev->DataWReg = c; + printf(" "); +} + +void uartputs(UART_Device* dev,char* s) +{ + while (*s) uartputc(dev,*(s++)); +} + +char uartgetc(UART_Device* dev) +{ + //while (!((dev->ConfigReg & (1<<2)))); + while (!((dev->ConfigReg & NewData) == NewData)); + return dev->DataRReg; +} + +void uartgets(UART_Device* dev,char* s) +{ + while (*s && (*s!=0xd)) *s++ = uartgetc(dev); +} + diff --git a/LPP_drivers/libsrc/UART/apb_uart_Driver.h b/LPP_drivers/libsrc/UART/apb_uart_Driver.h new file mode 100644 --- /dev/null +++ b/LPP_drivers/libsrc/UART/apb_uart_Driver.h @@ -0,0 +1,56 @@ +/*------------------------------------------------------------------------------ +-- This file is a part of the LPP VHDL IP LIBRARY +-- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +------------------------------------------------------------------------------- +-- Author : Martin Morlot +-- Mail : martin.morlot@lpp.polytechnique.fr +-----------------------------------------------------------------------------*/ +#ifndef APB_UART_DRIVER_H +#define APB_UART_DRIVER_H + + +#define BaudGenOnDuty 0 +#define DataSended 0x10 +#define NewData 0x100 + +/*=================================================== + T Y P E S D E F +====================================================*/ + +struct UART_Driver +{ + int ConfigReg; + int DataWReg; + int DataRReg; +}; + +typedef struct UART_Driver UART_Device; + + +/*=================================================== + F U N C T I O N S +====================================================*/ + + +UART_Device* openUART(int count); +void uartputc(UART_Device* dev,char c); +void uartputs(UART_Device* dev,char* s); +char uartgetc(UART_Device* dev); +void uartgets(UART_Device* dev,char* s); + + +#endif diff --git a/lib/lpp/lpp_uart/Shift_REG.vhd b/lib/lpp/lpp_uart/Shift_REG.vhd --- a/lib/lpp/lpp_uart/Shift_REG.vhd +++ b/lib/lpp/lpp_uart/Shift_REG.vhd @@ -90,9 +90,9 @@ begin if (Serialized_int = '0' and Serialize_reg ='1') then REG <= SIN & D(Data_sz-1 downto 1); SOUT <= D(0); - elsif CptBits_flag ='1' then - REG <= SIN & D(Data_sz-1 downto 1); - SOUT <= D(0); +-- elsif CptBits_flag ='1' then +-- REG <= SIN & D(Data_sz-1 downto 1); +-- SOUT <= D(0); elsif Serialized_int = '0' then REG <= SIN & REG(Data_sz-1 downto 1); SOUT <= REG(0); diff --git a/lib/lpp/lpp_uart/UART.vhd b/lib/lpp/lpp_uart/UART.vhd --- a/lib/lpp/lpp_uart/UART.vhd +++ b/lib/lpp/lpp_uart/UART.vhd @@ -66,15 +66,15 @@ begin WDATA_int <= '1' & WDATA & '0'; -BaudGenerator : BaudGen +BaudGenerator : entity work.BaudGen port map(clk,reset,Capture,Bclk,RXD,BTrigger); -RX_REG : Shift_REG +RX_REG : entity work.Shift_REG generic map(Data_sz+2) port map(clk,Bclk,reset,RXD,TXD_Dummy,receive,NwDat_int,zeroVect,RDATA_int); -TX_REG : Shift_REG +TX_REG : entity work.Shift_REG generic map(Data_sz+2) port map(clk,Bclk,reset,'1',TXD,Send,Sended,WDATA_int);