AS1130 First attempt - working

No probs Funky...I'm doing it for the Uno as we speak....nearly done... :grin:

Awesome!
I won't be able to test it out until tomorrow because I left my serial cable for my duemilanove at work (the printer isn't set up right so I had to use the cable -_-)

OK!

Here is the PWM demo as promised:

Sorry about the crap quality but you get the idea. XD

Here's the code:

AS1130_Frames_demo_PWM_29102012.rar (6.28 KB)

as mentioned before here it is my crazy project for AS1130 and AS1108.... i apologize for not drawing better... i will tidy schematics up as soon as i finish all the other chapters.... routing, soldering, plastic 3D moulding, marketing, betatesting, etc.... it may take some time :cold_sweat:

as this project may add a little confusion to your discussions (Hexadec & Funkyguy4000) please tell me if you want me to open a new thread

i think i may reuse some of the coding you all have shared in this thread and as soon as i get mine i will share it as well

esquema03 - Schematic.pdf (367 KB)

J_ornothing:
(Hexadec & Funkyguy4000) please tell me if you want me to open a new thread

Lets just keep it all running in the same thread. I can't wait to see that thing actually work. (I actually followed your schematic)

As for the PWM demo, are we only allowed to use the PWM sets that are stored in the AS1130 or can we stream in PWM data? I wanna control the frequency of "raindrops" based on a personal rain detector that can detect how hard it is raining.

hello guys, hope you still know me

How could we forget you... :stuck_out_tongue:

Hello mate. :grin:

Simple maths is what you need...for 36 frames you need 2 bytes for each current segment so :

per frame:


12 current segments
2 bytes each 12*2 = 24


36 frames 36*24 = 864


PLUS you may need 1 PWM set
1 byte for each LED = 132

Bytes needed for each frame set = 864+132 = 996

For 3 devices 3*996 = 2988

therefore you need less than 3KB for each 36 frame set.

binarygod:
three AS1130's i'm going to use to show a moving font on the 11x396 screen.

Hold up! you can't do an 11x396 matrix using 3 as1130's . Each 1130 can drive 132 leds MAX. your 11x396 would need 33 1130's to drive that kind of matrix buddy.

To (almost) quote the great Bob Dylan...

"the answer my friend is blowing in the datasheet"

Have a good read. :grin:

...and...I even gave you a link to an explanation of multiplexing...read THAT as well.

Now I don't mind answering questions for someone who makes the effort and has the abilities required for the task, but actually THINKING for someone, then answering the questions, then answering the same questions again is really starting to make me lose the will to live........

Please binary, just read the datasheet, look at the cross-plexing diagram and then think about how digital electronics works

The datasheet is not as bad as some...but it IS hard to understand because it assumes quite a high level of knowledge and understanding from the reader. (quite rightly :grin:)

If you read up on how a screen/frame/matrix of LEDs is scanned...all will become clear. :wink:

Are you just trying to wind me up?

Read how I2C works (hint 7 or 8 bit addresses).

OR

A better idea...YOU use address 0x60 in YOUR code and then you'll KNOW why mine is as it is.

This is the last time I'm going to do your thinking/research! :wink:

Read this:

Specifically:

Note

There are both 7- and 8-bit versions of I2C addresses. 
7 bits identify the device, and the eighth bit determines if it's being written to or read from. 
The Wire library uses 7 bit addresses throughout. 
If you have a datasheet or sample code that uses 8 bit address, you'll want to drop the low bit (i.e. shift the value one bit to the right), yielding an address between 0 and 127.

I've already got some code that may be useful to you. I wrote it for the CCS C compiler.

What chip are you going to use and which compiler?

Oh well...I'm not familiar with either.

C is C though... :grin:

The program is pretty much C if you take out the Arduino Library stuff ie. wire.write() is i2c_write() or i2cWrite() in many C compiler libraries.

BTW I would use and adapt the LAST set of code I posted... :wink:

yeah..it has better comments and is laid out better. also uses PWM (if you need it)

I have also put some subroutines at the end that you may find useful. :grin:

@Funky

I've bitten the bullet...after seeing 500 LEDs for $14 inc shipping I've ordered 2 x 4" x 10" stripboards and I going for it... ]:smiley:

I can join the stripboards to make 8" x 10" which is big enough for a 24 x 22 matrix of LEDs (528) plus the AS1130s.

Wish me luck with all that soldering..... =(

Awwww yeaaaa.
Dude, you have as much luck as I can give, but i'm not a leprechaun so it may not make a difference.

Lemme know how it goes. I really want to make a rain animation using these ICs and all that as my end goal

More good news... :grin: :grin:

I've finally had the time to hook up a logic analyser to the AS1130 and it seems that I have a problem when using the wire library to read the registers...I haven't yet figured out what it is...but over reading all the registers around the Interrupt Status Register actually gets to read it AND clear the interrupt bit....Yeeeeeeaaawwwww!

This is the final problem with this chip.... XD

Will keep you updated.

So there may be an unknown internal connect?