Hallo MCTForum,
Im Rahmen meiner Abschlussarbeit stellt sich mir das Problem, dass ich
einen 10Hz Sinusgenerator mit einer Uss von 5V mit Hilfe eines
MSP430F169 realisieren muss.
Das zweite Problem ist eine Spannungsmessung im Bereich von 5-6kV. Bei
meinen Berechnungen komme ich auf einen Spannungsteiler von 2400:1. Es
ist kein Schwerpunkt auf die Genauigkeit zu legen. Diese Voltmeterfkt,
soll lediglich überprüfen ob der Kondensator mit Hochspannung geladen
ist oder nicht.
Was muss ich bei der Realisierung beachten bezogen auf Leckströme und
MCT-Schutz?
Ich habe im Internet eine Möglichkeit für den MSP430F169 - Sinus
generator gefunden:
1 | #include <msp430x16x.h>
| 2 |
| 3 |
| 4 |
| 5 | static int Sin_tab[200] = {
| 6 | 1639,
| 7 | 1690,
| 8 | 1742,
| 9 | 1793,
| 10 | 1844,
| 11 | 1895,
| 12 | 1946,
| 13 | 1996,
| 14 | 2046,
| 15 | 2096,
| 16 | 2145,
| 17 | 2194,
| 18 | 2242,
| 19 | 2290,
| 20 | 2337,
| 21 | 2383,
| 22 | 2428,
| 23 | 2473,
| 24 | 2517,
| 25 | 2560,
| 26 | 2602,
| 27 | 2643,
| 28 | 2683,
| 29 | 2722,
| 30 | 2761,
| 31 | 2797,
| 32 | 2833,
| 33 | 2868,
| 34 | 2901,
| 35 | 2934,
| 36 | 2965,
| 37 | 2994,
| 38 | 3022,
| 39 | 3049,
| 40 | 3075,
| 41 | 3099,
| 42 | 3122,
| 43 | 3143,
| 44 | 3163,
| 45 | 3181,
| 46 | 3197,
| 47 | 3213,
| 48 | 3226,
| 49 | 3238,
| 50 | 3249,
| 51 | 3258,
| 52 | 3265,
| 53 | 3271,
| 54 | 3275,
| 55 | 3277,
| 56 | 3278,
| 57 | 3277,
| 58 | 3275,
| 59 | 3271,
| 60 | 3265,
| 61 | 3258,
| 62 | 3249,
| 63 | 3239,
| 64 | 3227,
| 65 | 3213,
| 66 | 3198,
| 67 | 3182,
| 68 | 3163,
| 69 | 3144,
| 70 | 3123,
| 71 | 3100,
| 72 | 3076,
| 73 | 3051,
| 74 | 3024,
| 75 | 2996,
| 76 | 2966,
| 77 | 2935,
| 78 | 2903,
| 79 | 2870,
| 80 | 2835,
| 81 | 2799,
| 82 | 2762,
| 83 | 2724,
| 84 | 2685,
| 85 | 2645,
| 86 | 2604,
| 87 | 2562,
| 88 | 2519,
| 89 | 2475,
| 90 | 2431,
| 91 | 2385,
| 92 | 2339,
| 93 | 2292,
| 94 | 2244,
| 95 | 2196,
| 96 | 2148,
| 97 | 2099,
| 98 | 2049,
| 99 | 1999,
| 100 | 1949,
| 101 | 1898,
| 102 | 1847,
| 103 | 1796,
| 104 | 1744,
| 105 | 1693,
| 106 | 1642,
| 107 | 1590,
| 108 | 1539,
| 109 | 1487,
| 110 | 1436,
| 111 | 1385,
| 112 | 1335,
| 113 | 1284,
| 114 | 1234,
| 115 | 1184,
| 116 | 1135,
| 117 | 1087,
| 118 | 1038,
| 119 | 991,
| 120 | 944,
| 121 | 898,
| 122 | 852,
| 123 | 807,
| 124 | 763,
| 125 | 720,
| 126 | 678,
| 127 | 637,
| 128 | 597,
| 129 | 558,
| 130 | 519,
| 131 | 482,
| 132 | 446,
| 133 | 412,
| 134 | 378,
| 135 | 346,
| 136 | 315,
| 137 | 285,
| 138 | 257,
| 139 | 230,
| 140 | 204,
| 141 | 180,
| 142 | 158,
| 143 | 136,
| 144 | 116,
| 145 | 98,
| 146 | 81,
| 147 | 66,
| 148 | 52,
| 149 | 40,
| 150 | 30,
| 151 | 21,
| 152 | 13,
| 153 | 8,
| 154 | 3,
| 155 | 1,
| 156 | 0,
| 157 | 1,
| 158 | 3,
| 159 | 7,
| 160 | 12,
| 161 | 20,
| 162 | 28,
| 163 | 39,
| 164 | 50,
| 165 | 64,
| 166 | 79,
| 167 | 95,
| 168 | 114,
| 169 | 133,
| 170 | 154,
| 171 | 177,
| 172 | 201,
| 173 | 226,
| 174 | 253,
| 175 | 281,
| 176 | 310,
| 177 | 341,
| 178 | 373,
| 179 | 407,
| 180 | 441,
| 181 | 477,
| 182 | 514,
| 183 | 552,
| 184 | 591,
| 185 | 631,
| 186 | 672,
| 187 | 714,
| 188 | 757,
| 189 | 801,
| 190 | 845,
| 191 | 891,
| 192 | 937,
| 193 | 984,
| 194 | 1031,
| 195 | 1079,
| 196 | 1128,
| 197 | 1177,
| 198 | 1227,
| 199 | 1277,
| 200 | 1327,
| 201 | 1378,
| 202 | 1429,
| 203 | 1480,
| 204 | 1531,
| 205 | 1582
| 206 | };
| 207 |
| 208 |
| 209 | void dac12_init()
| 210 | {
| 211 |
| 212 | //Setup DMA triggers for both DMA channels
| 213 | DMACTL0 = DMA0TSEL_5; // DAC12IFG trigger
| 214 |
| 215 | // Setup DMA0
| 216 | DMA0SA = (int) Sin_tab; // Source block address
| 217 | DMA0DA = DAC12_0DAT_; // Destination single address
| 218 | DMA0SZ = 0xc8; // Block size
| 219 | DMA0CTL = DMADT_4 + DMASRCINCR_3 + DMAEN; // Rpt single ch, inc src, word-word
| 220 |
| 221 | //Setup DAC0 Load with Timer_A, group with DAC1
| 222 | DAC12_0CTL = DAC12LSEL_2 + DAC12IR + DAC12AMP_2 + DAC12IFG + DAC12ENC;
| 223 |
| 224 | //Setup Timer_A
| 225 | TACCTL1 = OUTMOD_3; // CCR1 set/reset
| 226 | TACCR1 = 1; // CCR1 PWM Duty Cycle
| 227 | TACCR0 = 800; // Clock period of CCR0
| 228 | TACTL = TASSEL_2 + ID_0 + MC_1; // ACLK, upmode
| 229 |
| 230 |
| 231 | DAC12_1CTL = DAC12IR + DAC12AMP_5 + DAC12ENC;
| 232 |
| 233 | }
| 234 | void dac12_ctl(unsigned int dac_dat)
| 235 | {
| 236 | DAC12_1DAT = dac_dat;
| 237 | }
|
Was muss an diesem Code noch gemacht werden? hat jemand schon einmal
erfahrung mit dem MSP430F169 DAC gemacht und kann mir helfen?
Da mein Schwerpunkt in der Hardwareentwicklung liegt bin ich leider
überfordert...
Grüße
Bla blubb Blubba schrieb:
> Was muss an diesem Code noch gemacht werden?
Funktioniert er nicht?
> hat jemand schon einmal erfahrung mit dem MSP430F169 DAC gemacht und
> kann mir helfen?
Von TI gibt es für jede Variante der MSP430-Familie Codebeispiele für
die verschiedenen Peripheriekomponenten, auch für den völlig veralteten
und überteuerten 'F169.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
|