pulse generator

Hi everybody I need a test jig that outputs three logic signals and has one logic input. Time resolution accuracy is ~500ns. It is needed to burn-in test a board (few at a time). We do not want to tie up CPU board that usually does this job. Probably something that has USB connector, may be set up to run by itself (so we do not have to have a PC attached to each of them) I have a feeling that somebody should make a plastic box that would do the job. Has anybody came across something like this? Thank you! Michael

Reply to
Loading thread data ...

I think you need to be more specific about the nature of the outputs, how programmable they need to be, etc.

Reply to
Mike Silva

It is very basic, I need a logic level to turn a power supply on, wait for few milliseconds when "ready" signal arrives, turn power supply off, generate ~1us pulse within at the same time (within few hundred ns), generate another ~2-5us pulse few hundred microseconds later. Repeat. Thing like this (just came across it)

formatting link
would probably do the job. I'd like to find the one that:

  1. Has easy to use GUI
  2. Can run by itself (after USB is unplugged)
Reply to

formatting link

Can you trigger your sequence with the ready signal with this device without the USB connection?

You could use a PIC for it. The free MPLAB IDE has a GUI and the serial connection of a PIC Start Plus can be connected with a USB-to-serial-converter :-) E.g. with the 16F628 the first pulse can be generated within a few hundred ns after the ready signal was received. Your description is not very exact, but I assume the following:

  1. PIC starts
  2. power on output = 1
  3. wait for rising edge on the READY input
  4. power on output = 0
  5. generate 1us pulse on pulse output
  6. wait 300ms
  7. generate 2us pulse on pulse output
  8. wait 300ms
  9. goto 2

The following program implements it, when clocked with 12MHz. If you don't need < 1us response time, you could use a cheaper PIC with a 4MHz external oscillator (you have to remove some NOPs and adjust the delay loop lower clocks)

LIST P=16F628

#include "P16F628.INC"

org 0

; destinations W EQU D'0' F EQU D'1'

; port A bits READY EQU D'2' POWER EQU D'0' PULSE EQU D'1'

; temporary registers TMP1 EQU H'20' TMP2 EQU H'21' TMP3 EQU H'22'

; program start

; init clrf STATUS clrf INTCON bcf STATUS, RP0 ; select bank 0 movlw D'0' ; set levels low movwf PORTA ; for port A movlw 0x07 ; turn comparators off and movwf CMCON ; enable pins for I/O functions bsf STATUS, RP0 ; select bank 1 movlw B'11111100' ; set bit 0 and 1 port A as output movwf TRISA - H'80' bcf STATUS, RP0 ; select bank 0

; power on POWER_ON bsf PORTA, POWER

; wait for ready signal low WAIT_READY1 btfsc PORTA, READY ; skip if ready signal is not set goto WAIT_READY1 ; else goto wait

; wait for ready signal high WAIT_READY2 btfss PORTA, READY ; skip if ready signal is set goto WAIT_READY2 ; else goto wait

; power off bcf PORTA, POWER

; 1us pulse bsf PORTA, PULSE nop nop bcf PORTA, PULSE

; wait 300ms movlw D'30' call WAIT10MS

; 2us pulse bsf PORTA, PULSE nop nop nop nop nop bcf PORTA, PULSE

; wait 300ms movlw D'30' call WAIT10MS

; repeat goto POWER_ON

; wait some W*10ms WAIT10MS movwf TMP1 WAIT2 movlw d'100' movwf TMP2 WAIT3 movlw d'74' movwf TMP3 WAIT4 decf TMP3, F btfss STATUS, Z goto WAIT4 decf TMP2, F btfss STATUS, Z goto WAIT3 decf TMP1, F btfss STATUS, Z goto WAIT2 return


Frank Buss, fb@frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de
Reply to
Frank Buss

formatting link

Please bottom post.

1. Where does the "ready" signal come from?
 Click to see the full signature
Reply to
John Fields

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.