Ik heb een digitale voeding gebouwd van deze site. http://www.tuxgraphics.org/electronics/200506/article379.shtml
Het is eigenlijk een Linux project maar de I2C communicatie kan ook onder Windows. De auteur heeft ook al een Windows console programmaatje gebouwd om dit te kunnen doen. Alleen console is niet handig. Heeft iemand ervaring met c om dit te kunnen omzetten naar een mooie win look?
Als je me kan helpen graag!
Het I2C gedeelte vindt je hier:
http://www.tuxgraphics.org/electronics/200509/article389.shtml
Ik heb alleen Visual Studio 2003 en zeer weinig ervaring met programmeren.

De eenvoudigste optie is linux instaleren.

anders kunje een gui maken en dan met bv 'Call Shell("cmd")'(in visual basic) dat command line ding opstarten

Ik heb echt geen verstand van programmeren. Dit kan ik ook echt niet alleen af. Het mooiste zou zijn dat er binnen een mooi windows gui de mogelijkheid is om de volts en amperes omhoog/omlaag te brengen met een button ofzo.
Anyone for help??

Oef ... Ik weet niet of ik zo een voeding zou bouwen ...

De stroom en spannings feedback lopen door de UC en moeten dus eerst verwerkt worden voordat er gereageert kan worden.

Lijkt me op z'n minst niet handig.

De schema's die ik van commercieele digi voedingen heb gezien gebruiken de uitgangen van de UC als referentie die dan via een opamp vergeleken wordt, dat is veel sneller dan deze constructie.

Waar staat de winxx console source code?

aaaargh . das weer dat klote ontwerp. ( foei wat een blaam voor het woord 'ontwerp'

kom niet klagen als de helft van je aangesloten systemen ontploffen straks ...
en ditto voor opgeblazen seriele poorten.

Wat een lelijk schema!

Hoe zou een voeding presteren met een DSP? Mits goed gemaakt moet het makkelijker zijn om oscillaties te onderdrukken en dergelijke denk ik.
Maar is het snel genoeg?
free? ervaring met zo iets?

Een terugkoppeling wat zich eerst door een heleboel regels code heen moet worstelen .... gegarandeerd recept voor oscillaties bij plotselinge belastingsveranderingen.

Ja, maar je moet de uitgang 'vertragen' door de basisaansturing door een RC filter te laten gaan bvb, analoge kringen hebben ook een traagheid.

Op 2 januari 2006 17:25:48 schreef Evilest Aedolon:
Wat een lelijk schema!

Hoe zou een voeding presteren met een DSP? Mits goed gemaakt moet het makkelijker zijn om oscillaties te onderdrukken en dergelijke denk ik.
Maar is het snel genoeg?
free? ervaring met zo iets?

der is niemand die dat doet. het is gewoon veel te gevaarlijk een cpu in je regellus op te nemen. de eerste crash can fatale gevolgen hebben voor de aangesloten systemen

Hp en keithley hebben een voeding ( eigenlijk is het ene batterij simulator ) waar ze iets dergelijks doen. De regelaar is nog altijd een blok opamps. de DSP meet en stuurt tegen. echter als de dsp uitvalt blijft de voeding in 'fallback' mode draaine om dat de regellus blijft werken

het schema van dit ding echter is verschrikkelijk gevaarlijk. een software bug hier kan katastrofaal zijn.

ook de manier waarop de A/D en D/A gemaakt zijn...
het zou mij niet verwonderen dat er glitchen in de uitgang van de D/A zitten.

en wat gebeurt er tijdens communicatie ? dit ding loopt i2c over een seriele port ( zonder driver of isolator ... ) wat gebeurt er als de pc halverwege ( zeg maar midden in een byte ) ermee ophoudt ? wat doet de voeding dan ? dan blijft die in de receive mode zitten en 'stallt' de regellus ... levensgevaarlijk ....

en wat als er iets gebeurt met de aangesloten systemen.

stel je sluit dit ding aan op de seriele poort om het te kunnen sturen.
je hangt er een schakelingetje aan ( 8 ledjes met een 74574 en dat hang je aan de printerpoort.
elke puls van de uitgang van je seriele poort die naar negatief gaat ( -12v) wordt nu kortgesloten aldoor de protectiediodes in de atmel , de massa van die voeding en de kabel die naar de printerpoort gaat ... Der gaat uiteindelijk iets opfikken ... ofwel de atmel ( daaaag voeding , daaaag aangesloten circuit ) ofwel de pc ( daaaag southbridge chip die ook ATA-Sata-network-floppy-usb printer en serieel doet )

en de eerste keer dat je domweg de boel met verkeerde polariteit aandlsuit ( de + uitgang van de voeding toevallig aan de grond van de PC dan ram je 34 volt ( of whatever de voeding dan levert ) in de seriele poort van de PC. die gaat daar niet kunnen mee lachen ......

je kan ook geen twee dergelijke voedingen aansluiten om er een positieve en een negatieve spanning mee te maken. dat is direct een catastrofe voor zoewel beide voedingen als de pc die ze stuurt.

het is een ROTontwerp tot en met. ( der zitten nog andere zware kemels in ook zie mijn andere posts in et ander thread over deze voeding )

commerciele sturrbare apparatuur ( of het nu voedingen of meetinstrumenten of eender wat ) zijn altijd MINSTENS galvanisch gescheiden op hun communicatiesysteem. Het interfaceblok hangt aan het chassis en aan de randaarde zoals het hoort. het effectieve meetblok of genereerblok 'zweeft' compleet ten opzichte daarvan.
meestal worden optocouplers gebruikt ( HP gebrukt nogal een twisted pair condensatoren. ze twisten twee draadjes op de ene zetten ze het signaal , op de andere pikken ze het terug op. ze hebben 2 procesors in het systeem.
de stuurprocessor ( user interface en IO ) en dan een meet of regel processor ( die verzamelt de data en stuurt de boel )

ik ben begonnen met een regelbare voeding te ontwerpen voor CO hier. prototype draait op mijn werktafel. 0..30 volt 0..2 ampere.
der zit een schakelende pre-regelaar in op 460KHz die ervoor zorgt dat het maximum weg te werken spanningsdifferentieel over de lineaire regelaar nooit hoger is dan 4 volt voor spanningen boven de 4 volt aan de uitgang.( als je 3.3 volt vraagt dan moet je 5.7 wegwerken. met andere woorden de 'chopper' regelt tussen 8 en 34 volt ) je verstookt in het slechtste geval 8 watt ( 0.1 volt bij 2 ampere )
de boel is volledige stroom en spanninggestuurd met 12 bit A/D en D/A dus resolutie zat.
de eindtrap is een TIP142 met klein koelplaatje
er zit een CA3140 in als spanningsregelaar , een CA3140 als stroomregelaar ( die opamps hebben de leuke eigenschap dat ze 'onder de grond' kunnen meten. je mag hun ingang tot halve volt onder hun meest negatieve punt sleuren : ze blijven correct werken , een tweede speciaaltje aan die opamp is dat je de BIAS van de uitgang kan veranderen. je kan zo ingrijpen op de uitgang zonder een sommeerversterker te moeten maken )

een AD8705 meet de stroom ( high side ! dus geen bouncing gronden die het regelsysteem komen verstoren )
de chopper is een LM2670
een dual optocoupler zorgt voor de isolatie. een handjevol ( 5 ) kleine BS170 transistortjes en twee picogates zorgen voor de powerup en shutdown sequence ( in samespraak met de processor )

pas als aan alle veiligheids voorschriften is voldaan ( CPU heeft power , is geboot en heeft communicatie op gang met de host ) wordt de chopper gestart. De uitgangsspanning van de chopper wordt gecontroleerd via een PWM die op de feedback ingrijpt van de LM2670. als de CPU via een van zijn A/D convertoren zichzelf er van overtuigd heeft dat die staat waar die moet staan dan zet hij zijn spannings D/A op nul , set de stroom dac waar hij moet staan, laat de biassing van de CA3140 los en regelt de spanningsdac lineair op tot de gevraagde spanning. resultaat : geen powerup en powerdown glitchen. ( de cpu detecteert powerdown aan het wegvallen van de spanning 'voor' de chopper.hij zet ogenblikkelijk de bias voor de ca3140 af waardoor de uitgangsspanning wegvalt. daarnaa stuurt hij alle dacs en de pwm naar nul en tegen dan 'sterft'

de procesor is een 8051F002. ik wou het eerst met een PIC doen maar kwam al snel vast te zitten op allerhande problemen. PIC's hebben geen D/A convertoren. PIC's met een 12 bit A/D zijn ook dungezaaid en de boel kwam veel duurder uit met de externe peripherie ( externe A/D en twee D/A plus externe referentie bandgap) dan er gewoon een 8051F002 in te gooien. ik heb 4 kanalen A/D nodig en 2 kanalen D/A + 2 pwm's plus een echte uart ( geen software uart ) en nog wat digitale IO pinnen. )

en der zit ook ene current limit ledje op :-)

het bordje is vrij klein. 24 volt AC erin en klaar.
achter de optocouplers zit een gewone uart op 9600,n,8,1 je kan het dus zo aan een pc hangen.

de bedoeling is een meerkanaal voeding te maken ( tot 4 kanalen )
een locale stuurprocessor ( met display , en rotary encoder etc ) staat je toe om de boel lokaal te bedienen of remote ( RS232, USB EN ethernet, jawel der zit een ethernet poort op ook )

er is een interfaceprotocol ( gewone ASCII commandos waarmee je de spanning en stroom instelt , de spanning en stroom kan terguglezen ( zowel de ingesteld als de gemeten , de temperatuur van de koelplaat kan opvragen en de uitgang aan en af kan zetten. er is een individuele controle voor on/off maar ook een global on/off. zo kan je de kanalen synchroniseren.

bijvoorbeeld
U12.3 stelt spanning in op 12.3 volt
I0.230 stelt stroom limiet op 230 milliampere
Oxy ( x is kanaal en y is 1 of 0 om een kanaal in of uit te schakelen
S start alle kanalen
?U returnt de gemeten spanning
?V returnt de ingestelde spanning
?I returnt de gemeten stroom
?J returnt de ingestelde stroom
P stop alle kanalen
?T vraagt de temperatuur op van de koelplaat
R staat je toe om de 'ramp' snelheid in te stellen warmme een spanningsverandering uitgevoerd wordt.

en dan zijn er nog een aantal calibratie commandos ook. na het bouwen van de voeding is de calibratie intern eeprom leeg. De stroom regelaar staat dan op midpoint en de spanning ook. je hebt een digitale multimeter nodig en een 1 ohm weerstand van 5 watt. start de calibratie sequence en volgt de instructies. de stroom en spanning feedback worden zo geijkt en de waardes opgeslagen in de interne eeprom ( tzijn offset-gain parameters die uitgerekend worden door de cpu zelf. al wat je moet doen is de cpu vertellen wat '30 volt is' en daarna wat '2 ampere' is. )

de uitgang is beschermd tegen extern opdrukken van overspanning + polariteitinversie. der zit een dikke polyfuse die de protecter zelf beschermt tegen al te grove overloads ( als de polyfuse opengaat is gans de voeding geisoleerd. )

ik post hier vanavond wel eens het voorlopig schema van de regelaar

Zo een ontwerp heb ik ook alleen iets minder spectaculair... En ook niet modulair, en de chopper is met een paar opamps.

Waarom geen GBIP poort?

Dus er is niemand die mij kan helpen?? Ik denk niet dat ik er wat aan heb dat er een discussie over de mooiste voeding losbarst. Voor suggesties ofzo richt je tot de auteur alsjeblieft. Hij heeft de voeding ontworpen niet ik. Dus is er iemand die een amateur met programmeren kan helpen??

Op 2 januari 2006 19:36:50 schreef Evilest Aedolon:
Zo een ontwerp heb ik ook alleen iets minder spectaculair... En ook niet modulair, en de chopper is met een paar opamps.

Waarom geen GBIP poort?

veeel te duur , groot en lomp. en bijna niemand heeft een GPIB controller in zijn computer.
trouwens HP en veel anderen zijn er van af aan het stappen. gaan voor usb en ethernet

Op 2 januari 2006 19:54:51 schreef SMD lover:
Dus er is niemand die mij kan helpen?? Ik denk niet dat ik er wat aan heb dat er een discussie over de mooiste voeding losbarst. Voor suggesties ofzo richt je tot de auteur alsjeblieft. Hij heeft de voeding ontworpen niet ik. Dus is er iemand die een amateur met programmeren kan helpen??

heb je de sourcecode van dat loonix programma ?

of ken je het protocol waarmee gepraat wordt ?

een console programma aanpassen is kwestie van gewoon een GUI te maken in studio en de juiste routines op te roepen uit die blok code. overal in de source waar de console aangepstorken wordt ( STDIN en STDOUT ) zul je 'glue code' moeten schrijven die de boel interfaced met de GUI.

als je de details van het protocol kent wil ik je wel op weg helpen.

ik heb net die teerbal gedownload .
da is me nen mierennest ...

die code is ook niet porteerbaar naar studio in 123
. het probleem is dat er non-standard calls gebruikt worden die in die Ming bazaar zitten.

heb je ergens een beschrijving van het protocol ?
wat moet er gestuurd worden naar de voeding ?

gee feen paar voorbeelden : zoals stel de voeding in op 12 volt. stel de voeding in op 1 ampere
lees de spanning.

ik zal zien of dat porteerbaar is naar native windows code via de MSCOMM engine die standaard in de kernel van windows zit.

Op 2 januari 2006 19:25:05 schreef free_electron:
[...]

ik ben begonnen met een regelbare voeding te ontwerpen voor CO hier. prototype draait op mijn werktafel. 0..30 volt 0..2 ampere.

Ik kan maar 1 ding zeggen: Is 'ie al af? Heb ik 't schema al? Zit de firmware al in m'n mailbox?

free_electron *RULEZ*

Op 2 januari 2006 20:31:57 schreef MNM(tm):
[...]

Ik kan maar 1 ding zeggen: Is 'ie al af? Heb ik 't schema al? Zit de firmware al in m'n mailbox?

free_electron *RULEZ*

Dat zijn 3 dingetjes....

Rustig, rustig.

He free_electron ik heb je een mail gestuurd met de source code. Misschien dat je er iets mee kan! ;)

Op 2 januari 2006 20:36:12 schreef SMD lover:
He free_electron ik heb je een mail gestuurd met de source code. Misschien dat je er iets mee kan! ;)

die source is het probleem niet
der ziet geen enkel voorbeeld bij.

dat programma staat je alleen toe karakters neer die avr te jagen. de vraag is alleen .. welke karakters ? das de mieserie

kzal vanavond eens kijken naar die code. ik kan nie aan mijne prive mail.

je moet eens naar de i2c files kijken bovenaan. daar staat een verwijzing naar mij :)

Er was toch ook Winxx console source code?

Op 2 januari 2006 21:45:12 schreef Descartes:
Er was toch ook Winxx console source code?

ja maar die doet ook alleen maar karakters sturen naar de poort.
om een gui te maken moet je weten welke karakters je wilt sturen.
als ik op het knopje "+" klik moet ik weten welke karatkers er moeten vertrekken naar die voeding ..
das alles

en die winxx console gebruikt de Mingw engine. dat kan je niet porteren naar studio ...

laat maar kheb het al uitgevist uit de ddcp.c code

I=10[null] zet 100 milliampere
I[null] leest
U=1230[null] zet 12.3 volt
U[null] leest
S[null] schrijft in eeprom

meer is er niet
alle strings zijn null terminated

dus tis enkel kwestie van die i2c code te bitbangen op dtr en cts en de readback op CD te doen meer is er niet.

[Bericht gewijzigd door free_electron op ]

Maar hoe doe je zoiets free_electron?
Ik kan echt totaal niet programmeren. Alleen een beetje visueel wat aanpassen. Zou jij misschien het in een simpele gui kunnen gieten? Als ik je goed begrijp is het simpel op te lossen alleen voor mij is het een groot probleem! Als jij het een simpele windows look kan geven kan ik het verder wel aanpassen ofzo. Maybe? ;)

Op 2 januari 2006 20:42:36 schreef free_electron:
je moet eens naar de i2c files kijken bovenaan. daar staat een verwijzing naar mij :)

Idd. Ik heb het gezien.

Some of the comments in this code are taken from the i2c faq by Vincent Himpe ;)

Op 2 januari 2006 22:11:25 schreef SMD lover:
Maar hoe doe je zoiets free_electron?
Ik kan echt totaal niet programmeren. Alleen een beetje visueel wat aanpassen. Zou jij misschien het in een simpele gui kunnen gieten? Als ik je goed begrijp is het simpel op te lossen alleen voor mij is het een groot probleem! Als jij het een simpele windows look kan geven kan ik het verder wel aanpassen ofzo. Maybe? ;)

kzal da eens tweaken vanavond.
als ik die controle over die lijnen kan pakken is de rest in 5 minuten geklonken.
ik heb i2c libraries kant en klaar. dus das alleen wat glue code bakken en er een GUi aanplakken.