Pagina 2 van 9

Geplaatst: zo 11 dec 2005, 21:26
door Rudy
Juul,

In deze situatie zou ik gewoon de caps aan de ingang plaatsen, de ingangscapaciteit is bekend, de belasting van je uitgang is niet steeds bekent. Verder is de DC offset bijzonder klein en dus niet de moeite om deze moete verwijderen.

De gain instellingen die ik gebruikte waren 0 tot -80, met stapjes van 1dB, meer dan voldoende, en boven de -10dB ben ikzelf nog nooit geraakt dus nog overschot genoeg ( al hangt dit natuurlijk van amp en speakers af )

Groetjes
Rudy

Geplaatst: zo 11 dec 2005, 21:39
door daniel
Rudy schreef:
Juul,

In deze situatie zou ik gewoon de caps aan de ingang plaatsen, de ingangscapaciteit is bekend, de belasting van je uitgang is niet steeds bekent. Verder is de DC offset bijzonder klein en dus niet de moeite om deze moete verwijderen.

De gain instellingen die ik gebruikte waren 0 tot -80, met stapjes van 1dB, meer dan voldoende, en boven de -10dB ben ikzelf nog nooit geraakt dus nog overschot genoeg ( al hangt dit natuurlijk van amp en speakers af )

Groetjes
Rudy
Uit eigen ervaring: met een encoder met slechts en beperkt aantal stappen per omwenteling draai je je een ongeluk met slechts 0.5dB per stap.

Geplaatst: zo 11 dec 2005, 21:51
door JuuL
Ontzettend bedankt jongens. Scheelt me weer een hoop testen :)
Ik zal 1dB eens proberen.

Capaciteit aan de inputs? Dat wordt vrotten dan bij de print. Had dat namelijk vergeten toen ik de print maakte.
Dan plaats ik ook 50kOhm weerstanden bij de buffers, van de niet inverterende input naar de ground.

Geplaatst: di 13 dec 2005, 20:10
door JuuL
Jaja, er is nog steeds vooruitgang! :D
En om dit topic toch wat levend te houden wat piccies:

[img]/Menu.JPG[/img]

[img]/FrontMaster.JPG[/img]

[img]/Mute.JPG[/img]

Alleen de dB waardes kloppen nog niet.
Nu de andere kanalen werkend maken en de puntjes op de i zetten bij de software.
Wat betreft het bereik, 0 tot -80dB vinden jullie een mooie waarde? Maar dan maak je geen gebruik van de versterking van de chipjes.
Ik maak het zo, dat je elk kanaal apart kan regelen en met de master alles tegelijk omhoog kan schroeven, miss kan ik hier mooi het versterkende gedeelte in kwijt 0...+xdB.

En een filmpje:
/V ... gelaar.AVI
Hier heb ik zelf aan de potmeters gedraaid en aan het mute knopje gezeten uiteraard ;)
Het kanaal waarvan je het volume veranderd, die wordt afgebeelt.

Geplaatst: za 17 dec 2005, 23:15
door GeertJ
Heel sjiek JuuL. Ben deze topic al een tijdje in de gaten aan het houden en ben eens benieuwd hoe het gaat zijn als em volledig af is.
Ondertussen ben ik ook van plan een voorversterker te gaan maken met een PGA2311 IC in. Een beetje gebaseerd op de voorversterker van elektuur die er een tijdje geleden is gepubliceerd, maar dan wel met afstandsbediening in. Keep up the good work!!
Geert

Geplaatst: zo 18 dec 2005, 3:03
door JuuL
Dankje Geert!
Een afstandssbediening heb ik hier niet nodig, maar als het verder weg stond zou het een hele mooie toevoeging zijn!
Ben benieuwt hoe je dat gaat aanpakken, laat je wat zien als je bent begonnen?
En verder, welke microcontroller ga je gebruiken?

Nog een kleine update dan:
[img]/Printplaat.JPG[/img]
Alleen de voeding moet nog worden gemaakt.
De input condensatoren pasten nog maar net met wat gefriemel, ik was deze vergeten bij het maken van de printplaat...
Ook zie je enkele pinnen voor 12V aansluiting, dit is om eventueel later mijn versterkers ermee aan en uit te laten gaan.
(Thx to Rudy voor het idee ;) )

[img]/MasterFront.JPG[/img]
Het volume balkje heb ik wat mooier gemaakt en de dB waardes kloppen nu.
Ook werkt het schrijven en lezen van/naar de EEPROM. Dit stelde niet zoveel voor en was in no time gedaan.

Ik ben van het plan van 6 potmeters afgestapt, omdat dit gewoon op allerlei plekken steeds problemen zou geven. Of het streepje van de potmeters staat niet goed, of het volume zou overspringen als je tussen de kanalen wisselt.
Ik ga 1 Rotary Encoder gebruiken waarmee je het volume regelt en voor elk kanaal een drukknop, zodat je toch nog snel en makkelijk het volume kan veranderen.
Het menu hiervoor is grotendeels klaar, eigenlijk kan ik pas verder als ik de knopjes en rotary encoder heb.
Ik heb van Daniel begrepen (beetje spieken mag wel he :) ) dat http://www.voti.nl een goede leverancier hiervoor is 8)

Geplaatst: zo 18 dec 2005, 12:01
door GeertJ
JuuL schreef:
Dankje Geert!
Een afstandssbediening heb ik hier niet nodig, maar als het verder weg stond zou het een hele mooie toevoeging zijn!
Ben benieuwt hoe je dat gaat aanpakken, laat je wat zien als je bent begonnen?
En verder, welke microcontroller ga je gebruiken?
Zal hier ook een topic beginnen. Nu zal het allemaal wel zijn tijd vragen, want zit in mijn laatste jaar van mijn studie's en dat betekent dat ik een eindwerk moet gaan maken waar er veel tijd in kruipt (moet een datatransmissie systeem gaan maken om sensorgegevens van een modelvliegtuigje door te sturen naar de grond).
Ook zit ik nog met het probleem dat mijn elektronica leverancier hier in de buurt onlangs gestopt is, en ik weet niet hoe het in Nederland is, maar in Belgie zijn die dun bevolkt, dus moet ik nu veel via internet zien te bestellen, wat ook wel zijn tijd inneemt. Heb wel al het een en ander bestel. Oa de PGA2311PA IC, een heleboel relais(voor ingangselectie), displaytje, ringkerntje voor de voeding, spanningsregelaar, etc... Als microcontroller ga ik een AT89S8252 van de 8051 architectuur gaan gebruiken. Waarom? wel dat is voorlopig de enige die ik zelf kan gaan programmeren, en heeft ook wel mogelijkheden zat. 3 x 8-bit poorten, 8Kbytes programmeergeheugen, SPI interface, 2Kbyte aan eeprom.... http://www.atmel.com/dyn/resources/prod ... oc0401.pdf
verder zal eindversterker wel wat op die van elektuur gaan gelijken (the audio link?) maar dan ook weer niet ;)
Hoop dat ik volgende week al wat componenten binnen krijg, kan ik al wat beginnen experimenteren. Zal dan ook wel een topic beginnen hier met de progress..

Geplaatst: zo 18 dec 2005, 15:01
door JuuL
GeertJ schreef:
Zal dan ook wel een topic beginnen hier met de progress..
Doen! :D

Het onderdelen verkrijgen vind ik ook altijd lastig...
Vaak bestel ik alles samen bij http://www.reichelt.de erg goedkoop! http://www.futurlec.com moest ook een goede leverancier zijn.

Ik zit ook in het laatste jaar van mijn studie, leuk eindproject! http://www.premos.tk Satelliet volgsysteem :)

/Menu2.JPG
Zo ga ik het denk ik maken.

Geplaatst: zo 18 dec 2005, 15:41
door GeertJ
JuuL schreef:
www.futurlec.com moest ook een goede leverancier zijn.
ben ook al op die site gekomen, wat bedoel je met "moest" bestaat die niet meer, of slechte ervaringen mee??

Geplaatst: zo 18 dec 2005, 16:19
door JuuL
Niets negatiefs hoor :)
Geen ervaring mee, hoor goede berichten erover.
Weinig verzendkosten ook.

Geplaatst: zo 18 dec 2005, 16:26
door GeertJ
JuuL schreef:
Niets negatiefs hoor :)
Geen ervaring mee, hoor goede berichten erover.
Weinig verzendkosten ook.
oke, goed om te weten ;)

Geplaatst: zo 18 dec 2005, 18:06
door JuuL
Oja, Geert je moet wel een creditcard hebben om daar te kunnen bestellen.
daniel schreef:
Uit eigen ervaring: met een encoder met slechts en beperkt aantal stappen per omwenteling draai je je een ongeluk met slechts 0.5dB per stap.
Daniel hoe heb jij dat gedaan met die encoder?
Door het faseverschil weet je of er links- of rechtsom wordt gedraait, maar hoe heb je dat gedetecteerd met je microcontroller?

Geplaatst: zo 18 dec 2005, 18:36
door voodooless
JuuL schreef:
Daniel hoe heb jij dat gedaan met die encoder?
Door het faseverschil weet je of er links- of rechtsom wordt gedraait, maar hoe heb je dat gedetecteerd met je microcontroller?
Encoderen van het signaal is relatief simpel. Wat wel belangrijk is dat je het signaal wel goed ontdenderd, want anders werkt het allemaal niet erg lekker.

Geplaatst: zo 18 dec 2005, 20:49
door GeertJ
JuuL schreef:
Oja, Geert je moet wel een creditcard hebben om daar te kunnen bestellen.
die creditcard is geen probleem, het geld dat er op staat is iets anders ;)

Geplaatst: ma 19 dec 2005, 12:39
door daniel
JuuL schreef:
Oja, Geert je moet wel een creditcard hebben om daar te kunnen bestellen.
daniel schreef:
Uit eigen ervaring: met een encoder met slechts en beperkt aantal stappen per omwenteling draai je je een ongeluk met slechts 0.5dB per stap.
Daniel hoe heb jij dat gedaan met die encoder?
Door het faseverschil weet je of er links- of rechtsom wordt gedraait, maar hoe heb je dat gedetecteerd met je microcontroller?
Zal ik vanavond even opzoeken. Ik heb i.i.g. geen interrupts gebruikt omdat het allemaal niet zo tijds-kritisch is.

Ik pol dus gewoon. Zo uit mijn blote hoofd kijk ik naar beide ingangen van de encoder. Zo gauw als er iets gebeurt, ga ik een wachtloopje in. Hierin blijf ik, totdat beide ingangen weer inactief zijn. De laatst bewaarde toestand is dan mijn puls (up of down). Volgens mij had ik ook nog een voorwaarde ingevoerd dat ergens tijdens het wachten beide ingangen aktief geweest moeten zijn.

Ontdendering heb ik gewoon softwarematig gedaan, met een delay.

Geplaatst: ma 19 dec 2005, 12:47
door voodooless
daniel schreef:
Zal ik vanavond even opzoeken. Ik heb i.i.g. geen interrupts gebruikt omdat het allemaal niet zo tijds-kritisch is.
Mijn ervaring is toch anders, maar het ligt er natuurljik ook aan hoeveel de rest van de software te doen heeft ;)

ik heb daar nog wel een lapje code voor liggen, zal vanavond wel ff kijken...

Geplaatst: ma 19 dec 2005, 17:32
door JuuL
daniel schreef:
Zal ik vanavond even opzoeken. Ik heb i.i.g. geen interrupts gebruikt omdat het allemaal niet zo tijds-kritisch is.
deepspace schreef:
ik heb daar nog wel een lapje code voor liggen, zal vanavond wel ff kijken...
Aan jullie hoeft het niet te liggen, dat het project een succes gaat worden! :lol:
Ik dacht zelf ook aan het afscannen van de pinnetjes, naar mijn mening moet dat voldoende zijn.
@Daniel, 3 Rotary (2 voorraad) encoders besteld bij Voti, bedankt voor de tip.

Geplaatst: ma 19 dec 2005, 19:11
door voodooless
Dit stukkie code is wel voor de atmel, maar mischien toch wel bruikbaar met enige aanpassing:

CODE: Selecteer alles

#define INT2_RE {sbi(EICRA, ISC21); sbi(EICRA, ISC20);}

#define INT2_FE {sbi(EICRA, ISC21); cbi(EICRA, ISC20);}



#define INT3_RE {sbi(EICRA, ISC31); sbi(EICRA, ISC30);}

#define INT3_FE {sbi(EICRA, ISC31); cbi(EICRA, ISC30);}

SIGNAL(SIG_INTERRUPT2)

{ cbi(EIMSK,2); sys_delay(20);

  if (bit_is_set(PIND, 2)) INT2_FE else INT2_RE;

  if (bit_is_set(EIMSK,3)) // This IRQ was first

  { sys_rotary_direction = 2;

  } else { sbi(EIMSK, 2); sbi(EIMSK, 3); }

  sbi(EIFR, 2);

}



SIGNAL(SIG_INTERRUPT3)

{ cbi(EIMSK,3); sys_delay(20);

  if (bit_is_set(PIND, 3)) INT3_FE else INT3_RE;

  if (bit_is_set(EIMSK,2)) // This IRQ was first

  { sys_rotary_direction = 3;

  } else { sbi(EIMSK, 2); sbi(EIMSK, 3); }

  sbi(EIFR, 3);

}
beide rotary signalen hebben een eigen input. cbi wist een bit, sbi set een bit.

Geplaatst: ma 19 dec 2005, 20:14
door daniel
deepspace schreef:
daniel schreef:
Zal ik vanavond even opzoeken. Ik heb i.i.g. geen interrupts gebruikt omdat het allemaal niet zo tijds-kritisch is.
Mijn ervaring is toch anders, maar het ligt er natuurljik ook aan hoeveel de rest van de software te doen heeft ;)
in het geval van een preamp niet zoveel natuurlijk. Overzenden van data naar periferie is minder-dan-milisecondenwerk. Dat kan dus makkelijk tussen twee kliks van zo;n encoder in. Evenals bijvoorbeeld de tussenpauze tussen twee rc5-pulstreinen. Ook tijd zat om andere dingen te doen. En het doordraaien van 1 klik van die encoder duurt lang genoeg om er de eerste ms van te mogen missen.

echte real-time dingen zitten er gewoon niet in.

bij deze mijn code:

CODE: Selecteer alles

procedure check_encoder is
var bit cc1
var bit cc2
var bit cc3
var bit cc4

 cc1 = false
  cc2 = false
  cc3 = false
  cc4 = false


-- Het encoder signaal bestaat uit twee ingingen die ten opzichte an elkaar
-- verschoven zijn. 1 stap verzetten zorgt ervoor dat beide bits even hoog worden
-- alleen niet tegelijkertijd. Stapje linsom is dan 01 11 10, de andere kant op 10 11 01
-- Als er een van de 4 encoder-ingangen hoog is, betekent dat dat er i.i.g.
-- iets aan de hand is. Zo lang minstens een van de ingangen hoog is, wodt er in een lus
-- gewacht, en steeds de laatste toestand wordt bewaard

while (  encb1 | encb2 ) | ( enca1 | enca2 ) loop
  cc1 = encb1
  cc2 = encb2
  cc3 = enca1
  cc4 = enca2
delay_1ms ( 5 )
 end loop

-- delay is voor contact-dender. Als alle ingangen weer nul zijn, volgt uit de laatste
-- toestand wat de draairichting is geweest. Een correct laatste code is dan 01 of 10
-- 11 is een ongeldige combinatie want de stap zou dan neit afgemaakt zijn. Een exclusive or
-- kijkt hiernaar

 if ( cc1 ^ cc2 ) then
 volume_up = cc2
 volume_down = cc1
 chk = true

 else if ( cc3 ^ cc4 ) then
 channel_up = cc4
 channel_down = cc3
 chk = true
 end if
 end if

--  channel_up, channel_down, volume_up en volume_down zijn status bits,
--  welke in de update routine gebruikt worden om volume of kanaal
--  te veranderen. Vanwege de ex-or kan slechts een van de up/downbits geset zijn
--  chk is een check-bit om aan te geven dat er een update uitgevoed moet worden

end procedure

zoals je ziet zit er geeneens een check in of de hele klik wel afgemaakt is. Misschien neit helemaal 'netjes', maar het werkt wel in de praktijk. Deze code leest dus in een keer twee encoders uit.

Geplaatst: ma 19 dec 2005, 20:30
door voodooless
daniel schreef:
in het geval van een preamp niet zoveel natuurlijk. Overzenden van data naar periferie is minder-dan-milisecondenwerk. Dat kan dus makkelijk tussen twee kliks van zo;n encoder in. Evenals bijvoorbeeld de tussenpauze tussen twee rc5-pulstreinen. Ook tijd zat om andere dingen te doen. En het doordraaien van 1 klik van die encoder duurt lang genoeg om er de eerste ms van te mogen missen.
Nee precies. In mijn geval was het een complete mp3 speler, waar (als je pech had) de arme atmel data van disk of cdrom naar mp3 chip moest sturen, terwijl je via de USB poort een bestand aan het lezen was op de PC ;) Dan moet je ook nog het display updaten en op inputs reageren. Proost #-o

Geplaatst: ma 19 dec 2005, 20:43
door daniel
da's inderdaad wel wat 'lastiger' :shock:

Geplaatst: wo 21 dec 2005, 16:18
door JuuL
Ik heb jullie nog niet bedankt ;)
Bij deze! 8)

Morgen krijg ik het binnen en zal ik er mee aan de gang gaan.

@ laatste post deepspace, idd Proost :shock:

Geplaatst: wo 21 dec 2005, 20:49
door Pjotr
Hallo Juul,

Mijn ervaring is dat in zulke gevallen een encoder sampelen op ca. 1 KHz voor een 100 lijnen encoder meer dan snel genoeg is. Je moet iig binnen 90 graden van 1 puls sampelen voor een betrouwbaar resultaat. Voor de decodering kun je het beste eerst een statediagrammetje maken voor je het in software implementeert. Je kunt dan ook kiezen welke resolutie je wilt: 1x, 2x of 4x het aantal lijnen van de encoder.

Meestal doe ik het in zulke gevallen zo: Een mainloop voor achtergrond taken zoals user interface en display update en een snelle timed interrupt (op bv 1 kHz of sneller) voor tijdkritische taken. Meestal laat ik de mainloop wachten op een timingpuls van 100 Hz vanuit de zo'n interrupt (via vlaggetjes). In zo'n stuctuur kun je de encoder sampelen in de interrupt routine.

Ziet er al erg mooi uit Juul. Overigens zijn er nu hele mooie LCD's te krijgen voor jouw toepassing: Blauw negatief met een witte led backlight.

Geplaatst: wo 21 dec 2005, 21:00
door JuuL
Ik ga denk ik met een main loop werken en elke keer de encoder inlezen, als het blijkt dat dit niet snel genoeg is (lijkt me sterk) dan probeer ik wel wat anders.

Thx voor compliment:)
Ik heb hier ook zo'n blauw/wit LCD, ik vind deze stukken minder mooi dan een groene: het contrast is een stuk beter van het groene LCD.

De code van Daniel is vrij logisch, ik zal hier wel wat steun aan hebben.
Code van deepspace zou ik ff wat beter moeten bekijken.
Maar de bedoeling is ook niet om wat over te nemen he ;)

Geplaatst: wo 21 dec 2005, 21:09
door voodooless
Pjotr schreef:
Ziet er al erg mooi uit Juul. Overigens zijn er nu hele mooie LCD's te krijgen voor jouw toepassing: Blauw negatief met een witte led backlight.
Ja, er zijn tegenwoordig schitterende LCD's.. Alleen: die tering dingen zijn echt belachelijk duur :( nog erger: pixel aanstuurbare LCD's. Dat is helemaal een ramp. Je bent zo 100 euro kwijt voor een simpel display. En dan te bedenken dat je voor dat geld ook een complete printer/scanner kunt kopen met een kleuren LCD er al in. Bedroevende zaak eigenlijk.

Dat met de timer interrupt is een slim idee :)