. .

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. It sounds to me like the vernier is not being set to fast mode correctly my the PIC. and it is mis-reading the vernier as a binary version rather than a BCD type.

    Fire up a serial comms package or hyperterminal, if ALL else fails :)

    Set baud to 115,200, 8, n,1

    Send 'i0' and the PIC (in position X) should respond with something.

    ;command line interpretor
    ;Commands: (case insensitive)
    ;rx - Read - reads and transmits abs position (x=x,y,z,w)
    ;sn - Sets sample rate (n=0,1,2) 0 =poll mode, 1 = 300mS (normal), 2 = 20mS (fast mode)
    ;zx - zero vernier display (x=x,y,z,w)
    ;vn - set vernier type (n=0,1) 0 = old, 1=decimal


    send V1 to set decimal vernier, then S0 to set poll mode, then RX and the pic should respond with X00.000: (inches) or X000.00:
    (mm). If it returns XH000000: then it is not reading the vernier as a decimal type.

    I have one vernier here that has a similar problem , so if I can fine the time I'll look into it. In the mean time, you could try inserting an extra pulse clk in the setfast routine

    Code:
    setFaut        bsf    Mode,Auto
    setFast        bsf    Mode,Fast
            clrwdt
            call    zeronorm
            clrwdt            ;pulse clk again if decimal type
            call    Dly200
            call    Plsdata
            btfss    Mode,Vtype 
            return
            clrwdt            ;pulse clk again if decimal type
            call    Dly200
            call    Plsclk
            call    Dly200   ;exta pulse clk *******
            call    Plsclk
            call    txZero        ;send zero message
            return
    A quick PIC to PC test:

    disconnect serial lead from PC , disconnect vernier from PIC

    Run VB application, select correct comm port

    Connect serial lead, connect vernier to PIC - you should see a new frame appear for X, Y, Z or W - if this happens the serial port is working OK.

    you should see the vernier be reset to zero then depending on type H (for hold) and F (for fast)

    Press ZERO (and hold) on the vernier, this will stop the clock signal, after a second or less the PIC will signal the PC to remove the frame .

    Releasing the zero will start the clock, the PIC will signal the PC and the PC will issue a reset to the Vernier.


    If all of the above works the serial comm must be working fine.
    Last edited by BillTodd; 19-05-2010 at 09:58 PM.

  2. #2
    Quote Originally Posted by BillTodd View Post
    It sounds to me like the vernier is not being set to fast mode correctly my the PIC. and it is mis-reading the vernier as a binary version rather than a BCD type.

    Fire up a serial comms package or hyperterminal, if ALL else fails :)

    Set baud to 115,200, 8, n,1

    Send 'i0' and the PIC (in position X) should respond with something.

    ;command line interpretor
    ;Commands: (case insensitive)
    ;rx - Read - reads and transmits abs position (x=x,y,z,w)
    ;sn - Sets sample rate (n=0,1,2) 0 =poll mode, 1 = 300mS (normal), 2 = 20mS (fast mode)
    ;zx - zero vernier display (x=x,y,z,w)
    ;vn - set vernier type (n=0,1) 0 = old, 1=decimal


    send V1 to set decimal vernier, then S0 to set poll mode, then RX and the pic should respond with X00.000: (inches) or X000.00:
    (mm). If it returns XH000000: then it is not reading the vernier as a decimal type.

    I have one vernier here that has a similar problem , so if I can fine the time I'll look into it. In the mean time, you could try inserting an extra pulse clk in the setfast routine

    Code:
    setFaut bsf Mode,Auto
    setFast bsf Mode,Fast
    clrwdt
    call zeronorm
    clrwdt ;pulse clk again if decimal type
    call Dly200
    call Plsdata
    btfss Mode,Vtype 
    return
    clrwdt ;pulse clk again if decimal type
    call Dly200
    call Plsclk
    call Dly200 ;exta pulse clk *******
    call Plsclk
    call txZero ;send zero message
    return
    A quick PIC to PC test:

    disconnect serial lead from PC , disconnect vernier from PIC

    Run VB application, select correct comm port

    Connect serial lead, connect vernier to PIC - you should see a new frame appear for X, Y, Z or W - if this happens the serial port is working OK.

    you should see the vernier be reset to zero then depending on type H (for hold) and F (for fast)

    Press ZERO (and hold) on the vernier, this will stop the clock signal, after a second or less the PIC will signal the PC to remove the frame .

    Releasing the zero will start the clock, the PIC will signal the PC and the PC will issue a reset to the Vernier.


    If all of the above works the serial comm must be working fine.
    Thanks Bill,

    I'll try all that, its all very usefull info.

    As I say in the word attachment I also have another vernier I can try and that one has the abs and rel 24bit packet output format. I'll wire that in first to try, then I'll try to adjust the asm code as you suggest for the BCD version.

    What confuses me slightly is the need to run the vernier in fast mode. I thought this is just the update rate and should not cause corruption of the data. I know it is good to get the 40 updates per second for real use on the Mill or Lathe but for test purposes does it matter?

    Cheers,

  3. #3
    Quote Originally Posted by BillTodd View Post
    It sounds to me like the vernier is not being set to fast mode correctly my the PIC. and it is mis-reading the vernier as a binary version rather than a BCD type.

    Fire up a serial comms package or hyperterminal, if ALL else fails :)

    Set baud to 115,200, 8, n,1

    Send 'i0' and the PIC (in position X) should respond with something.

    ;command line interpretor
    ;Commands: (case insensitive)
    ;rx - Read - reads and transmits abs position (x=x,y,z,w)
    ;sn - Sets sample rate (n=0,1,2) 0 =poll mode, 1 = 300mS (normal), 2 = 20mS (fast mode)
    ;zx - zero vernier display (x=x,y,z,w)
    ;vn - set vernier type (n=0,1) 0 = old, 1=decimal


    send V1 to set decimal vernier, then S0 to set poll mode, then RX and the pic should respond with X00.000: (inches) or X000.00:
    (mm). If it returns XH000000: then it is not reading the vernier as a decimal type.

    I have one vernier here that has a similar problem , so if I can fine the time I'll look into it. In the mean time, you could try inserting an extra pulse clk in the setfast routine

    Code:
    setFaut        bsf    Mode,Auto
    setFast        bsf    Mode,Fast
            clrwdt
            call    zeronorm
            clrwdt            ;pulse clk again if decimal type
            call    Dly200
            call    Plsdata
            btfss    Mode,Vtype 
            return
            clrwdt            ;pulse clk again if decimal type
            call    Dly200
            call    Plsclk
            call    Dly200   ;exta pulse clk *******
            call    Plsclk
            call    txZero        ;send zero message
            return
    A quick PIC to PC test:

    disconnect serial lead from PC , disconnect vernier from PIC

    Run VB application, select correct comm port

    Connect serial lead, connect vernier to PIC - you should see a new frame appear for X, Y, Z or W - if this happens the serial port is working OK.

    you should see the vernier be reset to zero then depending on type H (for hold) and F (for fast)

    Press ZERO (and hold) on the vernier, this will stop the clock signal, after a second or less the PIC will signal the PC to remove the frame .

    Releasing the zero will start the clock, the PIC will signal the PC and the PC will issue a reset to the Vernier.


    If all of the above works the serial comm must be working fine.

    Bill, I have not tried the Hyperterminal test yet or tried adding another pulse to the code. I have not had time yet to try another vernier type either but i did try the simple comms port diagnostic test you describe. When you hold the zero button it stops the clock and the VB app clears the vernier off the display window, Y in my case. On releasing the zero button the Y display returns. The clock and data line LEDs to the vernier flash in a sequence, the vernier display zeroes but in general it leaves it in th H (hold) mode, never in the F.T Fast Read mode. Sometimes the clock and data pulsing sequence repeats a few times till it settles down to the Hold mode. Sometimes it leaves the vernier in the slow mode but this is rare.

    I must try and test the other Vernier I have and give an update before trying the other tests.

    Cheers.

  4. #4
    Quote Originally Posted by 1113562 View Post
    Bill, I have not tried the Hyperterminal test yet or tried adding another pulse to the code. I have not had time yet to try another vernier type either but i did try the simple comms port diagnostic test you describe. When you hold the zero button it stops the clock and the VB app clears the vernier off the display window, Y in my case. On releasing the zero button the Y display returns. The clock and data line LEDs to the vernier flash in a sequence, the vernier display zeroes but in general it leaves it in th H (hold) mode, never in the F.T Fast Read mode. Sometimes the clock and data pulsing sequence repeats a few times till it settles down to the Hold mode. Sometimes it leaves the vernier in the slow mode but this is rare.

    I must try and test the other Vernier I have and give an update before trying the other tests.

    Cheers.
    Update: I Tried the other vernier which was very recently bought from Aldi but this just caused the PC VB6 App to go nuts with overflows and crash. This vernier is quite different from the older one I fist tried in that the interface pulsing on the clock and data lines at connection detect do not appear to change the setting modes at all on the vernier. Also when you push and hold the zero button on the vernier it just pulses the clock line for about 1/2 second it doesn't hold it off continuously while the button is depressed.

    I then tried using hyperterminal with the older BCD type vernier as per the diagnostics tests recommended but this was not good. When the vernier I/F is plugged into the PC COM1 port hyperternial complains it cant open the com port. I think I am correct in setting HT to 'no flow control'? I did try 'hardware control' mode but that suffered the same fate. I thought then that I did have a wiring problem either in my serial link cable or the I/F driver circuit but I checked both and they seem to be correct to drawing - strange.

    I'm not sure what to try next!!!

    Cheers - John

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. Website idea.
    By qwertyjon in forum General Computing
    Replies: 8
    Last Post: 05-04-2014, 03:29 PM
  2. Here's an idea hacking a Kress 1050 FME
    By m.marino in forum Kress Milling Motors
    Replies: 3
    Last Post: 16-01-2013, 01:05 AM
  3. Why they don't want to accept my idea?
    By hoezap in forum Tool & Tooling Technology
    Replies: 5
    Last Post: 14-07-2012, 01:15 AM
  4. business idea?
    By homer93 in forum Marketplace Discussion
    Replies: 7
    Last Post: 01-06-2012, 12:56 PM
  5. BUILD LOG: Mel's Odd Idea
    By mel_earp in forum DIY Router Build Logs
    Replies: 3
    Last Post: 19-03-2010, 11:54 AM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •