Skip to content

Commit 1f3b3ab

Browse files
committed
K64F - DAC update - tested with test a8
- internal reference set to VDDA - PinName DAC0_OUT
1 parent 26d8cf4 commit 1f3b3ab

File tree

2 files changed

+9
-11
lines changed

2 files changed

+9
-11
lines changed

libraries/mbed/targets/hal/TARGET_Freescale/TARGET_KPSDK_MCUS/TARGET_K64F/PinNames.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,8 @@ typedef enum {
227227
A4 = PTB1,
228228
A5 = PTB0,
229229

230+
DAC0_OUT = 0xFEFE, /* DAC does not have Pin Name in RM */
231+
230232
// Not connected
231233
NC = (int)0xFFFFFFFF
232234
} PinName;

libraries/mbed/targets/hal/TARGET_Freescale/TARGET_KPSDK_MCUS/TARGET_K64F/analogout_api.c

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@
2222
#define RANGE_12BIT 0xFFF
2323

2424
const PinMap PinMap_DAC[] = {
25-
{PTE23, DAC_0, 0},
26-
{NC , NC , 0}
25+
{DAC0_OUT, DAC_0, 0},
26+
{NC , NC , 0}
2727
};
2828

2929
void analogout_init(dac_t *obj, PinName pin) {
@@ -32,20 +32,16 @@ void analogout_init(dac_t *obj, PinName pin) {
3232
error("DAC pin mapping failed");
3333
}
3434

35-
SIM->SCGC6 |= SIM_SCGC6_DAC0_MASK;
36-
37-
uint32_t port = (uint32_t)pin >> GPIO_PORT_SHIFT;
38-
SIM->SCGC5 |= 1 << (SIM_SCGC5_PORTA_SHIFT + port);
35+
SIM->SCGC2 |= SIM_SCGC2_DAC0_MASK;
3936

4037
DAC0->DAT[obj->dac].DATH = 0;
4138
DAC0->DAT[obj->dac].DATL = 0;
4239

43-
DAC0->C1 = DAC_C1_DACBFMD_MASK; // One-Time Scan Mode
44-
45-
DAC0->C0 = DAC_C0_DACEN_MASK // Enable
46-
| DAC_C0_DACSWTRG_MASK; // Software Trigger
40+
DAC0->C1 = DAC_C1_DACBFMD(2); // One-Time Scan Mode
4741

48-
pinmap_pinout(pin, PinMap_DAC);
42+
DAC0->C0 = DAC_C0_DACEN_MASK // Enable
43+
| DAC_C0_DACSWTRG_MASK // Software Trigger
44+
| DAC_C0_DACRFS_MASK; // VDDA selected
4945

5046
analogout_write_u16(obj, 0);
5147
}

0 commit comments

Comments
 (0)