Shift Register problem

Status
Not open for further replies.

ambuj123

Newbie level 5
Joined
Nov 18, 2012
Messages
8
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
1,362
Hi,

I am a doctoral student working on a project where we have number of mosfet switches controlled by output of 6 bit shift register, the shift register is serial in parallel out mode.

The 6bit shift register is implemented using 6 D Flip Flops specifically

NXP - **broken link removed**

These are positive edge triggered flip flops which works at TTL level. I am trying to set the states by toggling two GPIO of Micro-controller.
if the Present state of register is - D0D1D2D3D4D5 = 000000 and I Keep D 1 and send clock pulse it sets both D0 and D1 i.e 110000 instead of only D0. That is when I clock 1 it sets two Flip Flops instead of one.

However, if I keep D to be low and send clock pulse, it sets correctly only one Flip Flop i.e if D0D1D2D3D4D5 = 111111 and I keep D to be 0 and send clock pulse it sets correctly only D0 to be 0 i.e as expected the state of register is 011111.

I am not sure why this is happening ? any help will be appreciated.

Thanks,
Ambuj
 

Sounds like a problem of double clocking by ringing clock edge. It often happens in breadboard circuits, or when operating high speed circuits with insufficient ground connection and power supply bypassing.

A shift register as peripheral expansion should be better use a chip with separate output latch, e.g. 74hc594 or CD4094. It allows shifting out of new data without unwanted output state changes. There are also SPI or I2C periperal expansion interfaces with a flexible assignment of in- and output pins.
 

i quiet agree with FvM try reducing the inductance of your ground with also good power supply bypassing. digital systems are better with good grounding....also if need be get your circuit on a board because bread boards may increase your headache since the jumped wires may act as antenna there by picking up noise or perhaps the wires may not stick to the bread board as firm as possible....or dont you think that your microcontroller can also serve for such purpose?....
 

Hi,

Actually the register is used for directional antenna working at 2.4GHz so noise could be an issue.
Also, these are not on breadboard but soldered onto a PCB, we have some inductance on PCB to reduce noise for the RF part.
but maybe I can try to put some filter to reduce it further.

I am toggling the GPIO's at roughly 1-2 ms.
am not sure if this was helpful, I am powering the board through VCC and GND from the sensor node onto which this is connected.

thanks for the replies has been useful.

Thanks,
Ambuj
 

How are you sensing the outputs?
 

D FF output goes to wideband mosfet switch which controls RF part, so I am checking voltage level of D FF output.
 

what about shielding the sensitive part from the high frequency component?...this may well be a problem if not properly done
 

what about shielding the sensitive part from the high frequency component?...this may well be a problem if not properly done

hmmm, each of the mosfet switch which is controlled by output of D FF has one LC to reduce noise soldered onto the PCB.
I am not sure though if this is enough, we have some more additional L on the powering board to reduce noise further.

Also, if the noise due to RF is an issue, we should see random results sometimes clocking 1 sometimes 0. However, this is very consistent i.e when I clock 1 I am setting two D FF instead of one and for zero works fine.
 

You should show a complete schematic.

I would love to but I cannot submit/put schematic or part of schematic here
anyways, I will try to put some filters and see if I am able to solve this issue.

Thanks again.
 

Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…