Jump to content


  • Content count

  • Joined

  • Last visited

  • Days Won


terjeio last won the day on December 26 2017

terjeio had the most liked content!

About terjeio

  • Rank
    Level 1

Profile Information

  • Gender
  • Location
  • Interests
    Electronic design, motion control, programming
  • Github

Recent Profile Visitors

428 profile views
  1. RFC: CNC BoosterPack

    @bluehash Thanks. This is not a commercial project, only a small batch of boards will be made and my plan is to make a few available at cost. @jazz I am not sure I understand your point, the ICs will be run well below their max power rating and output transistors are placed close to the connectors so that the connector pins acts as heat sinks. The motor drivers will be the only components with significant power draw/dissipation, this may cause a bit of heating above ambient for the pcb tracks going to the motor connectors. Shorter tracks would be better but (IMO) lead to a more messy design. Also, when routing, I was a bit surprised that I ended up with relatively few vias and fairly clean ground planes. I could have dropped support for the MSP430F2955 launchpad to allow more flexible pin assignments and thus made routing easier. However, since I was able to make a driver for GRBL I wanted to add it. This also means the design follows the BoosterPack design guidelines more closely (but still not 100% compliant). Terje
  2. RFC: CNC BoosterPack

    I have recently been working on a CNC BoosterPack that I will make available on Github when completed later in the spring. Current specifications: Support for my HALified version of GRBL (based on 1.1), currently drivers has been made for MSP432 (black version), Tiva C and MSP430F2955. NOTE: firmware is built with CCS 6.1, MSP432 driver is 100% CMSIS based. Opto-coupled inputs, NC switches recommended. Opto-coupled outputs with 200mA open drain drive for spindle on, spindle direction, flood and mist. Can drive most relays and solenoids directly. Output section can be powered from internal 3V3 or 5V source, or from external source. If powered from external source outputs can be made opto-isolated via jumper setting. PWM-output for spindle speed currently directly connected to MCU pin (could be changed to open drain). I2C (IIC) interface with selectable voltage level (3V3 or 5V) via level shifter, dedicated interrupt input. I2C pinout compatible with my 4x4 keyboard project, supports jogging etc. Optional EEPROM for configuration settings for MCUs with no internal EEPROM. Polulu 8825 motor driver breakout board compatible. Fault signal routed to GPIO input. Considered for later revision: Break out SPI interface and add full support for Trinamic motor drivers. Optional (SPI) DAC for motor speed (laser power) control. This might require a 4-layer PCB and also solving the pinout cabal... --- Anything you want changed? Terje
  3. MSP430F5529 LPM Questions

    I have ported code from that application note to C, one version is available on github if of interest. I2C-interface-for-4x4-keyboard Terje
  4. msp430f447 tft lcd interface

    https://cdn-shop.adafruit.com/datasheets/ILI9341.pdf Changing the code from SPI to parallel comms for an existing library could be the easiest way to get it working. Maybe there are libraries available utilizing parallel comms for diifferent MCUs that can be adapted without too much effort.
  5. Tiva Reset

    Sorry for beeing a bit terse again, OR'ing NVIC_APINT_VECTKEY with the bits you want to set is the trick to make it work since NVIC_APINT_VECTKEY is the "password" or "guard" bits to allow the other bits to be changed. My point was that some other registers are similarily protected so it is something to be generally aware of. Read the documentation carefully is my motto - and do not expect details like this to be found in the context where you might think it should be mentioned.
  6. Tiva Reset

    Some registers are "password" protected. From page 164, APINT-register description: VECTKEY: "This field is used to guard against accidental writes to this register. 0x05FA must be written to this field in order to change the bits in this register. On a read, 0xFA05 is returned." So if register writes does not work as expected this is something to keep in mind.
  7. I2C interface for 4x4 keyboard

    I2C interface for 4x4 keyboard with partial support for 2-key rollover and autorepeat. Based on a Texas Instruments MSP430G2553 processor, uses a GPIO pin for signalling keypress events to host. Example PCB is a KiCad project for the 20-pin DIP version MSP430G2553. https://github.com/terjeio/I2C-interface-for-4x4-keyboard I am using this to test jogging in my GRBL-port embedded in the CO2-laser controller firmware (for Tiva C) I am working on. I have left some code (#defined out) to show how 2-key rollover and autorepeat can be enabled for some keys. The hardware abstracted ARM GRBL-port and an example driver for the Tiva C LauncPad is also available on GitHub.
  8. I have not switched to CCS 7 yet, in CCS 6 you can find examples via View > Getting Started > Browse Examples - same in CCS 7? Since many MSP430 processors have limited resources I prefer to implement the interfaces myself, reusing snippets of code from earlier projects.
  9. Does port 6 support interrupts? - check the documentation for your processor. I know this is not always so for the processors I have used.
  10. What is the requirement which is not met? Bouncing issues? Button matrix scanning? You need to use NMI?
  11. What are you doing right now..?

    "On the edge" - I finally got around to port the latest GRBL version (1.1f) to ARM, in the process HALifying and making a library out of it. I then integrated it into my Tiva C based CO2-laser controller card codebase - next step is to hook it up to the laser proper to verify everything is working outside the test setup. I have to spend some time to learn git - currently I use Subversion for source control, running on my local server. I will not swich to git, Subversion works great for me, but for making code available to the community git is the way forward? Implementing a HAL-driver should be relatively straightforward, the core GRBL code in my port is nearly 100% hardware agnostic and all hardware related code can reside in one file (the HAL - Hardware Abstraction Layer). A preliminary version of my port can be found in the tread "Portability Experiments (ARM M4)" over at https://github.com/gnea/grbl/issues Test rig, from the edge... Terje
  12. A Google search - and I found this: https://github.com/fmilburn3/RTClib I find solutions for most of the questions I have by searching - if that fails then the manuals are great. This processor even has driverlib support it seems.
  13. Button Interrupt

    Maybe wrong processor selected? Will it work if you remove #include <driverlib/rom.h>?, I believe that will force the linker to link the complete library functions into your program - IIRC when using the ROM version only a dispatch table and some stubs are added. If this does not help you may copy the GPIOIntRegister implementation into your code...
  14. Button Interrupt

    You have to register your interrupt handler with GPIOIntRegister.
  15. Issue with transforming from port2 to port1

    @@NurseBob Sure have to do that, from table 8.2 in the user guide: "Port Select P2SEL 02Eh Read/write 0C0h with PUC" 0Ch means pins 6 and 7 are configured for primary peripheral module function on power up, not i/o.