Author |
Topic |
swede
Member
1091 Posts |
Posted - 2003/03/14 : 23:06:27
|
Tjenare,
Nu har jag byggt färdigt reläkortet, testat det (utan att koppla det till stärkare), testat det igen (genom att koppla det till stärkaren), kodat, kodat, kodat och kodat PIC.
Nu har jag börjat närma mig en "version" som jag är hyfsat nöjd med, och som inte knastrar när man ändrar volym. Knastret kommer sig av att reläerna är olika snabba i tillslag/avslag, så att man momentant får ut en helt annan volym på reläkortet än man valt med PIC-en.
Ex en förändring från b'01111111' till b'10000000' (från 127 till 128) kan ge ifrån sig en riktig smäll i högtalarna. Ett slags blipp, som inte alls låter hälsosamt för anläggningen.
På lite olika ställen har jag läst om hur man skall lösa det hela. Det verkar som att folk som aldrig testat själv i verkligheten, tycker att man skall tända den/de "nya" bitten/bittarna innan man släpper den/de gamla. Detta fungerar inte tillfredställande. Man får blippar ändå, vilket kommer sig av att man då får ut "högre" volym än man ville, momentant.
Ex: Från 127 till 128 (b'01111111' till b'10000000') så får man trestegsraketen:
1) b'0111111'
2) b'1111111' <--- blipp
3) b'1000000'
Så jag försökte med att köra in en 0:a mellan gammal volym och ny volym.
1) b'0111111'
2) b'0000000' <--- blipp
3) b'1000000'
Det blev väl sådär. Jag fick bort blippet, men resultatet blev "svajigt". Lite svårt att förklara hur ljudet blev, men lite grand som om man ändrar hastigheten fram och tillbaka på skivan. Helmysko och det låter inte alls "dyrt" utan mer amatörmässigt.
Det jag gör istället är at använda mig av en enkel logisk "and", för att först släppa de reläer som kommer vara "olika" mellan föregående volym och den nya volymen.
Ex
b'01110111' <- gammal volym
and b'01111000' <- ny volym
---------------
b'01110000' <- intermediate volym
Så min trestegsraket blir:
1) b'01110111' <- gammal volym
2) b'01110000' <- intermediate volym
3) b'01111000' <- ny volym
Mellan intermediate volymen, kör man en riktigt kort paus, som inte behöver vara så lång att reläerna faktiskt hunnit släppa helt och hållet. Tanken är att man vill ge bitarna som skall nollas lite försprång, så de slår om till noll, ungefär samtidigt som de som skall ett-sättas. Då slipper man blippet helt och hållet.
Så här ser min kod ut (den delen som tar hand om att skicka ut volymen, resten av koden är identisk med den jag listat tidigare):
Rotary_Loop
movf PORTB,0 ; Read in rotary state
andlw b'00000011' ; Just the two lower bits are important
bcf STATUS,Z
movwf NEW_STATE ; Store state as "new"
subwf OLD_STATE,0 ; Compare to old state
btfsc STATUS,Z ; If zero flag is clear, skip next instruction
goto Rotary_Loop
; if something happens, call decode_statechange
call Decode_Statechange
movf VOLUME,0 ; Load the volume
andwf OLD_VOLUME,0 ; Intermediate volume anded into W register
call Shift_Out ; Send out the intermediate volume on the shift/latch registers
call Delay_Loop1 ; Short delay
movf VOLUME,0
movwf OLD_VOLUME ; Save the volume as OLD_VOLUME
call Shift_Out ; Send out the volume on the shift/latch registers
movf NEW_STATE,0 ; Save the state as old_state
movwf OLD_STATE
goto Rotary_Loop
Nåväl, my 0.02 euro...
I övrigt är jag nöjd med resultatet. Nu måste jag börja titta mig omkring/bygga en passande låda. Jag hittade en gammal Digital router i en skrotlåda på jobbet idag. Den har rätt storlek, men är ganska ful. Eventuellt hottar jag upp den. Återkommer med bilder när jag (av alla prylnissar) skaffar en digitalkamera. Det är ju synd och skam att jag inte har någon ännu. Fy för mig. Åker dock till staterna om ett par veckor. Då kommer jag bli med kamera.
Godans gott, //magnus |
perl -ne'chomp;$a.=pack"b*",$_;END{print"\n$a\n\n"}'<<RM 10000010001101101010011000001110000101100000010001001110 101011100011011010100110110011101000010001010000 RM |
|
|
swede
Member
1091 Posts |
Posted - 2003/03/14 : 23:11:53
|
Sorry, jag har ju faktiskt ändrat lite i koden för att öka och sänka volymen. ;=) Jag har ju en kontroll så man inte går från volym 0 till volym 255, eller från 255 till 0.
increase_volume
movlw 0xff
subwf VOLUME,0
btfsc STATUS,Z
goto increase_volume_no_increase ; if volume is already 0
movlw d'1'
addwf VOLUME,1
increase_volume_no_increase
return
;***************************************************
; 2003-07-03
; ML decrease_volume
;***************************************************
decrease_volume
movf VOLUME,1
btfsc STATUS,Z
goto decrease_volume_no_decrease ; if volume is already 0
movlw d'1'
subwf VOLUME,1
decrease_volume_no_decrease
return
Det ni! Så snart jag blir klar med mina funderingar över hur jag skall sätta LED'ar på framsidan av panelen och implementerat ingångsväljaren, kommer jag lägga ut mina ritningar och min kod, ifall någon mot all förmodan skulle vara intresserad.
//magnus |
perl -ne'chomp;$a.=pack"b*",$_;END{print"\n$a\n\n"}'<<RM 10000010001101101010011000001110000101100000010001001110 101011100011011010100110110011101000010001010000 RM |
|
|
loovet
Member
354 Posts |
Posted - 2003/03/16 : 22:20:30
|
Hej Magnus,
kul att du har kommit så pass långt med ditt reläkort m m. Klart att vi är intresserade av hur ditt projekt fortskrider.
Funderade lite på det där med övergången mellan de olika volymlägena, främst de där det är många reläer som släpper samtidigt. Borde inte NP ha haft det i sin första version av Aleph P. I den så använde han väl en Analog/Digital omvandlare som styrs med en pot. I den versionen så borde han ju inte kunnat gjort några som helst justeringar för de problem som du nämnde. Undrar hur han löst det, för jagtror inte att han sålde den förförstärkare för dyra pengar som inte lät bra.
Väntar fortfarande på min Programerare PIC16PRO, två veckor sedan jag beställde nu, vill ju sätta fart.
Beställde även lite samples från Microchip, heltt fantastiskt att de skickar dem helt gratis.
/loovet |
// det blev en aleph 1.7 // |
|
|
swede
Member
1091 Posts |
Posted - 2003/03/16 : 23:37:27
|
Jo, du har rätt... Helt fantastiskt att man kan få så mycket samples. Det gör ju hobbyn mer överkomlig pengamässigt.
Idag smackade jag in allt i en låda. Jag hittade en gammal DEC-Digital router i en skrotlåda på jobbet häromdan. Den var precis rätt storlek, ca 85mm hög, 19 tum bred och en sisådär 35 cm djup. Perfekt. Dock ser den riktigt tråkig ut, så jag får hotta upp den lite. Men den står i en låda i stereoracket i alla fall och används i "produktion".
Jag saknar fortfarande ett par funktioner, såsom ingångsväljare och nivåindikator. Det kommer snart. Åtminstonne nivåindikator, för det saknar jag verkligen. Om inte annat, så är den såpass färdig att jag kan ge mig på nya projekt utan att skämmas. ;=)
//magnus |
perl -ne'chomp;$a.=pack"b*",$_;END{print"\n$a\n\n"}'<<RM 10000010001101101010011000001110000101100000010001001110 101011100011011010100110110011101000010001010000 RM |
|
|
swede
Member
1091 Posts |
|
swede
Member
1091 Posts |
|
swede
Member
1091 Posts |
Posted - 2003/03/27 : 20:46:29
|
Och...
Jag har inte monterat allt ordentligt än, då jag saknar ett reläkort, ingångsväljaren är inte klar, front och bakpanelerna är inte fixade än... Det här är dock en fungerande prototyp, som har givit mig väl-ljud de senaste veckorna.
//magnus |
perl -ne'chomp;$a.=pack"b*",$_;END{print"\n$a\n\n"}'<<RM 10000010001101101010011000001110000101100000010001001110 101011100011011010100110110011101000010001010000 RM |
|
|
rejvgudrun
Member
562 Posts |
Posted - 2003/03/27 : 20:54:06
|
swede>>tjena mannen!!!snyggt jobbat. idag kom äntligen mitt paket från schuro, trissor, pot och JÄTTEkondingar låg snyggt förpackade på sedvanligt preussiskt manér. tyskarna vet hur man får nöjda kunder. började även att löda lite smått på nätdelen. Ett problem dock. Det var tänkt att jag skulle ha en 1,2 mm koppartråd som jordslinga, men den tvärvägrar att bli fastlödd. jag misstänker att det är något slag slem på koppartråden som är den direkta orsaken.
|
________________________ PRAGA MATER URBIUM |
|
|
swede
Member
1091 Posts |
Posted - 2003/03/27 : 20:57:30
|
rejvgudrun: Slemmet på koppartråden är nog lack. Använd lite sandpapper eller en smärjelduk för att ta bort den tunna hinnan i änden på koppartråden.
Jordslinga låter farligt. Man skall inte ha någon slinga, utan en "stjärnjord". Välj ut en punkt en bit från kondingarna till powersupplyen (alltså inte på någon av terminalerna till kondingarna) och dra i en M3-bult. Dit skall alla "jordkablar" gå.
I morgon drar jag till staterna. Vi hörs när jag närmar mig dalarna!
Godis, //magnus |
perl -ne'chomp;$a.=pack"b*",$_;END{print"\n$a\n\n"}'<<RM 10000010001101101010011000001110000101100000010001001110 101011100011011010100110110011101000010001010000 RM |
|
|
rejvgudrun
Member
562 Posts |
Posted - 2003/03/27 : 21:12:39
|
swede>>vad är "en bit"? Min nätdel är bara 10x10cm, med kondningar på var sida. Hur fet måste jordkablarna vara? Räcker det med smal flerkardellig litztråd?
ha det gôtt i staterna //v |
________________________ PRAGA MATER URBIUM |
|
|
swede
Member
1091 Posts |
Posted - 2003/03/27 : 22:20:28
|
En "bit" från kondingarna betyder "inte PÅ kondingarna". Ett par cm ifrån duger gott. Du får faktiskt brum om du använder för klen jordkabel. En smal flertrådig är nog inte att rekommendera, men jag vet ju inte hur smal du menar.
En ordentlig jordkabel är att fördra. Ungefär som en feting-jord i väggen hemma, duger bra. Annars kan du skaffa sån där ormolje-kabel. Riktigt fet, skärmad, tvinnad och helafaderullan. ;=) Glöm inte att pinka i motvind när du kopplar in den... Skämt åsido, med för klen kabel riskerar du brum. Din 1.2mm enkel-ledare blir nog bra, om du bara får dit den. Å andra sidan kanske du lär dig något på att använda din "klena" jordkabel först och själv märker skillnad när du byter till grövre. Om du inte märker någon skillnad och börjar dansa som på moln, så spelar det ju ingen roll(?)!
//magnus |
perl -ne'chomp;$a.=pack"b*",$_;END{print"\n$a\n\n"}'<<RM 10000010001101101010011000001110000101100000010001001110 101011100011011010100110110011101000010001010000 RM |
|
|
swede
Member
1091 Posts |
Posted - 2003/04/07 : 00:35:07
|
Någon mer som spelar på sin Aleph P än?
//magnus |
perl -ne'chomp;$a.=pack"b*",$_;END{print"\n$a\n\n"}'<<RM 10000010001101101010011000001110000101100000010001001110 101011100011011010100110110011101000010001010000 RM |
|
|
Freddie
Member
322 Posts |
Posted - 2003/04/07 : 18:08:49
|
quote: Någon mer som spelar på sin Aleph P än?
Nej, dessvärre inte. Har lite för lite tid, och dessutom så kom ett slutstegsbygge imellan.
/Freddie |
|
|
loovet
Member
354 Posts |
Posted - 2003/04/07 : 18:55:49
|
Eftersom jag inte har några slutsteg att spela på än. Så får jag använder jag min halvfärdiga Alep P till att driva mina hörlurar. Det som är kvar att färdigställa är volymkontroll, ingångsväljare och låda.
Tycker att den är klart duglig som hörlursförstärkare
/loovet |
// det blev en aleph 1.7 // |
|
|
swede
Member
1091 Posts |
Posted - 2003/04/08 : 01:04:19
|
Tänkte prova det där att använda dem som hörlursförstärkare någon dag framöver.
//magnus |
perl -ne'chomp;$a.=pack"b*",$_;END{print"\n$a\n\n"}'<<RM 10000010001101101010011000001110000101100000010001001110 101011100011011010100110110011101000010001010000 RM |
|
|
swede
Member
1091 Posts |
Posted - 2003/04/14 : 23:09:38
|
Tjenare,
Nu har jag lagt ut min "kod" till min volymkontroll. Den är väl sådär kommenterad, men man borde förstå det mesta i alla fall.
Jag använder mig av ett shift-register och en 8-bitars latch för att få ut volymen till reläkortet. Det kan se lite kryptiskt ut, men jag shiftar ut och aktiverar latchen i en subrutin som heter "Shift_Out".
Se det hela här: http://www.skip.informatik.gu.se/~kmg/diyaudio/projects/aleph_p/#pic16f84a_code
//magnus |
perl -ne'chomp;$a.=pack"b*",$_;END{print"\n$a\n\n"}'<<RM 10000010001101101010011000001110000101100000010001001110 101011100011011010100110110011101000010001010000 RM |
|
|
anelar
Member
151 Posts |
Posted - 2003/04/15 : 10:31:53
|
Swede> Vågar man fråga hur försteget låter såhär efter ett par veckor? Vad har du att jämföra med?
*Anders önskar han hade mera tid till sina projekt* :|
|
|
|
swede
Member
1091 Posts |
Posted - 2003/04/15 : 13:57:41
|
Jag har ju inte så mycket att jämföra med, då jag körde passivt innan. Min Aleph 30 ger ju ifrån sig lite mer ljud nu, då min CD-spelare inte kunde ge ifrån sig en tillräckligt hög signalnivå för att driva tillräckligt högt.
Men jag är nöjd! Det låter bra, men jag har inte byggt klart allt; ingångsväljare och lite lull-lull är kvar att bygga.
Klart värt pengarna jag lagt ner. Jag kommer fota lite mer sen när jag byggt mer. //magnus |
perl -ne'chomp;$a.=pack"b*",$_;END{print"\n$a\n\n"}'<<RM 10000010001101101010011000001110000101100000010001001110 101011100011011010100110110011101000010001010000 RM |
|
|
loovet
Member
354 Posts |
Posted - 2003/04/23 : 22:21:36
|
Nu kan jag meddela alla att jag faktiskt har kommit en bit på vägen vad gäller programeringen av en PIC. Trode faktiskt ganska länge att jag inte skulle klara detta, men skam den som ger sig. Att jag har lyckats komma någon vart över huvud taget är till stora delar Nagrefs och Magnus (swede) förtjänst, tack för all hjälp.
Vad har jag då efter många sena kvällar och mycket pulande och läsande kommit fram till. Jo en ingångsväljare, alltid något.
Det sista som överger en DIYare är hoppet
Tack än en gång
/loovet |
// det blev en aleph 1.7 // |
|
|
Nagref
Member
113 Posts |
Posted - 2003/04/23 : 22:26:33
|
Har jag hjälpt till?
Det var ett rent misstag. Jag bara påpekade några saker!
Med så få rader kod kunde jag nog tänkt till något mer och gjort den till dig men det är ju bättre om du får tänka själv! |
Assisterar Holographic Audio och Larsen Hifi VD för Acoustic Landscape R&D-ansvarig för Acoustic Illusion |
|
|
loovet
Member
354 Posts |
Posted - 2003/04/23 : 22:30:14
|
Det är alltid kul att tänka själv.
Men som helt ny på området så måste man ha någon att bolla med.
/loovet |
// det blev en aleph 1.7 // |
|
|
swede
Member
1091 Posts |
Posted - 2003/04/23 : 23:40:44
|
Precis, det dräller ju inte av likasinnade DIY-narkomaner. Man får vårda dem man har med andakt.
Grattis till ingångsväljaren!
//magnus |
perl -ne'chomp;$a.=pack"b*",$_;END{print"\n$a\n\n"}'<<RM 10000010001101101010011000001110000101100000010001001110 101011100011011010100110110011101000010001010000 RM |
|
|
rejvgudrun
Member
562 Posts |
|
swede
Member
1091 Posts |
Posted - 2003/04/24 : 18:55:55
|
Ah, också har vi rejvgudrun! Ytterligare en go DIY'are, värd att vårda!
Hur går det med dina projekt?
//magnus |
perl -ne'chomp;$a.=pack"b*",$_;END{print"\n$a\n\n"}'<<RM 10000010001101101010011000001110000101100000010001001110 101011100011011010100110110011101000010001010000 RM |
|
|
rejvgudrun
Member
562 Posts |
Posted - 2003/04/24 : 20:27:59
|
hej swede
var du här i påskas? själv blev jag mer eller midnre tvingad att tillbringa påsken utanför älmhult *blää*
IDAG ÅKTE NÄTDELEN I GOLVET OCH TVÅ HÖRN BRÖTS AV! *BLÄÄÄ*
|
________________________ PRAGA MATER URBIUM |
|
|
Topic |
|