Hallo,

Ik gebruik een ST7lite29 om 3 analoge spanningen om te zetten in 3 PWM signalen en stoot op volgend probleem.

Als een van de ingangen op ongeveer 25% staat, gaat de gemeten waarde hiervan variëren met de andere instellingen. Bij bepaalde instellingen gaat de gemeten waarde vanzelf sterk schommelen.

Ik heb 100nF over de voeding van de µ-contoller staan en geprobeerd eens 3 keer 100nF te zetten over de ingangen van de ADC. Maar zonder resultaat.

Als ik de analoge spanning meet, blijft die mooi gelijk, dus het probleem is eerder digitaal.

Iemand enig idee van de oorzaak???
Groeten,
Johan.

Ik ben geen expert op dit gebied, maar een paar opmerkingen / vragen:

- je ziet dus variatie in de D waarde voor 1 kanaal terwijl de A stabiel is, afhankelijk van de waarde op een ander kanaal?
- hoe groot is die variatie?
- ik ken de ST7 niet, maar bij een PIC moet je een behoorlijke tijd wachten na het omschakelen van de ingangs multiplexer, hou je daar rekening mee
- treed het probleem ook nog op als je geen PWM uitstuurd (of iets minder goed: er niets aan de PWM uitgangen hangt)
- hoe is je bedrading? Het analoge en digitale deel mogen alleen bijelkaar komen op de voedingspinnen van de controller, met een lekkere ontkoppeling vlakbij (bv 0.1 uF + 22 uF, liefst tantaal)

- je ziet dus variatie in de D waarde voor 1 kanaal terwijl de A stabiel is, afhankelijk van de waarde op een ander kanaal?

Klopt.

- hoe groot is die variatie?

Erg groot, 50h verschil soms!

- ik ken de ST7 niet, maar bij een PIC moet je een behoorlijke tijd wachten na het omschakelen van de ingangs multiplexer, hou je daar rekening mee

Ik heb eens een tijdsvertraging ingebouwd, maar zonder resultaat.
In de handleiding van de ST7 staat niets over wachten na switchen van ingang. Ik lees wel pas uit nadat de EOC(end of conversion) bit hoog is gemaakt, daar zal die wachttijd ingebouwd zitten.

- treed het probleem ook nog op als je geen PWM uitstuurd (of iets minder goed: er niets aan de PWM uitgangen hangt)

Ik denk het wel, maar hier ga ik nog wel wat verder op experimenteren.

- hoe is je bedrading? Het analoge en digitale deel mogen alleen bijelkaar komen op de voedingspinnen van de controller, met een lekkere ontkoppeling vlakbij (bv 0.1 uF + 22 uF, liefst tantaal)

enkele ontkoppelcondensatoren toegevoegd, maar het probleem bleef.

Bedankt voor je snelle antwoord!
Groeten,
Johan

- Erg groot, 50h verschil soms!

Van hoeveel maximale uitlezing (8 bits, 10 bits, nog meer?)

- Ik lees wel pas uit nadat de EOC(end of conversion) bit hoog is gemaakt, daar zal die wachttijd ingebouwd zitten.

Dat is iets anders. Bij een PIC moet je, na het omschalene naar een andere input pin, een behoorlijke tijd wachten voordat je de conversie start.

- Het analoge en digitale deel mogen alleen bijelkaar komen op de voedingspinnen van de controller, met een lekkere ontkoppeling vlakbij (bv 0.1 uF + 22 uF, liefst tantaal)

- enkele ontkoppelcondensatoren toegevoegd, maar het probleem bleef.

Maar hoe zit dat bijelkaar komen? Als he analoge deel bv een stuk ground of vcc deelt kan daar al snel rotzooi door ontstaan.

Probeer dit eens, werkt hier en in ieder geval met de ST62 serie:
ld arcp,a ;compare register
ldi arsc1,0e0h ;status/control, prescaler
ldi arrc,0 ;reload capture
ldi armc,0e0h ;enable pwm, start
ret