how to variable-pitch spring (sweep failed)

I want to create a spring sweep.

Its spring pitch is valiable. so I use variable-pitch HelixCurve.

When I sketched a circle on normal plane to curve, sweep failed.

So I create a new plane (copy TOP PLANE), and sketched a circle on it.

I could create a sweep feature, but the shape of the end is different from my wish.

How can I create this spring?

thank you.

SolidworksUser Interface