Recent Posts

Pages: [1] 2 3 4 5 6 ... 10 Next
1
Quote
In the pics I can see right-most digit has "C" segment stuck on, is that the only malfunction in the pics?

In the pics I posted, if I'm not mistaking, the commas and/or periods are wrong, and it's not showing "MHz".

Sporadically, digits four and five are wrong, commas and/or periods are wrong, and, usually, in all cases (I believe) "AUTOOTRIG" is displayed.

Unfortunately I don't have a solder VAC just solder braid and a solder plunger (the manual pump and push button release type).

I think to save time and reduce the risk of damage, I may just move forward with replacing the HV518 chip.

I was hoping to figure out which data line and G line toggled which segment(s) in each digits, and not only gain some knowledge, but provide the information back to this thread for others to learn from and/or help diagnose issues on their end.

Since I have the logic analyzer out and the display sitting outside the unit, I'll probably measure the G lines on the logic analyzer; and then move forward with replacing the chip.
2
Beginners / Re: 72C5 - What Is This?
« Last post by amyk on Today at 03:48:02 am »
How is it connected to other components? A bigger picture of its surroundings?
3
For posterity - the undervoltage cutoff seems to only be hooked up to the ~POK pin and not the GATE pin of the IC  |O
4
Beginners / Re: Replacing SRAM IC with Flash
« Last post by amyk on Today at 03:44:27 am »
There's been various topics on here before about replacing the Dallas NVRAMs with FRAM, is that where you got the idea?
5
Hi
I have made my own piece of test equipment.  It is a GPIB breakout board.  It plugs directly into the HP Logic Analyser cable so no messing around with individual probes.  Just plug and play.  It would be easy to make up a cable to adapt the GPIB breakout connector to another make/model of LA.

In addition, the signals are also exposed on a separate header.

I have made the first GPIB breakout board and updated the pcbway share project, available for ordering your own board ( PCB from PCBWay ).


6
Test Equipment / Re: HP Logic Analyzer Inverse Assemblers
« Last post by Nemesis1207 on Today at 03:41:58 am »
I've been mainly working with the 68000 inverse assembler so far, and I wanted to post a few comments here to help anyone else who might try and do the same.

First of all, it's worth noting that the 68000, 68008, and 68010 inverse assemblers are almost identical, which makes sense, since the processors themselves share almost the same instruction set and physical interface. The disassembled source for the inverse assemblers in this thread is very useful, but we actually have the original sourcecode for the 68010 inverse assembler in the 10391B Inverse Assembler Development Package here:
https://www.keysight.com/us/en/lib/software-detail/instrument-firmware-software/10391b-inverse-assembler-development-package-version-0200-sw575.html
In the "Examples" folder is I68010.S, which on comparison with the disassembled 68010 inverse assembler in the INVASM_SRC.zip file supplied in this thread, I've verified has identical code, apart from a minor difference in the entry point around task setup, which may even be injected at compilation time by ASM.EXE, I haven't checked. The actual steps around disassembly are the same though, and critically this original source file has all the comments and proper names intact, making it much more readable.

From the comments in the original 68010 inverse assembler source, and the great resources in this thread, it's fairly easy to work out the pin mappings for the pod connections. From the header comments of the disassembler, we have this:
Code: [Select]
*  THE LOGIC ANALYZER CAPTURES 24 ADDRESS LINES, 16 DATA LINES AND
*  8 STATUS LINES ON THE RISING EDGE OF LAS.
*
*  THE 8 STATUS LINES FOR THIS INVERSE ASSEMBLER ARE:
*
*           BIT 0  ---  R/LW  (CPU PIN 9)
*           BIT 1  ---  LLDS  (CPU PIN 8)
*           BIT 2  ---  LUDS  (CPU PIN 7)
*           BIT 3  ---  LVMA  (CPU PIN 19)
*           BIT 4  ---  FC0  (CPU PIN 28)
*           BIT 5  ---  FC1  (CPU PIN 27)
*           BIT 6  ---  FC2  (CPU PIN 26)
*           BIT 7  ---  LBGACK  (CPU PIN 12)

Here's what I did, which follows the expectations of the config files with the invasm_v3.zip archive here:
Pod A1:
15-0 - D15-D0
CLK - AS

Pod A2:
15-1 - A15-A1
0 - UDS

Pod A4:
15-8 - A23-A16
7 - BGACK
6-4 - FC2-FC0
3 - VMA
2 - UDS
1 - LDS
0 - R/W

Here's what it looks like on the unit:
2140795-0
2140801-1

Using UDS as A0 may seem counter-intuitive, but there's no external A0 line on the 68000, it's the UDS and LDS strobes that indicate which half of the 16-bit data bus is being read/written to perform 8-bit operations. Now LDS being asserted and UDS not asserted is how you'd normally tell when you were doing an 8-bit operation on an odd address, but UDS and LDS are active low, while the address lines use a high logic level when asserted, so we use UDS being high, indicating there is not valid data on the "upper" (even address) data lines, to work out that it must be an 8-bit odd address operation.

While trying to use the 68010_P inverse assembler on my 1670G though, I ran into problems right away - none of the instructions would actually disassemble. It became clear why on some examination, the UDS and LDS lines were both logic high when sampled. As per the comments in the original source file, the system wants you to connect your clock signal to AS, the address strobe, and set it to trigger on the rising edge. This line is active low, so basically when a bus operation (IE, read or write generally) is being completed, we latch all the lines. That's all well and good, except as per the 68000 User's manual, when performing either a read or a write, at the falling edge of the main clock entering S7 "the processor negates AS, UDS, or LDS". Negates in this context meaning no longer asserts, which being active low signals mean these strobes all go high. Since we sample at the edge of AS going high, it makes perfect sense that UDS and LDS would also have been negated at this point. We need to know what UDS and LDS were set to prior to this occurring. The solution to this problem is already given above as for the Z80 - we need to use slave clock settings to sample these lines. Doing this is easy - we connect the clock source for the CPU to another pod clock (I used clock M on pod 4), and set it up as a slave clock source to trigger on the rising edge of the clock:
2140789-2

We then assign this slave clock to pods A4 and A2, so that UDS/LDS in both the "STAT" field and the A0 position of the address are sampled using the slave clock. And since the slave clock is triggered on the rising edge of the CPU clock signal, while AS being negated (going high) occurs on the falling edge of the CPU clock, we'll now latch everything but the data lines a half-clock cycle prior to AS being negated. Since the data lines don't get negated by the CPU on a write until another half clock cycle, and for reads until the devices have a chance to see and respond to AS being negated, we're safe to sample them with the main clock. With this configuration, the inverse assembler works as expected. When interpreting results though, it's important to have a solid idea of how 68000 prefetch works, since the logic analyzer will show instruction words being pulled in while the prior instruction is still executing, meaning you may see things logically out of order from a code perspective, but in the correct order for how the bus operations actually occur in hardware. The result is something like this:
2140807-3
7
Microcontrollers / Re: How do you search for a microcontroller ?
« Last post by nimish on Today at 03:40:44 am »
Pragmatically I'd just go buy any easy to use RP2040 based board since the PIO can replace a lot of low level IO protocols and there's great software support.

But if you really want >500MHz you're likely stuck with M7 based parts or Cortex-R5

What exactly are you trying to do? The core matters much less than the peripherals
8
Test Equipment / Re: open source GPIB adapter : Shared on PCBway
« Last post by dazz1 on Today at 03:39:07 am »
Hi
I have shared my GPIB breakout board on PCBway here:
https://www.pcbway.com/project/shareproject/GPIB_Break_Out_Board_f7812b3e.html

I have order parts for 5x boards, because of MOQ's so I will have 4x for sale.

Hi
I have made the first GPIB breakout board and updated the pcbway share project, available for ordering your own board.
I now have 4x spare boards and parts available for sale.  Cheaper than buying parts and boards for one, like I have done.
As you can see, it plugs directly into the HP Logic Analyser cable.  It would be easy to make up a cable to adapt the GPIB breakout connector to another make/model of LA.
In addition, the signals are also exposed on a separate header.
9
It's very difficult to fully troubleshoot the problem because it's likely inside an IC - the '518 or MCU that has crosstalk.
In the pics I can see right-most digit has "C" segment stuck on, is that the only malfunction in the pics?
I would scope that pin on the VFD to see if the '518's output driver has a problem like a weird weak voltage. But it is odd that segment prefers that digit. I was thinking of DRAM/SRAM stuck bits.
If you are pulling the VFD, I suggest putting a soft piece of tubing over the nipple, it is extremely fragile and easy to bang. Or scotch tape something maybe.
Getting the shields off does take a bit of extra heat, as I mentioned my technique is to use a soldering iron heating on the pin topside, and vac desolder on the other side. A two-handed affair. The VFD holes on the PCB are large though.

Some notes I found on the '518 protocol, to help you out if you are still digging:

Code: [Select]
For 53131A

The protocol is similar to SPI. It is clocked at ~1 MHz, with 4 byte word bursts at about 1 kHz rate. It is 5 V logic.

The lines and their SPI equivalents are:
VFDSCLK - Clock, data sampling on rising edge
VFDSOUT - Data, from MCU to display
VFDSIN  - Data, from display to MCU, 32 bit shift register
VFDSEN  - Enable, active high, inverted compared to a SPI /SS

VFDSCLK:
____   _   _   _       _   _   _____
    \_/ \_/ \_/  ... _/ \_/ \_/
VFDSOUT:
________________     _______________
    \___X___X___ ... ___X___X___/
VFDSEN:
   _____________     ___________
__/              ...            \___
Bit: (MSB first)
      0   1   2  ...  29  30  31

Every ~976 us (~1024 Hz), there is a 32 bit word, with bits clocked at ~934 kHz. After the first 16 bits, the clock makes a small pause of about 0.5 bit cycle.

Each 32 bit word enables one gate (character position) and any combination of segments for that position. The first 12 bits are gate enablers, the first/highest bit enabling the leftmost/most significant character. The segments are 14 bits for the segments of the digit/character display, 3 bits for the separator segments for ".",
",", ":" and ";" and 1 bit for the text label under each character. The rightmost character is special; instead of separators the bits enable the "u" (mu) and "s" unit indicators and the "Gate" text label, and it has two extra bits for the "M" and "Hz" unit indicators.

A frame has 16 words - 1 for each of the 12 characters, and 4 extra that can be highlighted, x0-x3 below. The frame rate is ~1024 / 16 = ~64 Hz.

Below data is shown as big endian, first byte leftmost, and with first bit on SPI as most significant.

Bits:
0xfff00000 - gate enablers (character position)
0x0000fcff - 14 segment character
0x00070000 - separators, on rightmost position "u", "s" and "Gate"
0x00080000 - text label
0x00000300 - on rightmost position units "M", "Hz"

Examples:

Text: "FREQUENCY 1 "; Labels: "Freq", "Ch1"
1000CC8C # char 8 "Q"
  100000 # char 0 empty
2000C087 # char 9 "E"
  202040 # char 1 "1"
4008888F # char 10 "R", label: "Freq"
  400000 # char 2 empty (space)
80008087 # char 11 "F"
  802030 # char 3 "Y"
80000000 # x3 - no highlighting
 108C084 # char 4 "C", label: "Ch1"
80000000 # x2 - no highlighting
 2008C2C # char 5 "N"
80000000 # x1 - no highlighting
 400C087 # char 6 "E"
80000000 # x0 - no highlighting
 800C40C # char 7 "U"

When a character is blinking, it changes between being normally displayed and being highlighted. The character is powered an extra time per frame using word x0-x3 which makes it brighter. The flashing, changing between the character and empty, is done in the normal word for that character. Only the 14 segments of the character seems to be
flashing and highlighted, not the indicators or the text labels.
As there are only 4 words x0-x3, only 4 characters can be highlighted using this mechanism, and it seems also never more than 4 characters are highlighted and blinking.

"LIM TEST: OFF", where "OFF" is highlighted and blinking
10000000 # char 8 space
  108087 # char 0 "F"
2000843C # char 9 "M"
  208087 # char 1 "F"
400860C0 # char 10 "I", label: "Freq"
  40C48C # char 2 "O"
8000C004 # char 11 "L"
  800000 # char 3 space
80000000 # x3 - empty, no highlight
 10B20C0 # char 4 "T", separator ":", label "Ch1"
  108087 # x2 - highlight char 0 "F"
 20044A1 # char 5 "S"
  208087 # x1 - highlight char 1 "F"
 400C087 # char 6 "E"
  40C48C # x0 - highlight char 2 "O"
 80020C0 # char 7 "T

10000000 # char 8 space
  100000 # char 0 empty ***
2000843C # char 9 "M"
  200000 # char 1 empty ***
400860C0 # char 10 "I", label: "Freq"
  400000 # char 2 empty ***
8000C004 # char 11 "L"
  800000 # char 3 space
80000000 # x3 - empty, no highlight
 10B20C0 # char 4 "T", separator ":", label "Ch1"
  108087 # x2 - highlight char 0 "F"
 20044A1 # char 5 "S"
  208087 # x1 - highlight char 1 "F"
 400C087 # char 6 "E"
  40C48C # x0 - highlight char 2 "O"
 80020C0 # char 7 "T
10
Yes, it can do 4K 30FPS capture over USB. But the 3 main chips get quite hot in the process, therefore I'm modding it to improve the cooling.
Pages: [1] 2 3 4 5 6 ... 10 Next