Discussion in "ARM Development" started by    mayank058    May 14, 2015.
Thu May 14 2015, 10:08 am
#1
Dear Sir,
I am using LPC2378 microcontroller in some project. I want to use 10-bit DAC available on this MC to convert some pulse wave into analog wave. So please tell me how to program it.
Thu May 14 2015, 10:17 am
#2
Did you look at LPC23xx user manual and datasheet? If not then please check it once and We will help you implement the code, do let us know if you face any issue in understanding datasheet.
Thu May 14 2015, 03:01 pm
#3
Dear Sir,
I know that user manual is very help full. but in LPC2378's user mannul ,information related to DAC is very less and complex.That's why I am asking to you. Actually I did some example program for DAC but problem is that when I used the code on board no output was available at output PIN.
Fri May 15 2015, 10:12 am
#4
Well the information in User manual is enough as there is nothing much to be done in DAC. its a 10-bit DAC and very simple to configure using just one register (DACR).
DACR has two fields to configure:
1. VALUE: this value is a 10-bit field sets the output voltage at Aout pin. The output voltage is Value/1024 * Vref
where Vref is the reference voltage at Vref pin of controller. So if your Vref is say 3.3 and you set Value as 500 then output voltage will be = 500 * 3.3 / 1024 = 1.61V
2. BIAS: This field selects the output current and the settling time of voltage at Aout pin. You have option to select settling time between 1uS or 2.5uS with 700uA and 350uA output current respectively.

That is for the DAC configuration. Apart from this you need to also configure the PINSEL register for P0.26 pin and configure it as Aout so that you can see the out coming on port pin. Do attach your code so we review what you've done.
Tags LPC23xx DACLPC2378 DACLPC23xx digital to analog converter
Fri May 15 2015, 12:54 pm
#5
dear sir
I had done all these things. I am posting my code. the problem is that,when I use this program on board and take output on CRO then no output was available on CRO only a line was there on CRO screen.
void delay(void);

int main()
{ int i;
PINSEL1 |= 0x00200000;// to use P0.25 as DAC output pin.

while(1)
{
for(i=0;i<0xff;i++)
{ /* Generate rising edge */
delay();
DACR = (i << 6) | (1<<16);
}
for(i=0xfe;i>0x00;i--)
{/* Generate falling edge */
delay();
DACR = (i << 6) | (1<<16); //data output to port B
}
}
}


void delay(void)
{
int k;
for(k = 1;k<= 100;k++);

}
Fri May 15 2015, 03:24 pm
#6
try to set a single value first. to make sure DAC is working fine.
PINSEL1 |= 0x00200000;
DACR = (1 << 16) | (500 << 6);
while (1);

This should give you 1.61V at Aout pin assuming Vref at 3.3V
Mon May 18 2015, 11:31 am
#7
dear sir,
when I use your code on the board and measure output,Output was 3.3V. The program was going well in simulator. But not on the board.
Mon May 18 2015, 09:46 pm
#8
Does the speaker work?.

'Exactly' where on the board are you measuring ?.
Tue May 19 2015, 10:24 am
#9
Sir I want to measure the analog signal on CRO.
Wed May 20 2015, 10:27 am
#10
can you zip your complete project and attach it here?

Get Social

Information

Powered by e107 Forum System

Downloads

Comments

Bobbyerilar
Thu Mar 28 2024, 08:08 am
pb58
Thu Mar 28 2024, 05:54 am
Clarazkafup
Thu Mar 28 2024, 02:24 am
Walterkic
Thu Mar 28 2024, 01:19 am
Davidusawn
Wed Mar 27 2024, 08:30 pm
Richardsop
Tue Mar 26 2024, 10:33 pm
Stevencog
Tue Mar 26 2024, 04:26 pm
Bernardwarge
Tue Mar 26 2024, 11:15 am