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,35 @@ +#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 +====================================================*/ + +struct DAC_Driver +{ + int configReg; + int dataReg; +}; + +typedef struct DAC_Driver DAC_Device; + +/*=================================================== + F U N C T I O N S +====================================================*/ + +DAC_Device* DacOpen(int count); + +//DAC_Device* DacClose(int count); + +int DacTable(); + +int DacConst(); + + + +#endif diff --git a/LPP_drivers/includes/lpp_apb_functions.h b/LPP_drivers/includes/lpp_apb_functions.h --- a/LPP_drivers/includes/lpp_apb_functions.h +++ b/LPP_drivers/includes/lpp_apb_functions.h @@ -14,7 +14,7 @@ -- -- 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 +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -------------------------------------------------------------------------------*/ #ifndef LPP_APB_FUNCTIONS_H #define LPP_APB_FUNCTIONS_H @@ -30,6 +30,8 @@ #define LPP_SIMPLE_DIODE 0x003 #define LPP_MULTI_DIODE 0x004 #define LPP_LCD_CTRLR 0x005 +#define LPP_UART_CTRLR 0x006 +#define LPP_DAC_CTRLR 0x007 /** @todo implemente a descriptor structure for any APB device */ diff --git a/LPP_drivers/lib/libapb_dac_Driver.a b/LPP_drivers/lib/libapb_dac_Driver.a new file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..f9bee69d8014301ee58e61a851a5eb80294ad8d1 GIT binary patch literal 2636 zc$}4%eQZ-@6vj{2&X#59?RUG+YbIDq0~jv!7LA0{Y?5&qK9uDh^B*3GWWp(H@# zcQh^pA|k{Y{Y#C}#6+XSYBfO(DjGG2njj=9iaK;rLnQO}w)e8F!4Plq-1mLYd7ks0 z^PYQed*#w(Ce^>Js#TwR#oD@J?eWF&#W7uv7A>>yy57-dF%wlHVh4vT^dwX3hK;l^ z-j?j$VyMZAq4Y>rTFbY)Ir?2;Vr-Po5*ZS2Vmj2fB9P-|6dw2b{9Ime>W&dyF< zZ)=aot!O(|u3crTu*rqXCKbi|h3m4q;?PmNw@8&Z51z`8Pc~2VjBC1cx2A_bcTV(l zo1&x5`Kja1{8UcUZH1<8DKLLo6WgxCCtSOJ6ghb6%?Wi#IV~akorh$f)^uiElli;h z?9rs!ieuNMqR^b5B-W%AOU(;t3QY;e+w7xa@0>`S^W~?{D@{T9rCV~YgdMxRVy8Hi zUCU3OQ{%CsK0ozTOQIs@%>SLUciRfG-BoDP9pze2nO5m?lCY7}6tRZ7b(~tQy7se=WuxZ#mR)IzIZzw%|CnjO-t{6O#_;nZwSJL0p0m15ppkVC z_J8p25D8u(;{ORO2iJj*MFPL$yGNwvTDS#~dI!jZufYal+=TBGF*cU=2!g<4;0@;Y zV>^m}0Gj$}KZ6$RXIM|8r?a7_(Yy~H0^|`oiFOV9{(yEn{14$C0H1+A z*3?kXezj@zzrlY8kU)s~LI<&tLv1^I9Dz%njpW$)EBFRbPyL_x(AInkH-Uz83Vv0p zL&XZ8N52yu@fvPNb3J$vL|89FdmMikJaP(gWE**|y}>pQT&g1-|U=U)E_nh~&# z`M20!#YYa|?WI}+aQ&QvpZo&K_Bb*ABDXPkXzSiXcMan&z=xghL%0UsooFUSe4LeU zGZ<%mD={86dww_EmxwV8o&*i7HGF&Fd=Hm%@zMh?J@I_WxRe+%?5YRz;89EXJ~Z^N zhDR#A4qE^%Hs2TU*P?3@adR$i`tCvN<+PmR;IHVBcpFk8~SK+i?KDM zuQA4wx}nT^N3^R`H?n#>))mv2=R9V#tSLxY3tC;#Kp&Cl3n=9=wo{j>ZIbF7^; z=W_8b%b1#&dgZGI3$34l63=#^Y(MMsxX9FAiWf8I6{dNDty*UBT;|v%bAJ0O`JRdA zBJtcadlq?oOJw;)c(e9Ym-9t#C%`Q zCw_6^C|g&StyM3r+LwAt@oFr;RvMa>4;(T5(K0{3LpF7`3De(Q=3hN$UG~=|CDuPE z9Gi`7pD{X+GG_ix4H|=~;cYYjs)jQI>Fg#MNhQ;p%&@%YE~hzX@5*`RobP63wK?av mp~~dg7L_=5zR9*|iBp{OJXc#BGmb-NZpJCj`IgQva{dJin2~@0 diff --git a/LPP_drivers/lib/libapb_lcd_driver.a b/LPP_drivers/lib/libapb_lcd_driver.a index 71c8f72272ccb1d3dacab9ec7abb34b2cd43de92..2f382488f6c0a62bff3185a08ad9719c5863d0a1 GIT binary patch literal 1758 zc$}40!E4iC6n{zEq$>)s46K`jDA;x&Y3sVu4Uxh+*F%{n@wl{UaD#RmZ5$2;cHPB; zhan!k2s!u%3=xrCGJ>GTA)a;`2+~6jRmZ?x^nJ;fE)AW|2k(2|d*AQ9@AqDl=GyI2 zU0J*nN{IcEx;2%W$WCS_Q=*u(BJNcbvuOt@hX8;>{WeIeN~Qd$u?}cgR@G%<8|rdJ zsa5Q)rYx4~WV>2lTGq%$sj3)BcnSSOQrS~JrPcBR7Fwv(m)6v}w2}xVk{leX443<3A*tMRfM)AKDsgdG8x&5wt{%{BnW zw@G|k5ChKz@yZuo&*x~d{g`oN^2X61{EwJk*t5>{d{dW!Z9>?}apkuJ2+}h@@de}e zFJei~0k0Ph#2k?NX3XdcP2lVtku~YPB;MtX?x4G|_K2C#i+h7PK6P+MF$dG*IYl`X zNPRr(obW~m{bGyHF=j9aTX8wEm6anDKW^iVF8cR|n{b2pf5{1jo50gv;^Yp@?X*B< zOzSQ^zk{`oIcq+nn8&__+}In$oNzgKFTj{x7y9a&QQg1G%gjkM2k*E;<~VB2^E2f} zX4O7phHac-+dCW2OfHkWJ$oKqSFacCUiCbQ5w5$)73+&;O!ku)?W>Die!94H&fwBP zE**yp%+1V9i}AVn`{Uw-l$P*ul^W|ctyD&<)or`z?CNT@Bx&kn4Wvp*D}hvQG(b{T zYBd#K)Bg~WKAs%)@mltU>)cQ6sB4cBc#TU0m8bdS>;h_(`aT=Se)8Psyq7mogXh4d zpzmF_aNz;COQ*Fg+yO4r18~H$uJ$%?*{57M+J}HT)L$=9#O1+&dS2b!|ye&;79=g1>i=r&OyrYHR-o;e3X; diff --git a/LPP_drivers/lib/liblpp_apb_functions.a b/LPP_drivers/lib/liblpp_apb_functions.a index 339d5d25ca2919068c851bab173b7c4f46a99c22..98d17f52385892b9bf3244a14cd00a5971a3a075 GIT binary patch literal 2780 zc$}?PL5Le=6n@D}oar>^bWLeM%Z}ojR7y74rpwlLZLq6NVUZwOymhk4qz!H|ab{N6 zQ`6Z?4;~ir;6(^{@Y>_D6{ZAH4<44XNRWUFdgx&fX$ex6Li+xhf094b=%V<;{O`T* zeeeD6|KFdPymFyvly1Bw%_`#~Gj}d?X5s9@*^Hv3U4)&9f1YZp1OO3$P%QWq8!Oi} ztE_!mEos0S)p|v*7U~hB>cQ z*6Jmzs@KhwJ}XJH>G6oaJBv&@JwK1fFqh3{{fsx?S$;PZ4#9AQAneY=5&6m$S$9r? z1j09eIJbL=*3zRyE8kDFmN|ucV#})7PB{Ix&|12iRHG>K8%Z^8pU8y}@3jS|e_r7R z+b2qcW-E6x+=OYe2*KNsgKe=v^j`D3TxhBZFM7V#aH`(+5E725xAENc?PnTQbBs#5QFW?(={dy-PmA6n+9GPr#xRu-F7l^szuK zACX>Ron5?#9jv=c_D9e7dD@Q-+Jo3|pH7$VtxJ5UlYVw^pAUUMIXlF5nbsHE3t)+PG(DHwWrtz6HI)youLq^U1oy7Z=!y!_sW zr<60PYzkkKDf9E1Ra`-78J@i1YlgO3Oj+8x1*vk;Dne?-G!fN3qomhrTHS(wF%;T{ z=ctX#^B*vNp30XP9f!E?ee*!1@x&L!=XK^f5cqarJ^#CKn#LZ+%TPVc@U|G9NaZ;g z|K{XynwpUB*l10c_dZTjF%T+oMHEeZ($vPDhwq^Lg4);pe6lC%nE3*_;;#SM zzY!()|Ns2Bc4gv!ATq*u4%QK|D+tE z?=ze}<>XO+OgVY4H9m(EDMv*;N;yQ2F`Snv2Y)~0tLAcuo@6*!v*_!)l)s63hw_Qu M9r1a*50a}t1;vzR!vFvP diff --git a/LPP_drivers/libsrc/AMBA/lpp_apb_functions.h b/LPP_drivers/libsrc/AMBA/lpp_apb_functions.h --- a/LPP_drivers/libsrc/AMBA/lpp_apb_functions.h +++ b/LPP_drivers/libsrc/AMBA/lpp_apb_functions.h @@ -14,7 +14,7 @@ -- -- 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 +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -------------------------------------------------------------------------------*/ #ifndef LPP_APB_FUNCTIONS_H #define LPP_APB_FUNCTIONS_H @@ -30,6 +30,8 @@ #define LPP_SIMPLE_DIODE 0x003 #define LPP_MULTI_DIODE 0x004 #define LPP_LCD_CTRLR 0x005 +#define LPP_UART_CTRLR 0x006 +#define LPP_DAC_CTRLR 0x007 /** @todo implemente a descriptor structure for any APB device */ diff --git a/LPP_drivers/libsrc/DAC/Makefile b/LPP_drivers/libsrc/DAC/Makefile new file mode 100644 --- /dev/null +++ b/LPP_drivers/libsrc/DAC/Makefile @@ -0,0 +1,25 @@ +#------------------------------------------------------------------------------ +#-- 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 +#------------------------------------------------------------------------------ +FILE = apb_dac_Driver +LIB = liblpp_dac_Driver.a + +include ../../rules.mk + +all: $(FILE).a + @echo $(FILE)".a created" diff --git a/LPP_drivers/libsrc/DAC/apb_dac_Driver.c b/LPP_drivers/libsrc/DAC/apb_dac_Driver.c new file mode 100644 --- /dev/null +++ b/LPP_drivers/libsrc/DAC/apb_dac_Driver.c @@ -0,0 +1,68 @@ +#include "apb_dac_Driver.h" +#include "lpp_apb_functions.h" +#include + + +DAC_Device* DacOpen(int count) +{ + DAC_Device* dac0; + dac0 = (DAC_Device*) apbgetdevice(LPP_DAC_CTRLR,VENDOR_LPP,count); + dac0->configReg = DAC_enable; + return dac0; +} + +/* +DAC_Device* DacClose(int count) +{ + DAC_Device* dac1; + dac1 = (DAC_Device*) apbgetdevice(LPP_DAC_CTRLR,VENDOR_LPP,count); + dac1->configReg = DAC_disable; + return dac1; +} +*/ + + +int DacTable() +{ + int i; + DAC_Device* dac2; + 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, + 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, + 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, + 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, + 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, + 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, + 0x190E,0x1A32,0x1AC9,0x1ABE,0x1A16,0x18F1,0x1781,0x1604,0x14BC,0x13E1,0x139A,0x13F6,0x14EB,0x1656}; + dac2 = (DAC_Device*)0x80000800; + dac2->configReg = DAC_enable; + dac2->dataReg = tablo[0]; + + while(1) + { + for (i = 0 ; i < 251 ; i++) + { + while(!((dac2->configReg & DAC_ready) == DAC_ready)); + dac2->dataReg = tablo[i]; + while((dac2->configReg & DAC_ready) == DAC_ready); + } + } + return 0; +} + + + +int DacConst() +{ + DAC_Device* dac3; + int Value = 0x1FFF; + dac3 = (DAC_Device*)0x80000800; + dac3->configReg = DAC_enable; + while(1) + { + printf("\nEntrer une valeur Hexa entre 4096 et 8191 : "); + scanf("%d",&Value); + dac3->dataReg = Value; + } + return 0; +} + diff --git a/LPP_drivers/libsrc/DAC/apb_dac_Driver.h b/LPP_drivers/libsrc/DAC/apb_dac_Driver.h new file mode 100644 --- /dev/null +++ b/LPP_drivers/libsrc/DAC/apb_dac_Driver.h @@ -0,0 +1,35 @@ +#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 +====================================================*/ + +struct DAC_Driver +{ + int configReg; + int dataReg; +}; + +typedef struct DAC_Driver DAC_Device; + +/*=================================================== + F U N C T I O N S +====================================================*/ + +DAC_Device* DacOpen(int count); + +//DAC_Device* DacClose(int count); + +int DacTable(); + +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 @@ -24,7 +24,9 @@ include ../rules.mk all: make all -C AMBA make all -C LCD + make all -C DAC cleanall: make clean -C AMBA make clean -C LCD + make clean -C DAC diff --git a/lib/lpp/amba_lcd_16x2_ctrlr/vhdlsyn.txt b/lib/lpp/amba_lcd_16x2_ctrlr/vhdlsyn.txt --- a/lib/lpp/amba_lcd_16x2_ctrlr/vhdlsyn.txt +++ b/lib/lpp/amba_lcd_16x2_ctrlr/vhdlsyn.txt @@ -1,5 +1,3 @@ -amba_lcd_16x2_ctrlr.vhd -apb_lcd_ctrlr.vhd FRAME_CLK.vhd LCD_16x2_CFG.vhd LCD_16x2_DRVR.vhd @@ -7,3 +5,5 @@ LCD_16x2_ENGINE.vhd LCD_2x16_DRIVER.vhd LCD_CLK_GENERATOR.vhd Top_LCD.vhd +amba_lcd_16x2_ctrlr.vhd +apb_lcd_ctrlr.vhd diff --git a/lib/lpp/dirs.txt b/lib/lpp/dirs.txt --- a/lib/lpp/dirs.txt +++ b/lib/lpp/dirs.txt @@ -1,7 +1,8 @@ +./amba_lcd_16x2_ctrlr +./dsp/iir_filter ./general_purpose ./lpp_ad_Conv +./lpp_amba +./lpp_cna ./lpp_CNA_amba ./lpp_uart -./lpp_amba -./dsp/iir_filter -./amba_lcd_16x2_ctrlr diff --git a/lib/lpp/dsp/iir_filter/vhdlsyn.txt b/lib/lpp/dsp/iir_filter/vhdlsyn.txt --- a/lib/lpp/dsp/iir_filter/vhdlsyn.txt +++ b/lib/lpp/dsp/iir_filter/vhdlsyn.txt @@ -1,12 +1,12 @@ APB_IIR_CEL.vhd +FILTER.vhd +FILTER_RAM_CTRLR.vhd FILTERcfg.vhd FilterCTRLR.vhd -FILTER_RAM_CTRLR.vhd -FILTER.vhd IIR_CEL_CTRLR.vhd IIR_CEL_FILTER.vhd -iir_filter.vhd +RAM.vhd RAM_CEL.vhd RAM_CTRLR2.vhd -RAM.vhd Top_Filtre_IIR.vhd +iir_filter.vhd diff --git a/lib/lpp/general_purpose/vhdlsyn.txt b/lib/lpp/general_purpose/vhdlsyn.txt --- a/lib/lpp/general_purpose/vhdlsyn.txt +++ b/lib/lpp/general_purpose/vhdlsyn.txt @@ -1,14 +1,14 @@ -Adder.vhd ADDRcntr.vhd ALU.vhd +Adder.vhd Clk_divider.vhd -general_purpose.vhd +MAC.vhd MAC_CONTROLER.vhd -MAC_MUX2.vhd MAC_MUX.vhd +MAC_MUX2.vhd MAC_REG.vhd -MAC.vhd +MUX2.vhd Multiplier.vhd -MUX2.vhd REG.vhd Shifter.vhd +general_purpose.vhd