Archive of the former Yahoo!Groups mailing list: Homebrew PCBs

previous by date index next by date
previous in topic topic list next in topic

Subject: Re: [Homebrew_PCBs] Re: laser ablation of paint on copper clad

From: Harvey White <madyn@...>
Date: 2014-12-14

On Sat, 13 Dec 2014 14:40:06 -0600, you wrote:

>Hi, maybe you should consider double addressable ram, is a bit more expencive, but it can be written and read at the same time, ( has two address counters in it ), I'm not shure but they call it LIPO or something likethat. 
>Anyway it is sure fast enough and wile your avr is pumping bits in it the cnc can read them. It depends now on what you need be the fastest.

Another way is to multiplex the address and data from application to
application, so that half of the time, the AVR is writing to the RAM,
and the other half of the time, the CNC can read it.

This is relatively easy to do, but requires the memory to be twice as
fast as your cycle time, if not a bit faster for safety. I'd use a
CPLD or FPGA to do the multiplexing, just because it's easier. If you
don't have the tools to do this, then counters/registers and
multiplexers work just fine. You'll have to play games with the AVR
if you're using direct memory access, because the memory access cycle
is not absolutely in phase with the clock.

Just because you have the clocks for the processor and the clocks to
the CPLD in phase does not guarantee that the two requests would be
synchronized.

Your best bet would be to have the whole cycle time so short that the
processor can write at any time, then expect to get/write data
correctly.

Strangely enough, writing with using a port (Programmed I/O) is easier
to synchronize (you can loop and wait on a status) than direct memory
write/read synchronized to the processor clock. If your FPGA/CPLD
has dual port memory (Xilinx 3AN series do...) then this can help if
your assumed buffer size is small enough.

Harvey


>
>
>cb
>
>
>On 12/13/2014 11:06:25 AM, Slavko Kocjancic eslavko@... [Homebrew_PCBs] <homebrew_pcbs@yahoogroups.com> wrote:
>On 13. 12. 2014 11:39, 'Tony Smith' ajsmith1968@...
>[Homebrew_PCBs] wrote:
>> At 1,000 DPI, the laser isn't going to be anywhere near it's supposed to be
>> anyway. Close enough thought.
>>
>> The beam of the laser will be probably bigger than a dot a 1,000 DPI (which
>> is good as the overlap fills in the gaps) depending on a bunch of things.
>>
>> Dunno how LinuxCNC does rastering, but often the laser is left on between
>> dots so that evens things out. Sometimes you want dot - dot - dot lasering,
>> but not in this case.
>>
>> Tony
>>
>
>
>The laser dot is just little under 1000dpi in size. But I have limited
>on off timings so the width I can controll is about 700DPI. But this is
>true only for rotation axis. I advance board for only 0.01mm each
>revolution so there are plenty of overlap. And I do leave laser on if
>there are more same dots in a row.
>
>
>My preprocesor program just crunch the coordinates and make file stream
>of '1' and '0' for laser for each 15us. The linuxcnc with component
>'streamer' then stream this each 15us to the laser. And here is
>bottleneck as I can't go faster (but I want) and I need to make some
>special hardware to stream much faster than 15us/pulse.
>
>
>I think to use some AVR with plenty of ram and to upload entire stream
>on it, and after that just stream bits. At 1 bit per 1us the AVR will
>work hard. But seems that static ram is just too small to fit entire
>image, I will probably use dinamyc ram (4Mbits ∗4). As I calculated I
>don't need to worry about refresh as cycling as streaming is fast
>enought to keep memory refreshed. But need to cary refresh when data is
>uploading and waiting start of operation where is enought time to proper
>manage refresh cycle.
>
>
>
>
>
>
>------------------------------------
>
>
>------------------------------------
>
>
>Be sure to visit the group home and check for new Links, Files, and Photos:
>http://groups.yahoo.com/group/Homebrew_PCBs
>------------------------------------
>
>
>Yahoo Groups Links
>
>
>To visit your group on the web, go to:
>http://groups.yahoo.com/group/Homebrew_PCBs/
>
>
>Your email settings:
>Individual Email | Traditional
>
>
>To change settings online go to:
>http://groups.yahoo.com/group/Homebrew_PCBs/join
>(Yahoo! ID required)
>
>
>To change settings via email:
>Homebrew_PCBs-digest@yahoogroups.com
>Homebrew_PCBs-fullfeatured@yahoogroups.com
>
>
>To unsubscribe from this group, send an email to:
>Homebrew_PCBs-unsubscribe@yahoogroups.com
>
>
>Your use of Yahoo Groups is subject to:
>https://info.yahoo.com/legal/us/yahoo/utos/terms/
>
>
>
>
>
>
>---
>This email has been checked for viruses by Avast antivirus software.
>http://www.avast.com