#avr | Logs for 2013-11-16

Back
[00:45:15] <megal0maniac_afk> N1njAway: Cool, got it. For my next trick, I'll make two avrs communicate :)
[00:47:14] <Enma_Hinobara> Such small ambitions
[00:47:20] <Enma_Hinobara> Make a supercluster of them
[00:48:12] <Enma_Hinobara> Hmm. I suppose you really couldn't connect more than 256 of them
[00:48:22] <Enma_Hinobara> Without some kind of bridge
[00:58:36] <hwgasdfasdf> anyone know how to succesfully use the preprocessor to conditionally compile code on what interrupt is being used
[00:58:48] <hwgasdfasdf> i'm trying to do this, all 3 #if's evaluate to true
[00:59:13] <hwgasdfasdf> #if RF12_INT_VECT == INT0_vect EICRA = 0x02; //INT0 falling edge sensitive EIMSK = 0x01; //INT0 enabled #warning "RF12: USING INT0" #else #warning "RF12: NOT using INT0" #endif #if RF12_INT_VECT == INT1_vect EICRA = 0x08; //INT1 falling edge sensitive EIMSK = 0x02; //INT1 enabled #warning "RF12: USING INT1" #else #warning "RF12: NOT using INT1" #endif
[00:59:34] <hwgasdfasdf> seems that INT0_vect is some weird macro and doesn't get expanded properly to be able to do that
[00:59:46] <megal0maniac_afk> Well thst
[00:59:58] <megal0maniac_afk> that pasted awfully
[01:00:13] <hwgasdfasdf> yeah, I know, I should use a real irc client instead of the java one
[01:00:21] <hwgasdfasdf> just a second
[01:01:23] <megal0maniac_afk> Not that I can help, just saying. Pastebin is your friend
[01:02:44] <megal0maniac_afk> Enma_Hinobara: Baby steps. Maybe I'll make a calculator. One AVR for every mathematical function
[01:03:48] <hwgasdfasdf> ok, in a header file I define a variable that maps to an interrupt such as this: #define RF12_INT_VECT INT0_vect
[01:04:07] <hwgasdfasdf> that gets expanded correctly so the interrupt handler gets named properly
[01:04:15] <hwgasdfasdf> but I can't seem to do this and have it work
[01:05:48] <hwgasdfasdf> #if RF12_INT_VECT == INT0_vect
[01:05:49] <hwgasdfasdf> code to enable int0
[01:05:51] <hwgasdfasdf> #endif
[01:05:52] <hwgasdfasdf> #if RF12_INT_VECT == INT1_vect
[01:05:54] <hwgasdfasdf> code to enable int1
[01:05:55] <hwgasdfasdf> etc
[01:06:04] <hwgasdfasdf> all of them evaluate to true
[01:06:16] <hwgasdfasdf> so all the interrupts get enabled, which is obviously not what I'm after
[01:07:13] <hwgasdfasdf> seems that the preprocessor does not expand the INT0_vect properly, or perhaps it doesn't turn into an int, so I can't check equality of it or something
[01:07:32] <megal0maniac_afk> Can you do string comparison like that?
[01:08:13] <hwgasdfasdf> probably not, and I suppose INT0_vect turns into a string, and not an int
[01:09:15] <megal0maniac_afk> I'm not sure what kind of engine the preprocesspr runs on. Silly suggestion, maybe, but try a parallel integer definition
[01:11:02] <megal0maniac_afk> Quick search shows that might work
[01:12:35] <megal0maniac_afk> otherwise you can use strcmp in a preprocessor directivr
[01:13:06] <megal0maniac_afk> damn this teeny tiny keyboard
[01:13:33] <hwgasdfasdf> yeah, I was just looking at the same page you probably were
[01:13:39] <hwgasdfasdf> about the strcmp in preprocessor
[01:13:53] <hwgasdfasdf> seems very messy
[01:14:30] <megal0maniac_afk> Otherwise use #ifdef blocks around your interrupts
[01:14:55] <hwgasdfasdf> I wonder how other people do this - surely I'm not the only person who wants to write a reuseable library that can be configured for different pins and interrupts on preprocessor directives
[01:15:16] <hwgasdfasdf> yeah, I guess #ifdefs could work
[01:16:13] <megal0maniac_afk> Actually I believe that's the standard
[01:16:26] <megal0maniac_afk> Or convention rather
[01:16:55] <hwgasdfasdf> yeah, then I'd have to define RF12INT0 or RF12INT1 etc
[01:17:00] <hwgasdfasdf> also messy, but workable
[01:17:31] <megal0maniac_afk> But less messy than strcmp in a define :)
[01:18:00] <hwgasdfasdf> better than suddenly all interrupts enabled, and no handlers on 2 of them, and random crashes when the interrupt fires with no handler attached to it!
[01:18:30] <hwgasdfasdf> good waste of 2 hours tracking that down!
[01:19:00] <hwgasdfasdf> especially because I use function pointers as well, and figured maybe one of them somewhere wasn't pointing at something that existed as well
[01:20:31] <megal0maniac_afk> Yeah... string == string is usually a red flag. So try it and see :)
[01:21:30] <megal0maniac_afk> I'm off. Let us know what works
[01:21:40] <hwgasdfasdf> thanks
[01:21:49] <megal0maniac_afk> np
[01:22:03] <hwgasdfasdf> always trying to be too fancy / re-useable, and I get myself into trouble
[01:22:11] <hwgasdfasdf> should write simple code - then it always works
[01:52:56] <hwgasdfasdf> for info, I used a define, and ifdefs to fix my problem
[02:23:13] <megal0maniac_afk> abcminiuser: How goes GDP? :)
[02:23:36] <abcminiuser> I THINK I'M DYING
[02:23:39] <abcminiuser> SEND AN AMBULANCE
[02:23:52] * megal0maniac_afk weeeewaaaweeeewaaaa
[02:24:30] * megal0maniac_afk calls local ambulance. Tells it to go to Norway
[02:25:10] <abcminiuser> Of all the times to forget my damn lactase tablets
[02:25:19] <abcminiuser> The biblical pizza night was not the best
[02:25:32] <megal0maniac_afk> I called it!
[02:25:41] <megal0maniac_afk> Thought you'd learnt from last time
[02:26:15] <abcminiuser> Yeah, kinda forgot after the beer
[02:26:26] <abcminiuser> So today I'm in a near hospitialized state
[02:28:01] <megal0maniac_afk> Ah, the beer...
[02:28:14] <megal0maniac_afk> abcminiuser: Have you seeeen this?? http://www.kickstarter.com/projects/214379695/micro-python-python-for-microcontrollers
[02:28:21] <megal0maniac_afk> It's amazeballs
[02:29:28] <abcminiuser> Archer!
[02:29:49] <abcminiuser> Sweez cheezus that can't be fast
[02:31:26] <megal0maniac_afk> Well he rewrote python. And that uC is quite beefy
[02:33:41] <megal0maniac_afk> For only £1000 you can get that ported to an atsam
[02:37:06] <Enma_Hinobara> Does there exist an inexpensive 16+ bit DSP that can do vector math?
[02:37:36] <Enma_Hinobara> I.e. 4+ 16-bit computations simultaneously
[03:05:58] <megal0maniac_afk> Lawdie. Samba is not kind to processors
[03:28:27] <OndraSter> what samba?
[03:28:56] <OndraSter> I know two things called samba and neither of those have anything to do with MCUs
[03:34:33] <abcminiuser> Atmel SAM bootloader
[03:34:39] <abcminiuser> It's an abomination until the Nuggin
[03:34:43] <abcminiuser> Also, GDP!
[03:43:13] <OndraSter> oh
[03:43:16] <OndraSter> this samba
[03:43:18] <OndraSter> forgot about it
[03:43:29] <OndraSter> yet I used it
[03:59:58] <megal0maniac_afk> OndraSter: Samba server, but on a 1.2ghz SoC more than a MCU :)
[04:36:34] <jerkey> well for everyone who was on the edge of your seat wondering about my download of the atmega2560, i downloaded it onto a different computer with a different programmer (dasa serial bitbang ISP) and got the same result: 262106 bytes!
[04:54:41] <OndraSter> jerkey, and what application?
[04:59:32] <megal0maniac_afk> I just used studio with the xmega and got a 760 401b file
[05:00:14] <OndraSter> it creates the ELF doesn't it?
[05:00:19] <megal0maniac_afk> Nope, .hex
[05:00:20] <OndraSter> since it dumps everything
[05:00:22] <OndraSter> hm
[05:00:34] <megal0maniac_afk> Not that I care. I'm doing this out of interest in jerkey's issue
[05:01:03] <OndraSter> I dumped few (x)megas with as5/6 and had no issues, it was always the 256kB/128kB/..
[05:01:19] <megal0maniac_afk> OndraSter: http://megal0maniac.dyndns.biz/xboarddump.hex
[05:01:45] <OndraSter> eh
[05:03:17] <OndraSter> wel
[05:03:18] <OndraSter> .hex
[05:03:20] <OndraSter> it is not binary
[05:03:29] <megal0maniac_afk> avrdude doesn't support this chip. At least not this version
[05:03:31] <OndraSter> so it surely won't be exact 256kB
[05:03:49] <megal0maniac_afk> Yeah but 3x the data size? surely not
[05:04:04] <OndraSter> absolutely yes
[05:04:12] <OndraSter> plus the fact that 256kB device has got 264kB
[05:04:33] <OndraSter> (bootloader has extra flash)
[05:05:44] <megal0maniac_afk> That's true
[05:05:53] <megal0maniac_afk> Oh well :D
[05:05:57] * megal0maniac_afk unplugs programmer
[05:05:59] <OndraSter> remember that at hex you have few :address on each line
[05:06:01] <OndraSter> and \r\n
[05:06:05] <OndraSter> so yeah, it will get to 3x the size
[05:06:07] <megal0maniac_afk> Yeah
[05:06:18] <megal0maniac_afk> How long is the address part
[05:06:20] <megal0maniac_afk> ?
[05:06:41] <OndraSter> 9 chars I think
[05:06:50] <OndraSter> or 12
[05:06:52] <OndraSter> ?
[05:06:54] <OndraSter> not sure right now
[05:06:58] <OndraSter> just check the file :P
[05:07:05] <megal0maniac_afk> Ah, 5 bytes. It's in the last line
[05:07:16] <megal0maniac_afk> Couldn't tell where the address ended and data started
[05:07:38] <megal0maniac_afk> And 16 data
[05:08:57] <megal0maniac_afk> Okay there's 264kb
[05:09:09] <megal0maniac_afk> And 16 extra bytes at the end O.O
[05:09:21] <megal0maniac_afk> Or beginning. Or middle. Who knows?
[05:09:50] <OndraSter> there is "hex file end" at the end I think
[05:09:53] <OndraSter> marker
[05:09:56] <OndraSter> not crc or w/e it is
[05:09:59] <OndraSter> or*
[05:10:19] <OndraSter> just read rfc for the intel hex file
[05:10:45] <megal0maniac_afk> Oh hell no
[05:10:51] <megal0maniac_afk> Maybe another day :P
[05:11:02] <megal0maniac_afk> I can see where the BL starts though
[05:11:05] <OndraSter> (aka never)
[05:11:11] <OndraSter> it should be in the BL section AFAIK
[05:11:17] <megal0maniac_afk> OndraSter: Two exams to go!
[05:11:18] <OndraSter> yey
[05:11:25] <OndraSter> I have three things next week
[05:11:27] <OndraSter> two during one day!
[05:11:35] <OndraSter> discrete maths and Automata and gramatics
[05:11:51] <megal0maniac_afk> Yeah there's a line with only 2 bytes before the BL
[05:12:05] <megal0maniac_afk> And an address with no data at the end
[05:12:33] <megal0maniac_afk> Doesn't account for the 64 missing bytes, but w/e. Electrical engineering now. Time to learn about power factor!
[05:13:11] <OndraSter> we did that on... middle school
[05:16:27] <megal0maniac_afk> Yeah, not much electronics in our science curriculum
[06:28:41] <megal0maniac_afk> abcminiuser: For fun, and because I'm procrastinating, I tried GDP. It fell over: http://pastebin.com/raw.php?i=EjjNksTG
[06:31:52] <megal0maniac_afk> Well damn
[07:04:46] <beaky> hello
[07:06:24] <beaky> how do i produce an analog signal from avr
[07:07:29] <OndraSter> R2R DAC
[07:07:31] <OndraSter> or PWM + filter
[07:07:52] <beaky> so i just stick a cap across my pwm line?
[07:07:56] <beaky> and that works? :D
[07:12:36] <megal0maniac_afk> beaky: Google low-pass RC filter
[07:27:37] <beaky> if i have an ISR, and then i get interrupted while executing that isr, what happens
[07:35:06] <beaky> e.g. i have an analog comparator isr, then an INT0 isr, and a UART_RX isr and SPSR one
[07:36:34] <megal0maniac_afk> beaky: You should read the datasheet again
[07:36:45] <megal0maniac_afk> It's all there
[07:37:42] <megal0maniac_afk> I'll give you points if you can tell me
[07:40:29] <beaky> they are queued and the most priority one is jumped into
[07:40:32] <beaky> and executed
[07:42:45] <megal0maniac_afk> No
[07:43:20] <megal0maniac_afk> Did you get that from the datasheet?
[07:43:48] <megal0maniac_afk> xmega handles interrupts differently, but I assume we're talking about regular atmega/attiny
[07:51:00] <megal0maniac_afk> beaky: Hint: Look at Reset and Interrupt Handling
[07:51:30] <RikusW> megal0maniac_afk: https://github.s3.amazonaws.com/media/progit.en.pdf
[07:51:42] <RikusW> I'm finally learning to use git :)
[07:51:59] <megal0maniac_afk> RikusW: Awesome :)
[07:52:31] <megal0maniac_afk> I've used it a little. My Dockstar was a build client for Rockbox for a while. It was one of the slowest machines in the farm :P
[07:52:34] <RikusW> Should have done it a long time ago :-P
[07:52:42] <megal0maniac_afk> So had to use git to keep it up to date
[07:53:05] <RikusW> got that book on the official git site -> http://git-scm.com
[07:53:16] <megal0maniac_afk> I started learning to use SPI yesterday :P
[07:53:25] <RikusW> oh thats easy ;)
[07:53:27] <megal0maniac_afk> With the U2S
[07:53:32] <megal0maniac_afk> I know, right?
[07:53:45] <RikusW> just imagine having 2 shift registers connected in a ring
[07:54:04] <megal0maniac_afk> http://pastebin.com/Q77a7sYF
[07:54:37] <RikusW> you can actually use U2S_Debug to do all of that on the PC in VS2010
[07:54:50] <megal0maniac_afk> Yeah but VS hates me
[07:55:01] <beaky> i love vs because it is visual
[07:55:02] <RikusW> use gcc / gdb than :-=P
[07:55:20] <RikusW> err megal0maniac_afk you need to wait before reading back SPDR
[07:55:23] <megal0maniac_afk> beaky: I'm still waiting for my answer
[07:55:57] <megal0maniac> RikusW: Oh. I misunderstood. Well then temp isn't necessary :)
[07:56:24] <RikusW> in short SPDR = data; wait; ret = SPDR;
[07:56:35] <megal0maniac> Wait how long?
[07:56:45] <RikusW> for SPIF I guess
[07:57:55] <RikusW> also you might want to use U2Sfw to control SPI from the CDC serial port
[07:58:08] <beaky> megal0maniac: page 12 of my attny datasheet says the lower the adress of the isr vector the higher hte priority
[07:58:23] <megal0maniac> beaky: Which attiny?
[07:58:26] <beaky> attiny85
[07:59:13] <megal0maniac> beaky: True, but 3rd paragraph
[07:59:44] <megal0maniac> RikusW: When does interrupt priority come into play?
[07:59:55] <beaky> oh right
[08:00:09] <RikusW> megal0maniac: I never had to worry about that ;)
[08:00:12] <beaky> I love interrupts they make me write asynchronous code
[08:00:24] <megal0maniac> beaky: Sometimes polling is better
[08:00:24] <beaky> so i can have an arduino doing smps while uploading values from adc to my server
[08:00:36] <megal0maniac> beaky: So what's the answer then?
[08:00:52] <beaky> the user can just set an interupt flag to enable nested interupts?
[08:01:11] <beaky> when executing the isr
[08:01:24] <megal0maniac> yes, but what's the default behaviour?
[08:01:33] <megal0maniac> Come now. Answer the actual question :P
[08:01:35] <RikusW> megal0maniac: the hw/sw SPI my STK500 use -> http://pastebin.com/CaQbd1JQ
[08:01:41] <beaky> by default, no nested isrs
[08:01:58] * megal0maniac throws beaky some points
[08:02:03] * beaky noms the points
[08:02:18] <beaky> DING!! level up! i am now a level 2 arduino noob
[08:02:42] <megal0maniac> No, you didn't get _that_ many points. I had to specify the paragraph
[08:02:49] <beaky> :(
[08:02:49] <RikusW> megal0maniac: time to learn some asm
[08:03:04] <megal0maniac> RikusW: Yeah I was about to say. I don't understand that :P
[08:03:06] <beaky> unlocked new skill: datasheet literacy!
[08:03:21] <RikusW> megal0maniac: its fairly simple actually
[08:03:44] <megal0maniac> RikusW: Does "push", put r17 onto the stack?
[08:03:50] <RikusW> yes
[08:04:01] <megal0maniac> Thought that happened automatically :/
[08:04:26] <RikusW> thats just not to mess around with r17, and leave it unchanged when returning
[08:04:42] <megal0maniac> Ah, I understand
[08:04:44] <RikusW> it could be omitted
[08:04:51] <megal0maniac> Like passing a var to a function
[08:04:53] <RikusW> but then the pop also needs to go away
[08:05:15] <RikusW> actually just to prevent this function from modifying it
[08:05:27] <RikusW> err
[08:05:52] <RikusW> think of it as saving the value and restoring it later
[08:06:12] <RikusW> I don't use pushing for passing parameters
[08:06:25] <RikusW> though its commonly used on x86
[08:06:26] <OndraSter> beaky, nested interrupts are dangerous
[08:06:28] <megal0maniac> Well yeah, but if you pass "some_int" to a function and modify "some_int" within the function, it's only modified inside the function because it's a copy on the stack, which is popped upon leaving the function
[08:07:32] <beaky> OndraSter: right my biggest fear is some interrupt that keeps blocking all operations of my avr
[08:07:44] <RikusW> megal0maniac: in this case the push/pop got nothing to do with parameter passing
[08:07:47] <beaky> e.g. ADC interupt not letting me do my smps regulation right
[08:07:54] <OndraSter> you should be more scared about enabling interrupts in ISR A and then in ISR B
[08:07:56] <RikusW> only saving the register itself
[08:08:05] <OndraSter> because when ISR A fires up, then you enable it, ISR B fires up, enable it, ISR A fires up..
[08:08:07] <OndraSter> ad infinium
[08:08:21] <beaky> btw what happens when i blowout the stack in an avr
[08:08:29] <OndraSter> it starts overwriting heap
[08:08:39] <RikusW> megal0maniac: STsoft and onwards is soft SPI
[08:08:45] <OndraSter> and then normal registers
[08:08:51] <beaky> lol theres a heap in the avr?
[08:08:52] <OndraSter> and completely fu.ks it up
[08:09:01] <OndraSter> heap is a software defined memory area
[08:09:05] <beaky> oh right
[08:09:13] <OndraSter> just as a stack on AVR
[08:09:20] <OndraSter> (not the same for some PICs who have hardware stack)
[08:09:21] <RikusW> megal0maniac: and sckdur is part of the STK500 protocol
[08:09:58] <RikusW> megal0maniac: so using plain hw spi use 6 insructions
[08:10:08] <beaky> wow i thought avr had a hardware stack
[08:10:23] <OndraSter> it has got the same memory for stack and heap
[08:10:32] <beaky> ah
[08:10:33] <OndraSter> some PICs have dedicated few bytes of memory just for stack
[08:10:43] <megal0maniac> RikusW: That is surprisingly simple
[08:10:58] <RikusW> megal0maniac: exactly, its comparable to C
[08:11:17] <megal0maniac> But yeah, you basically just flip bits in SPCR then go wild :D
[08:11:49] <RikusW> beaky: avr-gcc use the Y pointer as parameter stack
[08:12:03] <RikusW> call/ret use the hw stack
[08:12:14] <megal0maniac> beaky: When coding inside an ISR, you want to get in and out of there as quickly as possible. So things like delays are to be used sparingly if at all. Think of it as a burning house
[08:12:17] <RikusW> so two separate stacks
[08:12:44] <RikusW> delay in isr ?!! thats nuts
[08:12:46] <megal0maniac> You can also set flags inside the ISR and do the hard work inside main()
[08:13:11] <OndraSter> or just check the interrupt flag itself and do not enable the ISR ;D
[08:13:11] <megal0maniac> RikusW: Exactly. It's a house on fire. You don't just stop and stand there for a bit
[08:13:56] <RikusW> I only use RXC_vect to read UDR and push into a ringbuffer
[08:14:24] <RikusW> I use a 256 byte buffer, so no bounds checking :-P
[08:14:40] <OndraSter> hehe 256 bytes
[08:14:42] <OndraSter> I see what you did there
[08:14:51] <RikusW> and its aligned on 0x100 too
[08:14:53] <OndraSter> yep
[08:14:59] <OndraSter> afk
[08:15:00] <megal0maniac> Is there a dedicated ringbuffer (almost typed ringbugger) or do you just use general purpose registers?
[08:15:06] <Tom_itx> moin
[08:15:08] <RikusW> so load R31 = 1 R30 = head
[08:15:14] <megal0maniac> Tom_itx: moin
[08:15:31] <megal0maniac> Where did braincracker go? I miss h
[08:15:42] <RikusW> megal0maniac: just head/tail pointers to ordinary ram
[08:15:43] <Tom_itx> w
[08:19:30] <megal0maniac> RikusW: Using one of the general purpose registers, or is there another way to use RAM?
[08:48:08] <RikusW> megal0maniac_afk: how do you mean ? in asm you use ram by using ld/st
[08:48:32] <RikusW> on 32u2 there is GPIOR0/1/2 as well
[08:50:30] <RikusW> use lds/sts for a specific address
[09:03:07] <tzanger> megal0maniac_afk: smells like early optimization
[09:03:55] <tzanger> remember that every register you touch in an ISR needs to be saved on the stack, which is an op pair
[09:04:34] <tzanger> generaly speaking let the compiler worry about it, use -Os and only then, if you still have trouble, break out the listing and see what you could improve
[09:04:46] <tzanger> 99.999999999999999999999% of the time or more, you don't have to worry about it
[09:06:13] <RikusW> tzanger: unless you reserve that register for use by an ISR
[09:06:31] <RikusW> assuming asm is used
[09:06:52] <RikusW> so far I haven't been able to use all 32 registers..
[09:07:11] <RikusW> so I guess dedicating one to an ISR won't hurt
[10:06:10] <tzanger> how does one tell gcc that a register is for isr use only?
[10:06:42] <tzanger> that's an interesting idea, I should look at my projects and see what they're using
[10:09:18] <Casper> tzanger: that sound like a bad idea to do, but there is a way for that...
[10:20:20] <Daulity_> does avr have any printing functions ?
[10:22:22] <rue_house> yea
[12:03:32] <Daulity_> how can a port suddenly fail to work, is the chip quality ? or am I doing something wrong? The only thing hanging on these pins is the data lines for my lcd
[12:07:11] <Daulity_> somehow it works again
[12:07:18] <Daulity_> And I don't know why :(
[12:34:55] <OndraSter> we don't either
[13:40:14] <Powderhound> Does anyone have a downloaded copy of the Bluetooth 4.0 Spec? Bluetooth.org is down and it's killing me
[14:49:31] <Fornaxian> jerkey, what's the problem?
[14:51:19] <rue_house> dau, usually when you drive 12V into it
[14:59:19] <jerkey> fornaxian i read the flash of my atmega2560 and only got 262106 bytes
[15:05:19] <Fornaxian> jerkey, have you compared what was read with what was supposed to be in memory?
[15:52:16] <jerkey> it should be 262144 bytes
[16:19:34] <Fornaxian> have you tried reading other chips to see what they come back as compared to the value in the datasheet?
[16:36:19] <Enma_Hinobara> Does there exist an inexpensive DSP that can do 4x+ 16+-bit vector math?
[16:38:59] <Tom_itx> Fornaxian does studio return the chip size anywhere?
[16:39:35] <Fornaxian> no clue.
[16:39:39] <Fornaxian> I don't use atmel studio.
[16:39:42] <Fornaxian> it won't run on linux.
[16:39:53] <Fornaxian> Enma_Hinobara, probably.
[16:42:27] <Tom_itx> i can't see that it does
[16:43:32] <Fornaxian> http://www.digikey.com/product-detail/en/AT32UC3A0128-ALUT/AT32UC3A0128-ALUT-ND/1640264 12 dollars cheap enough Enma_Hinobara ?
[16:44:33] <Fornaxian> and I bet the xmega chips could do it too.
[16:45:40] <Enma_Hinobara> Thx for the link. I'll look into it
[16:45:50] <Fornaxian> that's an avr32.
[16:46:28] <Enma_Hinobara> Do you know off the top of your head how many ops it can do in parallel?
[16:46:37] <Fornaxian> nope.
[16:46:55] <Fornaxian> I just did a google search for avr dsp and found that the avr32 chips can do dsp.
[16:47:52] <Enma_Hinobara> No. I'm specifically looking for a SIMD DSP, so I'll have to look into it more
[16:48:26] <Fornaxian> then you will need to go ARM most likely.
[16:48:54] <Enma_Hinobara> That surprises me. I thought SIMD was a very common operation for DSPs
[16:49:08] <Fornaxian> http://www.embeddeddeveloper.com/cores_variant/46/AVR32-MCU/DSP.htm or avr32 like I suggested earlier.
[16:49:20] <Enma_Hinobara> How does ARM's SIMD work, anyway? I know the regular arm instruction set, but not familiar with SIMD
[16:49:28] <Fornaxian> no clue.
[16:49:35] <Fornaxian> one might start by reading the datasheets.
[16:50:10] <Enma_Hinobara> So much for the easy way
[16:50:13] <Fornaxian> looks like the TI TMS320 series can do it too.
[16:50:15] <Enma_Hinobara> Okay, thanks
[16:50:35] <Enma_Hinobara> I actually have a 320 I'm looking at, but AFAIK it doesn't do SIMD
[16:50:36] <Fornaxian> and some of the microchip dsPIC chips as well.
[16:50:49] <Enma_Hinobara> Specifically the 5505
[16:51:15] <Enma_Hinobara> Though it is 5x as fast as the Atmel chip
[16:52:26] <Fornaxian> again, time to read datasheets and see what chip can do what and how fast.
[16:52:36] <Enma_Hinobara> Yeah
[16:53:09] <Enma_Hinobara> I'm somewhat familiar with the TI chips, not as much with other lines
[16:54:18] <Fornaxian> http://en.wikipedia.org/wiki/Digital_signal_processor#Modern_DSPs
[16:55:17] <Fornaxian> what chip to use depends on a lot of things.
[16:55:25] <Fornaxian> feature set, required speed, etc.
[16:56:15] <Enma_Hinobara> Right. I've looked at the datasheets of quite a few 320s. Now I'm looking at other series
[16:56:21] <Enma_Hinobara> Anyway, gotta go
[16:56:50] <Fornaxian> sometimes the math can be done just as fast on a faster but less specialized processor just as cheaply.
[18:09:09] <atom1> Fornaxian, flash 65 10 256 0 yes 262144 256 1024 4500 45
[18:09:19] <atom1> seems fine to me
[18:09:44] <atom1> eeprom 65 10 8 0 no 4096 8 0 9000 90