PDA

View Full Version : TDC!! (time to digital converter)



ibra
- 19th November 2007, 14:09
hi..

i try to build laser rangefinder..i collected all information about transmitting,receiving operations including hardware and circuits.
but i face now a problem with interfacing, i searched and found a method which is called time-of-fly.
this method uses TDC ( time to digital converter)..which convert a period of time to adigital value ..
the problem is how to use TDC chip (TDC-GP1 ...) with pic16f877a??

any one can help me ?

hell_pk
- 20th November 2007, 06:24
Hi!
A friend of mine was doing the same project with 8051 uc. he failed & then bought a development kit for it. I also read datasheet of TDC-GP1.it shows possible interfacing with a
microcontroller.It has built in ROM & some addresses are given to read & write to.But the main problem is not reading & writing but to generate result,calibrate it & then reading is easy part.
here is link to TDC-GP1 datasheet.
http://www.acam.de/fileadmin/Download/pdf/English/DB_GP1_e.pdf

Only if experienced programmers mister_e or Bruce would be kind enough to look at it & give some suggestions and write a skeleton code for it.

hell_pk
- 23rd November 2007, 04:46
here is some code for 16F877A that will read the memory of TDC.its similar to reading an eeprom such with 4 address lines & 8 data lines.
I dont have TDC to test it so u can do it & then tell me if u succeed.

Define LCD_DREG PORTD ' Define LCD connections
Define LCD_DBIT 4
Define LCD_RSREG PORTD
Define LCD_RSBIT 2
Define LCD_EREG PORTD
Define LCD_EBIT 3
ADCON1=7
TRISB=%11111111
TRISA=%000000
PORTA=0
dat VAR byte
i VAR byte
add VAr byte
dat=0
add=0
Lcdout $fe, $80, " TDC Reader"

Pause 3000
Lcdout $fe, $1
Lcdout $fe, $80,"Addr: "
Lcdout $fe, $C0,"Data: "
while(1)
FOR i = 0 TO 15 step 1
porta=i 'CE=1,OE=1,addr=0
porta.4=0 'Chip Enable
porta.5=0 'Output Enable

pauseus 10
dat=PORTB
Lcdout $fe, $80,"Addr: "
Lcdout $fe, $80+8,#i
Lcdout $fe, $C0,"Data: "
Lcdout $fe, $C0+8," "
Lcdout $fe, $C0+8,#dat,":",hex dat

porta.4=1 'CE
porta.5=1 'OE

pause 2000

if i=15 then
Lcdout $fe, $80+8," "
i=0
endif
next i


wend
end

katsiusa
- 20th October 2010, 03:54
here is some code for 16F877A that will read the memory of TDC.its similar to reading an eeprom such with 4 address lines & 8 data lines.
I dont have TDC to test it so u can do it & then tell me if u succeed.

Define LCD_DREG PORTD ' Define LCD connections
Define LCD_DBIT 4
Define LCD_RSREG PORTD
Define LCD_RSBIT 2
Define LCD_EREG PORTD
Define LCD_EBIT 3
ADCON1=7
TRISB=%11111111
TRISA=%000000
PORTA=0
dat VAR byte
i VAR byte
add VAr byte
dat=0
add=0
Lcdout $fe, $80, " TDC Reader"

Pause 3000
Lcdout $fe, $1
Lcdout $fe, $80,"Addr: "
Lcdout $fe, $C0,"Data: "
while(1)
FOR i = 0 TO 15 step 1
porta=i 'CE=1,OE=1,addr=0
porta.4=0 'Chip Enable
porta.5=0 'Output Enable

pauseus 10
dat=PORTB
Lcdout $fe, $80,"Addr: "
Lcdout $fe, $80+8,#i
Lcdout $fe, $C0,"Data: "
Lcdout $fe, $C0+8," "
Lcdout $fe, $C0+8,#dat,":",hex dat

porta.4=1 'CE
porta.5=1 'OE

pause 2000

if i=15 then
Lcdout $fe, $80+8," "
i=0
endif
next i


wend
end

Dear everyone,

I have a TDC-GP1 chip and I made a test board to read data from TDC-GP1 chip via pic18f4550. Can you help me some experiences?

thanks!

Ioannis
- 20th October 2010, 10:46
To complete such a project you need to use optics like spliters and detectors.

Please have a look here:

http://www.acam.de/fileadmin/Download/pdf/English/AN001_e.pdf

Ioannis