Jump to content

nobody

Members
  • Content Count

    94
  • Joined

  • Last visited

  • Days Won

    1
  1. If You want to try DIY version, then ADuM4160 is into FARNELL (
  2. It is probably open-collector output (need a pullup resistor).
  3. This capacitor (C14 - 1nF) is part of LaunchPad. If you connect programming wires to connector J2 connected to socket, you not need it. Of course, if You use J3 or mini - connector J4 then 1nF capacitor is recommended (but not absolutely must-have...).
  4. Back to reality. The operational amplifier is not working above its power rails. To use an operational amplifier for processing negative input voltage - it is necessary to use a negative supply voltage. There is another way to handling the negative input voltage: 1) allow buffered output reference voltage at the output pin. 2) use a voltage divider (two resistors) - one end of the reference voltage, the other end to the negative input voltage and the center of the analog input. 3) select resistors so that the analog input voltage was always greater than zero.
  5. I do not need (and do not have) the full code. It is only tip for inspiration - another way to do it. If it is a bad way - no problem. I see one error in my code (need 9x2 table - first line for start impulses and max. 8 lines for ending). One sticking point - at the time of updating data in the table will be generated bad impulses. This problem can be solved by synchronization updating routine and interrupt routine.
  6. Why do You not use something like this: static, fixed table char TPWM[8][2]= //TPWM[x][0] = Port pin status; TPWM[x][1] = Time; { 0x00, 10, 0x01, 20, .... }; and routine __interrupt void Timer_A0 (void) { static char n = 0; P1OUT = TPWM[n][0]; // Port pins next state TACCR0 = TPWM[n][1] << 8; // Update timer compare time n = (n++)%8; } or updated version (skip empty lines) __interrupt void Timer_A0 (void) { static char n = 0; P1OUT = TPWM[n][0]; // Port pins next state TACCR0 = TPWM[n][1] << 8; // Update timer compare time do n = (n++)%8; while(TPWM[n][1] == 0); } EDIT: this code use 16bytes of RAM (and for 16 channel PWM need 48bytes RAM (table 16x3)) and one byte in interrupt routine.
  7. nobody

    IAR Code Size

    Look here: http://www.43oh.com/forum/viewtopic.php?f=8&t=1468
  8. Look here: http://www.43oh.com/forum/viewtopic.php?f=8&t=411&start=10#p3396
  9. Why did you completely ignore the design rules? TPS6205x based board needs to be revised. Path between TPS6205x and blocking capacitors must be the shortest as possible. C10 is necessary to move the left edge. C11 is a need to move under the coil (between coil and NanoBoard, not at the opposite layer). And between the boards is not gap to cutting.
  10. Path from MCU GND to crystal GND is unnecessarily too long. I suggest to oppositely rotate crystal + capacitors (ground pad toward to programming header). 2nd suggestion- move programming header into 0.05" raster aligned with 0.1" data headers (for easier to use into universal punched boards). BTW: If you move a bit R3 + R4 + LED1, so you can fit on board the standard 0.1" programming header.
  11. What is your problem? Look at THIS!
  12. Look at MSP430FR57XX series (expensive, but very good), or my favorite MSP430AFE (only 16x16 MPY)...
  13. CCS don't have simulator (IMHO?). It's better first testing software and then buy adequate hardware. You don't need write full application, only time - critical part and exactly (in simulator) measure time and memory consumption. And then select adequate processor and buy it. Libraries are not the same (calling conventions and source code in C is almost the same, but implementation in libraries is manufacturer-dependent). I don't know whether it is better this or that... I personally hate Eclipse-based systems, then use IAR.
  14. Our schematics is "voltage follower" - it's impedance converter (high input impedance and low output inpedance). 1M resistor is not necessary, input impedance of good FET opamp is much higher. But is almost necessary using rail-to-rail opamp. IMHO use opamp for this is overkill. Put capacitor (100nF is enough) paralel into analog input and throw away opamp. Opamp is necessary if you measure something like vacuum tube photocell or other high impedance device (Mohms to Gohms). For measuring at the ~30kOhm divider is unnecessary.
  15. Small mathematics: You have 16 million clock cycles per second. And you have 25 ms time window. One machine instruction takes 1 to 6 clock cycles (eg, on average pessimistic 4 cycles?) In our time window processor executes (16e6 * 25e-3 / 4) = 100,000 machine instructions. And your second example - 10,000 machine instructions in time window. Your simple math is piece of cake for this brute force ... Your problem is memory. FP math library consumes lot of flash space. IMHO 4kB flash is minimum, 8kB is better. Install IAR workbench, write a simple test version of its mathematics and run in the simulator. Then change target versions (in simulator) and select processor that is best for your application.
×
×
  • Create New...