Omcoderen van 4 naar 3 bits

fatbeard

Honourable Member

Op 25 juni 2019 19:05:09 schreef Bavelt:
...
Dat zal dan in mijn ogen met een AND moeten gebeuren. Dat werkt met actief=1. 6 x inverteren dus.

Hoeft niet, gaat ook prima met een OR of NOR. Met een OR is de 'geblokkeerde' toon alleen "H"...

De oscillatoren moeten dan worden gemaakt met een 2-input ST. (zou ook kunnen met twee keer een 74HCT132, zitten er per IC vier in.

Dat gaat inderdaad prima, alleen is de eerste periode niet gelijk aan alle volgende: de condensator moet eerst ontladen vanaf de voedingsspanning tot het triggerpunt, 'in bedrijf' alleen vanaf het andere triggerpunt...
Omdat het alleen de eerste periode is, is het niet hoorbaar; puristen zouden er echter hun neus voor optrekken... ;)
Maar met een poort erachter is zowel de eerste als de laatste periode niet gegarandeerd...

Een goed begin is geen excuus voor half werk; goed gereedschap trouwens ook niet. Niets is ooit onmogelijk voor hen die het niet hoeven te doen.
Hubie

Special Member

Op 25 juni 2019 15:07:35 schreef Arco:
Voorbeeld hoe simpel alles is met een eprom... ;)

[bijlage]

Met alleen een counter + eprom kun je verrassend complexe schakelprogramma's maken.

Voor het echte handwerk ;-)
https://www.elektormagazine.nl/magazine/elektor-198199/43206

Arco

Special Member

@arco, waar maak jij een dergelijk schema mee? Speciaal tekenpaket?

Nee, Paint... ;)
Als je er ervaring mee hebt kun je verrassend snel knippen en plakken met Paint in bestaande schema's...

@Hubie:
Ik heb zo wel eens een 2732 eprom geprogrammeerd. Dat doe je geen tweede keer als het niet echt nodig is...

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Bavelt

Golden Member

Op 25 juni 2019 22:24:04 schreef fatbeard:
[...] Hoeft niet, gaat ook prima met een OR of NOR. Met een OR is de 'geblokkeerde' toon alleen "H"...[...]Dat gaat inderdaad prima, alleen is de eerste periode niet gelijk aan alle volgende: de condensator moet eerst ontladen vanaf de voedingsspanning tot het triggerpunt, 'in bedrijf' alleen vanaf het andere triggerpunt...
Omdat het alleen de eerste periode is, is het niet hoorbaar; puristen zouden er echter hun neus voor optrekken... ;)
Maar met een poort erachter is zowel de eerste als de laatste periode niet gegarandeerd...

Even over die oscillatoren: ik maak ze dus met een ST en R/C combinatie. Is er misschien een ander methode om dit soort frequenties (maar dan stabiel) te genereren?
Want je kunt niet voor alle frequenties (met gebruik maken van delers) een kristal kopen. Toch?

Fouten zijn het bewijs dat je het probeert..
Hubie

Special Member

Als je (bij voorbeeld) aan een DTMF coder ic een ander X-tall knoopt wordt de afstand tussen de tonen groter of kleiner en hoger of lager (afhankelijk of de kristal freq. hoger of lager is)
Hetzelfde geld voor(FSK) modemchips met een kristal, maar het aantal tonen is natuurlijk vrij beperkt.
(En die 2 tonen tegelijk van DTMF klinken 'zo vals als een politiehond '
;-) maar dat is opzettelijk zo gedaan voor de herkenbaarheid )

Op 25 juni 2019 23:13:50 schreef Bavelt:
Even over die oscillatoren: ik maak ze dus met een ST en R/C combinatie. Is er misschien een ander methode om dit soort frequenties (maar dan stabiel) te genereren?

CMOS 4060 = oscillator + counter. Naar keuze met RC combo of kristal. CD4060, HCF4060, HEF4060, 74HC4060, ..., zou zo uit m'n hoofd niet weten in welke families die 4060 voorkomt cq. makkelijk verkrijgbaar is.

Want je kunt niet voor alle frequenties (met gebruik maken van delers) een kristal kopen. Toch?

Nou... in het algemeen kun je wel stellen dat voor elke gangbare frequentie zoals audio samplerates, RS232 baudrates etc er een kristalfrequentie te vinden zal zijn die een macht van 2 veelvoud van zo'n frequentie is. Da's immers hoe die frequenties gegenereerd worden. Sommige waarden zijn alleen wat gangbaarder dan andere. En aantal benodigde stappen in de frequentiedeler kan variëren natuurlijk.

Arco

Special Member

General Instruments (de voorloper van Microchip) heeft in het verleden veel 'musical notes' chip gemaakt (AY-5-xxxx), maar die zijn allang obsolete.
Meeste kan een MCU wel opwekken, afhankelijk van hoe nauwkeurig je het hebben wilt. (5Hz, 1Hz, 0.1Hz...)

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Hubie

Special Member

Ik krijg opeens een flashback van een Elektuureluur ontwerp van een deurbel waar je zelf de toontjes of melodietjes in kon programmeren.
(jaren 80 of zo? ) Kan het hier ff niet ter plekke ophoesten.

[Bericht gewijzigd door Hubie op woensdag 26 juni 2019 01:55:37 (12%)

Arco

Special Member

Met een kleine MCU + AD9833 is het opwekken van zeer precieze sinusgolven heel eenvoudig...

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Bavelt

Golden Member

Op 26 juni 2019 01:39:28 schreef Hubie:
Ik krijg opeens een flashback van een Elektuureluur ontwerp van een deurbel waar je zelf de toontjes of melodietjes in kon programmeren.
(jaren 80 of zo? ) Kan het hier ff niet ter plekke ophoesten.

Ik denk dat je nr 104 bedoelt (idd, lang vervlogen tijd).
Had ik gemaakt. Alleen het probleem daarbij was dat de uitgangsspanning van het IC 4015 werd gebruikt voor het aansturen van een MVB (transistor schakeling, die overigens ook niet goed werkte). Dat maakte het geheel zeer gevoelig voor spanningsfluctuaties.
Bijvoorbeeld de frequentie van 523 Hz was de ene keer 515 Hz, dan weer 541 Hz.
Dat is niet erg voor een 'random' geluid, maar wel als je een melodietjes hebt waarbij de frequenties zo dicht bij elkaar liggen.
De frequenties die ik koos (440 - 698 Hz) zijn afkomstig uit de toonladder
C5-C5-B4-C5-B4-A4-A4-A4-A4-0-E5-E5-F5-E5-D5-C5-C5-C5-C5-C5.

Wellicht is er iets waarbij je deze kunt kiezen. Met de computer krijg je deze er eenvoudig uit via de geluidskaart en online generatoren. Maar nu hardwarematig op een printje...

Fouten zijn het bewijs dat je het probeert..
Bavelt

Golden Member

Op 24 juni 2019 23:16:42 schreef Frederick E. Terman:

Met diodes verbind je een toon met elke uitgang waarop die toon moet klinken (rekening houdend met de 'negatieve' logica: laag = klinken).
Dit doe je voor alle tonen.

Je kunt zo gemakkelijk nog eens wijzigingen in het melodietje maken, en je kunt zoveel verschillende tonen gebruiken als je wilt.

Nog even hierover: ik had de schakeling gemaakt met counter (74HCT393) + 74LS145, een BCD to Decimal met open collector. Dan kan je de uitgangen die dezelfde toon moeten genereren gewoon aan elkaar knopen. Wel met een externe weerstand naar de +.
Ik zou dus ook via de actieve "0" de betreffende toongenerator kunnen aanzetten.

Dan de vraag: mijn idee was om via een dataselector te kiezen uit 1 van deze 6 tonen.
Maar omdat er nu met een aan/uit zetten altijd maar eentje tegelijk werkt, is het dan niet bijvoorbeeld mogelijk om de uitgangen van de generatoren via condensatoren aan elkaar te knopen en het knooppunt naar de audio?
Dan ben je immers de DC component kwijt en de uitgangen hangen niet rechtstreeks galvanisch aan elkaar.
Dat er dan geen mooie blokgof uitkomt op de audio is niet zo'n punt.
sterker nog: liever een sinus dan een blok.

Fouten zijn het bewijs dat je het probeert..
Arco

Special Member

Je kunt de uitgangen met een weerstand aan mekaar knopen...
Maar bijna alle aangedragen oplossingen werken, ligt eraan wat je zelf wilt... (ttl, eprom, microcontrollertje,...)

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

Op 25 juni 2019 23:13:50 schreef Bavelt:
Want je kunt niet voor alle frequenties (met gebruik maken van delers) een kristal kopen. Toch?

Je hoeft je niet te beperken tot macht-van-twee delers. Met een teller en wat decodeer-logica kun je in principe elk geheel deeltal maken.

Als je dan begint op een reguliere kristalfrequentie van bijvoorbeeld 4.43361875 MHz heb je met een deeltal van 10076 een frequentie van 440.017Hz. Knappe luisteraar die het verschil met 440Hz hoort.

Nog mooier is het als je het deeltal per periode veranderd. (bijvoorbeeld om en om 10076 en 10077) Dan krijg je gemiddeld 10076.5, en dus 439.996Hz

Maar dat wordt met logica wel wat minder, dan wordt een CPLD/FPGA snel aantrekkelijker. Of in sw met een microcontroller, als het niet al te snel (audio) hoeft.

Arco

Special Member

Om bij TTL te blijven zou dan een 74HCT4059 (divide-by-N) counter kunnen...
Ik gebruik in een project een AD9833 voor muzieknoten opwekking, haalt een nauwkeurigheid van 0.001%... ;)

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Hubie

Special Member

Ik heb hier nog een pijp vol nos NE 567 IC's,daar kan je ook leuke dingen mee doen,werkt met R-C combinaties,ook niet echt super stabiel natuurlijk.Iig geen kristal stabiliteit qua toon.

Arco

Special Member

Ik heb ze vroeger vaak gebruikt voor toonopwekking en decodering, maar die zijn echt vreselijk beroerd qua stabiliteit, vooral met temperatuur.
Er zijn wat noodgrepen met wat diodes en zo; wordt dan wat beter maar het blijft droevig.
(15 graden temp.stijging was genoeg om 'm een toon niet meer te laten herkennen)

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Hubie

Special Member

Wel gebruikt vroeger voor RTTY op 2 meter en 70 cm (FM)dat ging prima.
Op de korte golf amateurbanden (SSB) was het een ramp,850 Hz shift trok de 567 nog wel redelijk als er geen of weinig fading was.
Met 170 Hz shift was zo'n ding waardeloos.Brandhout.

[Bericht gewijzigd door Hubie op vrijdag 28 juni 2019 02:22:55 (12%)

Misschien hetvolgende idee. Een digitale sinus oscillator uit een CD4015 + laagdoorlaatfilter 15kHz.

https://www.electroschematics.com/2957/digital-sinewave-oscillator

I.p.v. een NE555 een stabiele PLL oscillator CD4046 als frequentie-regeling.

RES
Bavelt

Golden Member

Nou, allen bedankt voor de input.
Ik heb veel ontvangen van jullie en maak een keuze.
Eerst met TTL, daarna aan de slag met mirocontroller(s)!

Fouten zijn het bewijs dat je het probeert..