##// END OF EJS Templates
DAC driver added to LPP_drivers
martin -
r27:c4af55b3c4a3 default
parent child
Show More
@@ -0,0 +1,35
1 #ifndef APB_CNA_DRIVER_H
2 #define APB_CNA_DRIVER_H
3
4 #define DAC_ready 3
5 #define DAC_enable 1
6 #define DAC_disable 0
7
8
9 /*===================================================
10 T Y P E S D E F
11 ====================================================*/
12
13 struct DAC_Driver
14 {
15 int configReg;
16 int dataReg;
17 };
18
19 typedef struct DAC_Driver DAC_Device;
20
21 /*===================================================
22 F U N C T I O N S
23 ====================================================*/
24
25 DAC_Device* DacOpen(int count);
26
27 //DAC_Device* DacClose(int count);
28
29 int DacTable();
30
31 int DacConst();
32
33
34
35 #endif
1 NO CONTENT: new file 100644, binary diff hidden
@@ -0,0 +1,25
1 #------------------------------------------------------------------------------
2 #-- This file is a part of the LPP VHDL IP LIBRARY
3 #-- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS
4 #--
5 #-- This program is free software; you can redistribute it and/or modify
6 #-- it under the terms of the GNU General Public License as published by
7 #-- the Free Software Foundation; either version 3 of the License, or
8 #-- (at your option) any later version.
9 #--
10 #-- This program is distributed in the hope that it will be useful,
11 #-- but WITHOUT ANY WARRANTY; without even the implied warranty of
12 #-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 #-- GNU General Public License for more details.
14 #--
15 #-- You should have received a copy of the GNU General Public License
16 #-- along with this program; if not, write to the Free Software
17 #-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 #------------------------------------------------------------------------------
19 FILE = apb_dac_Driver
20 LIB = liblpp_dac_Driver.a
21
22 include ../../rules.mk
23
24 all: $(FILE).a
25 @echo $(FILE)".a created"
@@ -0,0 +1,68
1 #include "apb_dac_Driver.h"
2 #include "lpp_apb_functions.h"
3 #include <stdio.h>
4
5
6 DAC_Device* DacOpen(int count)
7 {
8 DAC_Device* dac0;
9 dac0 = (DAC_Device*) apbgetdevice(LPP_DAC_CTRLR,VENDOR_LPP,count);
10 dac0->configReg = DAC_enable;
11 return dac0;
12 }
13
14 /*
15 DAC_Device* DacClose(int count)
16 {
17 DAC_Device* dac1;
18 dac1 = (DAC_Device*) apbgetdevice(LPP_DAC_CTRLR,VENDOR_LPP,count);
19 dac1->configReg = DAC_disable;
20 return dac1;
21 }
22 */
23
24
25 int DacTable()
26 {
27 int i;
28 DAC_Device* dac2;
29 int tablo[251] = {0x9555,0x1800,0x19AA,0x1B15,0x1C0A,0x1C66,0x1C1F,0x1B44,0x19FC,0x187F,0x170F,0x15EA,0x1542,0x1537,0x15CE,0x16F2,0x187A,0x1A2B,0x1BC2,0x1D04,0x1DBF,0x1DDB,0x1D56,0x1C49,0x1AE3,0x195F,0x1800,0x1700,0x168D,0x16BA,0x1785,0x18D0,0x1A69,0x1C12,0x1D8A,0x1E98,0x1F13,
30 0x1EEB,0x1E28,0x1CEC,0x1FFF,0x19E8,0x189F,0x17C8,0x1788,0x17EA,0x18E2,0x1A48,0x1BE7,0x1D7C,0x1ECA,0x1F9C,0x1FD2,0x1F64,0x1E66,0x1D00,0x1B6E,0x19EF,0x18C1,0x1817,0x180A,0x189D,0x19BA,0x1B33,0x1CCC,0x1E44,0x1F5F,0x1FEE,0x1FDC,0x1F2B,0x1DF6,0x1C6E,0x1AD1,0x1960,0x1855,0x17D9,0x1800,
31 0x18C1,0x19FD,0x1B80,0x1D0A,0x1E5C,0x1F3D,0x1F87,0x1F2E,0x1E3E,0x1CDA,0x1B39,0x199C,0x1842,0x1760,0x1717,0x1771,0x185D,0x19B1,0x1B36,0x1CAA,0x1DCF,0x1E73,0x1E79,0x1DDD,0x1CB4,0x1B2B,0x197C,0x17EA,0x16B1,0x15FF,0x15EE,0x167C,0x178F,0x18F7,0x1A78,0x1BCF,0x1CC4,0x1D2A,0x1CED,0x1C14,
32 0x1ABC,0x191A,0x176B,0x15F0,0x14E2,0x1467,0x1490,0x1552,0x1689,0x1800,0x1977,0x1AAE,0x1B70,0x1B99,0x1B1E,0x1A10,0x1895,0x16E6,0x1544,0x13EC,0x1313,0x12D6,0x133C,0x1431,0x1588,0x1709,0x1871,0x1984,0x1A12,0x1A01,0x194F,0x1816,0x1684,0x14D5,0x134C,0x1223,0x1187,0x118D,0x1231,0x1356,
33 0x14CA,0x164F,0x17A3,0x188F,0x18E9,0x18A0,0x17BE,0x1664,0x14C7,0x1326,0x11C2,0x10D2,0x1079,0x10C3,0x11A4,0x12F6,0x1480,0x1603,0x173F,0x1800,0x1827,0x17AB,0x16A0,0x152F,0x1392,0x120A,0x10D5,0x1024,0x1012,0x10A1,0x11BC,0x1334,0x14CD,0x1646,0x1763,0x17F6,0x17E9,0x173F,0x1611,0x1492,
34 0x1300,0x119A,0x109C,0x102E,0x1064,0x1136,0x1284,0x1419,0x15B8,0x171E,0x1816,0x1878,0x1838,0x1761,0x1618,0x1494,0x1314,0x11D8,0x1115,0x10ED,0x1168,0x1276,0x13EE,0x1597,0x1730,0x187B,0x1946,0x1973,0x1900,0x1800,0x16A1,0x151D,0x13B7,0x12AA,0x1225,0x1241,0x12FC,0x143E,0x15D5,0x1786,
35 0x190E,0x1A32,0x1AC9,0x1ABE,0x1A16,0x18F1,0x1781,0x1604,0x14BC,0x13E1,0x139A,0x13F6,0x14EB,0x1656};
36 dac2 = (DAC_Device*)0x80000800;
37 dac2->configReg = DAC_enable;
38 dac2->dataReg = tablo[0];
39
40 while(1)
41 {
42 for (i = 0 ; i < 251 ; i++)
43 {
44 while(!((dac2->configReg & DAC_ready) == DAC_ready));
45 dac2->dataReg = tablo[i];
46 while((dac2->configReg & DAC_ready) == DAC_ready);
47 }
48 }
49 return 0;
50 }
51
52
53
54 int DacConst()
55 {
56 DAC_Device* dac3;
57 int Value = 0x1FFF;
58 dac3 = (DAC_Device*)0x80000800;
59 dac3->configReg = DAC_enable;
60 while(1)
61 {
62 printf("\nEntrer une valeur Hexa entre 4096 et 8191 : ");
63 scanf("%d",&Value);
64 dac3->dataReg = Value;
65 }
66 return 0;
67 }
68
@@ -0,0 +1,35
1 #ifndef APB_CNA_DRIVER_H
2 #define APB_CNA_DRIVER_H
3
4 #define DAC_ready 3
5 #define DAC_enable 1
6 #define DAC_disable 0
7
8
9 /*===================================================
10 T Y P E S D E F
11 ====================================================*/
12
13 struct DAC_Driver
14 {
15 int configReg;
16 int dataReg;
17 };
18
19 typedef struct DAC_Driver DAC_Device;
20
21 /*===================================================
22 F U N C T I O N S
23 ====================================================*/
24
25 DAC_Device* DacOpen(int count);
26
27 //DAC_Device* DacClose(int count);
28
29 int DacTable();
30
31 int DacConst();
32
33
34
35 #endif
@@ -1,65 +1,67
1 1 /*------------------------------------------------------------------------------
2 2 -- This file is a part of the LPP VHDL IP LIBRARY
3 3 -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS
4 4 --
5 5 -- This program is free software; you can redistribute it and/or modify
6 6 -- it under the terms of the GNU General Public License as published by
7 7 -- the Free Software Foundation; either version 3 of the License, or
8 8 -- (at your option) any later version.
9 9 --
10 10 -- This program is distributed in the hope that it will be useful,
11 11 -- but WITHOUT ANY WARRANTY; without even the implied warranty of
12 12 -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 13 -- GNU General Public License for more details.
14 14 --
15 15 -- You should have received a copy of the GNU General Public License
16 16 -- along with this program; if not, write to the Free Software
17 -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 18 -------------------------------------------------------------------------------*/
19 19 #ifndef LPP_APB_FUNCTIONS_H
20 20 #define LPP_APB_FUNCTIONS_H
21 21
22 22 #define APB_TBL_HEAD 0x800FF000
23 23 #define APB_BASE_ADDRS 0x80000000
24 24 #define APB_MAX_DEVICES 256
25 25
26 26 #define VENDOR_LPP 0x19
27 27
28 28 #define ROCKET_TM 0x001
29 29 #define otherCore 0x002
30 30 #define LPP_SIMPLE_DIODE 0x003
31 31 #define LPP_MULTI_DIODE 0x004
32 32 #define LPP_LCD_CTRLR 0x005
33 #define LPP_UART_CTRLR 0x006
34 #define LPP_DAC_CTRLR 0x007
33 35
34 36 /** @todo implemente a descriptor structure for any APB device */
35 37
36 38
37 39 /** Structure representing a device descriptor register on Grlib's AHB2APB brige with plug and play feature */
38 40 struct apbPnPreg
39 41 {
40 42 int idReg; /**< id register composed of Vendor ID [31:24], Device ID [23:12], CT [11:10], Version [9:5], IRQ [4:0] */
41 43 int bar; /**< Bank Address Register composed of Device's ADDRESS [31:20], MASK [14:4], TYPE [3:0] */
42 44 };
43 45
44 46 struct apbdevinfo
45 47 {
46 48 int vendorID;
47 49 int productID;
48 50 int version;
49 51 int irq;
50 52 int address;
51 53 int mask;
52 54 };
53 55
54 56 /** This Function scans APB devices table and returns counth device according to VID and PID */
55 57 int* apbgetdevice(int PID,int VID,int count);
56 58 /** This Function scans APB devices table and returns counth device informations according VID and PID */
57 59 void apbgetdeviceinfofromid(int PID,int VID,int count,struct apbdevinfo* devinfo);
58 60
59 61 void apbgetdeviceinfofromdevptr(const struct apbPnPreg* dev,struct apbdevinfo* devinfo);
60 62
61 63
62 64 void apbprintdeviceinfo(struct apbdevinfo devinfo);
63 65
64 66 void apbprintdeviceslist();
65 67 #endif // LPP_APB_FUNCTIONS_H
1 NO CONTENT: modified file, binary diff hidden
1 NO CONTENT: modified file, binary diff hidden
@@ -1,65 +1,67
1 1 /*------------------------------------------------------------------------------
2 2 -- This file is a part of the LPP VHDL IP LIBRARY
3 3 -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS
4 4 --
5 5 -- This program is free software; you can redistribute it and/or modify
6 6 -- it under the terms of the GNU General Public License as published by
7 7 -- the Free Software Foundation; either version 3 of the License, or
8 8 -- (at your option) any later version.
9 9 --
10 10 -- This program is distributed in the hope that it will be useful,
11 11 -- but WITHOUT ANY WARRANTY; without even the implied warranty of
12 12 -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 13 -- GNU General Public License for more details.
14 14 --
15 15 -- You should have received a copy of the GNU General Public License
16 16 -- along with this program; if not, write to the Free Software
17 -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 18 -------------------------------------------------------------------------------*/
19 19 #ifndef LPP_APB_FUNCTIONS_H
20 20 #define LPP_APB_FUNCTIONS_H
21 21
22 22 #define APB_TBL_HEAD 0x800FF000
23 23 #define APB_BASE_ADDRS 0x80000000
24 24 #define APB_MAX_DEVICES 256
25 25
26 26 #define VENDOR_LPP 0x19
27 27
28 28 #define ROCKET_TM 0x001
29 29 #define otherCore 0x002
30 30 #define LPP_SIMPLE_DIODE 0x003
31 31 #define LPP_MULTI_DIODE 0x004
32 32 #define LPP_LCD_CTRLR 0x005
33 #define LPP_UART_CTRLR 0x006
34 #define LPP_DAC_CTRLR 0x007
33 35
34 36 /** @todo implemente a descriptor structure for any APB device */
35 37
36 38
37 39 /** Structure representing a device descriptor register on Grlib's AHB2APB brige with plug and play feature */
38 40 struct apbPnPreg
39 41 {
40 42 int idReg; /**< id register composed of Vendor ID [31:24], Device ID [23:12], CT [11:10], Version [9:5], IRQ [4:0] */
41 43 int bar; /**< Bank Address Register composed of Device's ADDRESS [31:20], MASK [14:4], TYPE [3:0] */
42 44 };
43 45
44 46 struct apbdevinfo
45 47 {
46 48 int vendorID;
47 49 int productID;
48 50 int version;
49 51 int irq;
50 52 int address;
51 53 int mask;
52 54 };
53 55
54 56 /** This Function scans APB devices table and returns counth device according to VID and PID */
55 57 int* apbgetdevice(int PID,int VID,int count);
56 58 /** This Function scans APB devices table and returns counth device informations according VID and PID */
57 59 void apbgetdeviceinfofromid(int PID,int VID,int count,struct apbdevinfo* devinfo);
58 60
59 61 void apbgetdeviceinfofromdevptr(const struct apbPnPreg* dev,struct apbdevinfo* devinfo);
60 62
61 63
62 64 void apbprintdeviceinfo(struct apbdevinfo devinfo);
63 65
64 66 void apbprintdeviceslist();
65 67 #endif // LPP_APB_FUNCTIONS_H
@@ -1,30 +1,32
1 1 #------------------------------------------------------------------------------
2 2 #-- This file is a part of the LPP VHDL IP LIBRARY
3 3 #-- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS
4 4 #--
5 5 #-- This program is free software; you can redistribute it and/or modify
6 6 #-- it under the terms of the GNU General Public License as published by
7 7 #-- the Free Software Foundation; either version 3 of the License, or
8 8 #-- (at your option) any later version.
9 9 #--
10 10 #-- This program is distributed in the hope that it will be useful,
11 11 #-- but WITHOUT ANY WARRANTY; without even the implied warranty of
12 12 #-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 13 #-- GNU General Public License for more details.
14 14 #--
15 15 #-- You should have received a copy of the GNU General Public License
16 16 #-- along with this program; if not, write to the Free Software
17 17 #-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 18 #------------------------------------------------------------------------------
19 19
20 20 include ../rules.mk
21 21
22 22
23 23
24 24 all:
25 25 make all -C AMBA
26 26 make all -C LCD
27 make all -C DAC
27 28
28 29 cleanall:
29 30 make clean -C AMBA
30 31 make clean -C LCD
32 make clean -C DAC
@@ -1,9 +1,9
1 amba_lcd_16x2_ctrlr.vhd
2 apb_lcd_ctrlr.vhd
3 1 FRAME_CLK.vhd
4 2 LCD_16x2_CFG.vhd
5 3 LCD_16x2_DRVR.vhd
6 4 LCD_16x2_ENGINE.vhd
7 5 LCD_2x16_DRIVER.vhd
8 6 LCD_CLK_GENERATOR.vhd
9 7 Top_LCD.vhd
8 amba_lcd_16x2_ctrlr.vhd
9 apb_lcd_ctrlr.vhd
@@ -1,7 +1,8
1 ./amba_lcd_16x2_ctrlr
2 ./dsp/iir_filter
1 3 ./general_purpose
2 4 ./lpp_ad_Conv
5 ./lpp_amba
6 ./lpp_cna
3 7 ./lpp_CNA_amba
4 8 ./lpp_uart
5 ./lpp_amba
6 ./dsp/iir_filter
7 ./amba_lcd_16x2_ctrlr
@@ -1,12 +1,12
1 1 APB_IIR_CEL.vhd
2 FILTER.vhd
3 FILTER_RAM_CTRLR.vhd
2 4 FILTERcfg.vhd
3 5 FilterCTRLR.vhd
4 FILTER_RAM_CTRLR.vhd
5 FILTER.vhd
6 6 IIR_CEL_CTRLR.vhd
7 7 IIR_CEL_FILTER.vhd
8 iir_filter.vhd
8 RAM.vhd
9 9 RAM_CEL.vhd
10 10 RAM_CTRLR2.vhd
11 RAM.vhd
12 11 Top_Filtre_IIR.vhd
12 iir_filter.vhd
@@ -1,14 +1,14
1 Adder.vhd
2 1 ADDRcntr.vhd
3 2 ALU.vhd
3 Adder.vhd
4 4 Clk_divider.vhd
5 general_purpose.vhd
5 MAC.vhd
6 6 MAC_CONTROLER.vhd
7 MAC_MUX2.vhd
8 7 MAC_MUX.vhd
8 MAC_MUX2.vhd
9 9 MAC_REG.vhd
10 MAC.vhd
10 MUX2.vhd
11 11 Multiplier.vhd
12 MUX2.vhd
13 12 REG.vhd
14 13 Shifter.vhd
14 general_purpose.vhd
General Comments 0
You need to be logged in to leave comments. Login now