Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


Everything posted by jrychter

  1. Greg, thanks for the answers! I suspected you populate the actual boards differently from the schematic. As for the push-pull, when I wrote "push-pull" I meant the microcontroller output (e.g. what is inside the micro, driving the pin). And the MOSFET pair you found is actually quite nice, I'll save this for future projects. My approach is different, because I'm designing a battery-powered device, where every mW counts (I generate 5V for WS2812 from a Li-Ion battery). This is why the low-valued resistor caught my eye immediately.
  2. Hey, some quick notes having taken a look at the schematic: The caps around MMA8453Q should probably be larger (a mistake in the value in the schematic?): C15 is normally 100nF, while C16 at least 1
  3. Well, the problem with the legged version is that the holes take up so much board space. My main motivation is lack of board space, so I'd much rather stay with the -NL version if possible. Thanks for your advice
  4. From people who have already used TagConnect
  5. USCI! That's even more impressive, then. I never managed to get the timings just right, and I couldn't get new data to the USCI in time
  6. You're running the LEDs off a G2553, that's quite impressive. I tried to drive WS2812 using the USCI, failed, and then tried the timer, also failed. I'm assuming you're driving them directly using cycle-counting? As for I2C restarts, USCI does support them, but the stock TI code (TI_USCI_I2C_master.c) does not seem to. I vaguely remember being annoyed about this in the past, but this is not the first time I was annoyed at the sad state of TI-supplied libraries. This is why I wrote my own USI I2C library, after all. Some I2C devices that are specified to use repeated start will also let
  7. That is a very good article, indeed. My results agree with theirs: what worked for my WS2812B strips was 1.3us total time, 400ns for 0H, 650ns for 1H.
  8. I'm not sure if it will help in your design, but I've found that you can save some board space by going with milled cutouts for screws instead of holes. Yes, you still need room for the screw top, but less than you'd need if you had the hole in the middle of the board. See the attached picture for an example (the bottom cutout is marginal, parts are placed slightly too close)
  9. [i really need to do a writeup of my experiences writing a reliable driver for the WS2812 strips] First, I'd strongly suggest using level-shifting to drive the WS2812 at 5V. It might depend on your particular chip/strip, but I couldn't reliably drive them from 3.3V logic. The datasheet (crappy as it is) states CMOS logic, 0.7*VCC, which is 3.5V. You *might* get away with 3.6V, but I wouldn't count on it. For prototyping I used a 74HCT04 with two gates wired in series, any HCT chip will do. For production devices I'll probably use a M74VHC1GT125DT1G. Second, if you are writing code to d
  10. Well, I don't think I can enlighten you, but I can state my reasons for using USI. It is true that USI is a very primitive peripheral. However, it still gets you: * a shift register, * a "timer" that precisely times your output, * interrupts, * outputs that are capable of simultaneously driving the bus and reading it (read on for why this might be needed). Here are my reasons for using the USI: * No matter what you do, I2C needs two pins. No savings here. * If I wanted to bit-bang, I would also need a timer, and there is only one on the G2412. Seems like a waste to use u
  11. I agree the WS2812 is a fantastic IC, but the documentation is really crappy. This is something I can't understand about Chinese companies (it isn't the first time I see something like this): the company makes millions of chips, but can't spare a week to write a decent datasheet? For those that do not know, there are at least three versions of the datasheet in question. Each version has different timings. In none of the versions I have do the timings add up correctly. The
  12. This is such a great idea. I've been writing code to interface with the WS2812 chips (and finally managed to get a 100% working solution using DMA and a timer, although not on a MSP430), but I never thought of producing PCBs that are segments of a circle. Very clever! I am so going to rip this idea off! Oh, wait, I think it is called "being inspired by". Or, if you're Samsung "discovered independently while innovating" :-) Thanks for sharing!
  13. I thought about it. However, there are several reasons why I don't think this will happen soon: These days I mostly use the G24x2 chips, because they are tiny, cheap and low-power. For anything even slightly larger I am moving to Freescale Kinetis. I did a quick'n'rough price comparison (see http://jan.rychter.com/enblog/ti-msp430-vs-freescale-kinetis-a-price-comparison) and it turned out that you can get a 48MHz 32-bit ARM Cortex M0+ for less than the price of a G2553. This means that most of my projects will now use the Kinetis chips, unless I want a simple, small, cheap and very low-power
  14. That was the whole reason for writing it
  15. I've written a tiny library that implements I2C master functionality on MSP430 devices that only have the USI module (for example, MSP430G2412 or MSP430G2452). It's small, simple, works well for me, and might help others in their projects. Blog post at http://jan.rychter.com/enblog/msp430-i2c-usi-library-released Github repo at https://github.com/jwr/msp430_usi_i2c Have fun!
  16. Well, that's just us Europeans enjoying higher prices on everything. And those don't even include 23% VAT. Ordering from the US is pretty much a non-option. Even if US distributors will ship abroad, you should normally do the customs paperwork and pay 23% VAT + customs duties. The paperwork is the real deterrent here. So, the only way I order parts is from distributors that ship from Europe. Oh, and Avnet Express is cool if you need 2000 chips :-)
  17. This isn't *strictly* on topic, but we touched on it in this discussion, so here goes: As far as chip choice is concerned, I just checked prices at Farnell UK (I'm limiting this to what they have in stock, non-BGA versions, qty 10, converted approximately to USD, sorted by price, only "interesting" chips chosen): MSP430F5508IRGZR (16k): $2.87 <- that's the cheapest in the F55xx line MSP430F5502IRGZR (24k): $3.46 MSP430F5509IRGZT (24k): $4.18 MSP430F5510IRGCR (32k, loaded): $4.60 Let's compare with G2 series pricing: MSP430G2553IRHB32T (16k): $2.92 and my favorite: MSP43
  18. Thanks to everyone for thoughtful and informative answers. Just to clarify, I don't need anything fancy or fast, just a basic UART for configuration and data retrieval. A 115200-baud UART would be just fine, and even 9600 would do. FTDI chips would be just fine if I could get my hands on the newer simpler I2C models (I could not find the FT200XD in Europe) and if they were slightly cheaper. The FT232RL costs about 3-4 times as much as the MSP430 I'm using :-) -- so I'd much rather upgrade to a F5508 (getting a ton of bonus peripherals in the process).
  19. jrychter

    IR library

    I wanted to implement TV remote functionality in some of my projects (both transmit and receive, as a simple communications protocol). Mounting and interfacing a TSOP348xx is simple enough -- but I couldn't find a library for managing TV remote signals. This is not something I want to write myself, as there are a number of protocols that need to be implemented and debugged. I was surprised that there is no code from TI that does this. Is there something I'm missing? The best I could find is a commit made to the Energia project about 6 months ago -- but that is a large piece of code, it
  20. This sounds quite interesting -- I didn't know you could program the chip via USB. Well, you've just about convinced me to at least try them :-) As for the pricing, the 2412 I'm using now is a bargain, but if I need ADC or USCI, I end up with 2553, which isn't that much cheaper than F5508 or F5510. And the F55xx series has LOADS of peripherals, much more than 2553. So it might make sense to go straight to F55xx. Do you plan to make your USB stack available?
  21. Well, one good reason to use G2xxx is price: the MSP430G2412IRSA16T, which I currently use in my projects is exactly 4.3x cheaper (checked at Farnell) than the cheapest usable (non-BGA) F5510 (MSP430F5510IRGZT). But let me clarify: I asked not about changing PC code, but about driver support. Think about it this way: if I build something and give it away to people, will they be able to use it? With FTDI chips the answer is yes: you download drivers from FTDI, which is reasonably easy, and you're done. This works on Mac and Windows at least. I should mention here that Texas Instruments'
  22. This is a question for people who have used the F5510 (or related). Is the USB interface on those chips usable in practice for a UART interface? The reason I ask is because I have many projects where I would like to have a working simple USB interface (UART on the PC side, I2C/SPI/UART on the microcontroller side). FT232RL works very well, but is large and expensive. The new FT200XD chip (USB to I2C) looks great, but is unobtainium for now. However, I prefer to ask, because USB on paper is very different from USB in practice. In particular, I'm worried about: * driver support: for
  23. In general, that's not very good code, because it isn't reusable. Declaring your state as static variables inside the function means that the state is shared. So if one day you decide to add another set of buttons, you won't be able to use the same function for both sets. A better solution is to have the state passed as a function parameter, to be modified by the function. My debouncing function looks like this: unsigned int debounce(unsigned int signal, unsigned int *integrator, unsigned int previous_output); where *integrator is a pointer to a state variable, supplied by the call
  24. So what about lnk_msp430g2412.cmd? Do you version that? Or targetConfigs/MSP430G2412.ccxml? And what about dotfiles? .config directory with everything that's inside, .ccsproject, .project, .settings dir? From what I can see, those get created even if one does not use Grace, and I'm not sure what to do about them.
  • Create New...