Jump to content

intellijel

Programmer
  • Posts

    107
  • Joined

  • Last visited

    Never

Everything posted by intellijel

  1. hmm I misread the datasheets before. I also assumed this because of what Ralf Suckow said on his page http://www.suckow.de/ralf/ledmatrix4x20/ In fact I can't see what the difference is at all (except that they are more expensive). Eitherway, is not the max source current +/25mA? or is that the total possible for the chip (not individual pins)
  2. I am talking about the 74HCT595 not the 74HC595 (it is the higher current version)
  3. \ I know the button matrix is scanned but I didn't think the led matrix was as well. Looking at the code I think I see where that is happening. So yeah that reduces the current load on the SRs for sure.
  4. You mean for the SR driving the cathodes and this is only for a duo color What I mean above is just for driving anodes. However if I use the 4x16 configuration, each 74HC595 SR is only driving a max of 4 anodes (4 x 0.6mA) but the cathode SR is sinking a max of 24 leds (3 colors x 8 leds per column = 24x0.6mA). As I mention in another post this is well below the current handling capabilties of the uln2003a (assuming it is there to sink current)
  5. let's say all the red leds are ON in row 1. Wouldn't that mean that 4 leds are being driven by a single SR pin out? (but each of the 4 pins on the Cathode SR is sinking a current) However, if I had 8 LEDs in a column on, each SR would only drive one led but the Cathode SR would be sinking the current for 8 leds. This is all assuming a 4x8 matrix The max current a single pin on a Cathode SR would sink is when a whole column is lit up and all three colours are being used. If rgb this would be 24x Id (led current). ULN2003A can sink tons of current so this is not an issue. As for efficient RGB leds, I just bought custom made, superbright RGB leds from china. They have flat tops and are diffused. Unfortunately I wish there was a little more plastic on the tops of them to help diffuse the colors better but I am fixing that putting a short plastic tube on each one and then putting a semi-translucent plastic where the holes will be on my front panel. The red draws the most current at 0.6 mA with the brightness I want (and I get a smooth 180 degree viewing angle once it is appropriately diffused). The other colours draw 10x less!! If you look at the code I posted above, I already added and changed the anode variable names to make it more readable for my application DEFAULT_SRM_DOUT_RED1 DEFAULT_SRM_DOUT_BLU1 DEFAULT_SRM_DOUT_GRN1 I will actually be able to drive all the cathodes from one SR+uln2003a so just 4 SRs in total will be used. HOWEVER, I need a 8x16 matrix of leds so I need this code to drive two 4x16 matrices, not two 4x8 matrices OR should I just have a second core do this? I have no issue with chaining multiple cores but I have a feeling I may not need to.
  6. Aha that makes sense! My rgb leds are very low current (the max for any color is 0.6mA at the brightness I want). I could put 16 in a row and they would still draw only about 10.6mA while the 74HCT595 pins can supply at least 25mA. However, I will be using a uln2003a to sink the current just in case. So now that I know my LED currents are so low, would it not be easier for me to modify the hardware and software so that a single SR is used to drive 8 columns and then use 3 other SRs for a color each (to make an 8x8 matrix) I would then move the button scanning matrix to a simmilar setup (one SR for the columns, 1 SR for the rows)
  7. turns out it is not even necessary for me. The rgb leds I got are so efficient that the max current draw from any one colour (at the brightness I need) is only 0.6mA. The 74HCT595 will provide about 25-30mA max current per pin I could easily drive a row of leds that is 16 wide (16 x 0.6mA = 9.6mA)
  8. I want to merge functionality from the following two examples: ain64_din128_dout128_v2_0.zip AND blm_example_v1_2.zip So on the first sets of DOUTs and DINs would be the blm matrix. Is there any problem with using the other functions found in ain64_din128_dout128_v2_0.zip as long as I do not address an SRs being used by BLM? Or are there other resources/functions etc. that will not be happy together? thanks!
  9. I am going through the BLM.asm example under the C interface section but since this part is in assembly I thought it was appropriate to seek help here: It looks pretty straightforward to modify in order to drive rgb leds. Since the BLM is formed from two 4x8 led matrices (called L and R) I just needed to add an extra SR on each side. This affected small things like the which SRs are used for driving the cathods and I had to add some extra variables (and change some names) make the three sets of colors clear. So each bank of 4x8 is formed from one SR (4 pins) driving the cathodes and then three SRs for red green and blue respectfully. There is only one section of the code that I do not know what to do with (given my limited understanding of assembly code): ;; store row*2 offset in IRQ_TMP1 to simplify the addressing of blm_row_green and blm_row_red array SET_BSR blm_selected_column movf blm_selected_column, W, BANKED rlf WREG, W andlw 0x06 movwf IRQ_TMP1 In this section I am not sure what to change or add since there is an additional offset for the 3rd color. The full modified BLM.asm code can be found here: http://intellijel.com/blm.asm http://intellijel.com/blm.h ------> just the one array added for blue color help is appreciated!
  10. I am planning to use the dout module to drive an 8 x 8 led matrix. I will sink the current with a uln2003a but I think I still need higher current sources from the shift registers than the 74hc595 (or 74hct595 for that matter can provide) The TPIC6595 is the ideal solution but it is not pin for pin compatible (why not??). Does anyone know of a pin for pin compatible high current version of the 74HC595?? cheers, Danjel
  11. cool! I forgot to ask: If I already have modules written in assembly code, is there an easy way to call those functions from the main C app? cheers, Danjel
  12. The C examples use pic18f452.c Is there a header file for the pic 18F4620? (e.g. pic18f4620.h) cheers, Danjel
  13. I am building a system that requires the following functions: 2 cores linked Each core can handle: - 64 pots - 128 buttons - 64 rgb leds -LCD screen that can receive display data via midi (use sysex and a sysex handler?) In order to handle the 64 rgb leds, 2 DOUTx4 modules need to be used to control an led matrix (each one handles 32 leds). On each DOUTx4 module, the first SR only uses 4 pins to drive common cathode columns. The other 3 SR's each connect to one of the RGB colours: SR1: columns SR2: red (rows) SR3: green (rows) SR3: blue (rows) The rgb leds would be set via NoteOn messages where the velocity value is decoded to turn on the rgb colour (e.g. there are only 7 possible colours so we only need 3 bits). This function would then have to set the values at the three different SR's that represent the components colors of a single RGB led. Does the RGB led handler need to be written in assembly code?? Can I write all of this in C? If so, I would just start with the sdcc_skeleton_v1_9c.zip? (I guess use the ain64_din128_dout128_v2_0.zip as a good starting point) Next question: this whole control surface is going to be interfaced to a pc running max/msp. I want max to be able to send text strings to an lcd (or multiple) lcds on my controller. What is the best way to do this using midi? thanks! Danjel
  14. Yep the above worked. So personally I would highly recommend buying a pic kit 2 (or clone...eitherway they are under $40) and then you can use the Pic Kit 2 software to program the PICs. I made the connections listed above on a breadboard in about five minutes and had no problem programming a PIC18F4620
  15. From another site I found this connection scheme: PICKit2 pins 1 - VPP to 1 from PIC18F452 2 - VDD to 11 and 32 from PIC18F452 3 - GND to 12 and 31 from PIC18F452 4 - RB7 to 40 from PIC18F452 5 - RB6 to 39 from PIC18F452 6 - not used I assume PIC18F452 and PIC18F4620 are interchangeable in this situation as well?
  16. I built the Pic Burner hoping that a USB to Parallel cable would work with it. It doesn't...or at least I can't get P18 to recognize it. I would read the helpfile or e-mail Sprut.de if everything wasn't in german!!! I don't have a computer with a parallel port (like most people these days). What USB based programmer can I use to program the PIC18F4620 and PIC18F452. Is there a simple circuit I can build so that I can use a Pic Kit 2? Or should I buy something like this: http://www.electrokits.com/electronics/programmers/100.htm Help greatly appreciated, I need to get these burned ASAP btw, I could buy them with the boot loader burned in from smash tv but the price of buying four or more chips from him is the same as buying a commercially available burner and then I can get an almost endless supply of free chips from microchip.com as samples.
  17. oops my mistake! I meant to discuss the Pic Burner. I will move this to a different topic
  18. Like most people with modern PC's I have no parallel port. I have a USB to 25pin parallel port adapter but I can't get it to work. With this cable I have sucessfully connected an HP printer, however when I connect the JDM to it and then plug into a USB port no hardware is detected and I am not sure what driver to install. Is there a generic USB to Parallel port driver that might work? Anyone have any tips? thank!
  19. yeah I was figuring 11x11mm to account for slop but also to account for possible alignment issues with he PCB (I forgot to factor in those tolerances). Just for an example the buttons on my Nord Lead 2 have almost a 1mm gap around them.
  20. So I am in the process of designing a PCB that will have a bunch of tact switches on it. Each tact switch has a square cap that is 10mmx10mm and they have a geometric tolerance of +/-0.2mm. So if I am designing the openings for these on a panel design the squares have to be bigger than 10.2mmx10.2mm but what should the ideal size be? e.g. How much clearance should I design in? 0.1mm? 0.2mm? ?? thanks, Danjel
  21. So it looks like I was misunderstanding the Arduino, I think the fact that a lot of the includes and defines were hidden it gave me the impression that I was somehow working with higher level version of C but it IS C. The arduino bootloader takes up a whopping 4k but other than that it is reasonably efficient code. I just need an arduino platform that runs on a more powerful uC and then I am homefree :) OR I just take code I develop on an arduino and then port it to proper C code on a more powerful platform. (they both use the avr-gcc compiler anyways)
  22. So from what I can tell, the new Atmel XMega series should be exactly what I want. The ATxmega128A1 is supposedly out but I have not found a source for it yet. One disadvantage for a hobbyist is the TQFP and BGA packages instead of the DIP variants. This means that I would need to buy the ATSTK600 development board and a ATSTK600-TQFP100 for the chip. Not to mention the expensive jtag programmer. I guess another option is to use Atmega32-168 but chain several together and have each one do a few functions. On the AVR freaks site one guy has recommended the ATmega640, ATmega1280, ATmega2560 Lot's to learn!
  23. I would really like to develop my own type of MIOS but I am no whiz with embedded systems like TK. This means that I would not likely be able to take an inexpensive uP and write efficient code, super low latency code. I look at stuff like Arduino that uses a really nice high level language like processing but I assume the added overhead, smaller amounts of i/o and less interrupts would result in a far more clumsy midibox type system. Instead I am looking for an over spec uP platform for which C compliers exist in an effort to compensate for less pro coding. Basically trading low cost for increased performance. Also what I am trying to build would require the equivalent of two cores anyways so I wonder if I can just use a uP with tons more i/o? The whole purpose of this is to just learn more and then eventually graduate to writing slicker code.
  24. Actually I think there is a way: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1161023163;start=all
  25. Ok so they are using OLED display keys are from UNITED KEYS. I did not look carefully at the pricing. The $450 model is for an oled spacebar only!! If you want one with 113 buttons it will be a whopping $1564.37 I guess it will be a couple of years until the mobile phone and video game industry drive the prices down to be accessible for DIY guys like us. Until then it is back to TACT swicthes for now!!
×
×
  • Create New...