8 bit processing (vrij naar Leibniz)

Grumble

Happy Drumming
Lid sinds
21 juli 2008
Berichten
988
Locatie
Eibergen
Het Leibniz systeem - klinkt interessant. Moet ik eens iets over bekijken.
Getriggerd door dit ☝🏼😁 draadje ben ik in mijn voorraad gedoken en vond een paar DAC08-jes.
8bit DAC, die gaat zorgen voor een analoog uitgangssignaal.
De ADC die ik hiervoor bedacht heb is een TLC0820, dit is een flash ADC, 8 bits met parallel uit (is besteld en onderweg).
Anders dan bovenstaande draad ga ik wΓ©l een uprocessor gebruiken, maar niet voor het samplen, maar voor het instellen van een bewerking tussen de DAC en ADC.
Het idee is om een eeprom tussen de ADC en de DAC te plaatsen waarbij de laagste 8 bits van het adres door de ADC wordt aangeboden en de 8 data lijnen naar de DAC gaan.
In de eeprom kan ik dan elke 256 bytes een type conversie programmeren en de hogere adres lijnen worden dan door de uprocessor naar behoefte ingesteld.
De processor krijgt ook een oled schermpje die laat zien wat voor conversie er gepleegd wordt.
Bv: Heel simpel, voor elke 0 aan de ingang laat ik een 1 aan de uitgang komen > is inverteren.

Over de conversies moet ik nog nadenken (heb ik ook alle tijd voor want de ADC 's komen uit China)

Voel je vooral vrij om commentaar te leveren dan wel vragen te stellen...
 

Attachments

  • tlc0820a.pdf
    1,2 MB · Bekeken: 73
  • DAC08.pdf
    352,1 KB · Bekeken: 64
Leuk - dit ga ik volgen. :)

Als je de gebruiker van je te bouwen module de mogelijkheid laat om voor alle mogelijke bytes die uit de A/D omzetter komen aan te geven wat de byte moet worden die de D/A omzetter weer naar een analoog signaal converteert dan geef je de gebruiker van de module de maximale vrijheid die met deze opzet maar mogelijk is...
 
Eigenlijk lijkt mij het directe gebruik van de afzonderlijke bits van het gedigitaliseerde (in bytes omgezette) ingangssignaal veel interessanter dan het uitvoeren van een logische bewerking op de bytes gevolgd door de omzetting terug naar een analoog uitgangssignaal. In het laatste geval krijg je immers een gecombineerde bitcrusher en waveshaper (wat al bekende modules zijn).
 
Ook ja...
Maar je kan ook heel makkelijk een 2x of 4x frequentie maken, inverteren, een zaagtand omzetten naar een sinus enz.
Ik ben er nog over aan het nadenken, en intussen een labview programma maken wat de omzetting pleegt, en dit grafisch laat zien.
 
20230903_230342.jpg


Even snel iets in elkaar geflanst zodat je weet wat ik bedoel.
Natuurlijk kan je de DAC overslaan en gewoon de uitgangen van de ADC en/of de EEPROM gebruiken.
 
Dat hangt dan wel af van de grootte van het signaal of die frequentievermenigvuldiging (netjes) lukt. Een zaagtand met de helft van de aangegeven amplitude houdt volgens mij dezelfde frequentie en wordt enkel twee keer zo groot, of weet je daar iets op?
 
Ja, daar weet ik iets op.
Het ingangssignaal gaat eerst door een attenuverter met offset regeling, zodat ik het ingangssignaal kan aanpassen aan wat ik vind dat de ADC nodig heeft.
De ADC helpt me daarbij, want die heeft een overflow indicatie als het ingangssignaal groter is als Vref+
In het geval van een frequentie vermenigvuldiger, vermenigvuldig ik de ingangsspanning met 2 (of 3, 4 enz)
Leuk lijkt het me om te kijken wat ik nog meer voor functies erin kan prutsen en hoe zich dat vertaald met bv een zaagtand, driehoek, sinus e.d. als ingangsspanning.
Dat kan ik al met Labview uitproberen.
Ik heb een paar 64kbyte eeproms, daar zou ik dan 256 verschillende conversies in kwijt kunnenβ€¦πŸ˜±
 
Laatst gewijzigd:
Slim! Ik verwacht trouwens dat de meeste van die 256 opties te willekeurig zijn om een herkenbaar en muzikaal bruikbaar effect op te leveren. Dat maakt het aantal zinnige conversies al wat beter te behappen...
 
Heb je zicht op de capaciteit qua processing? De conversie wil je nu doen met een opzoektabel, begrijp ik? Maar heb je eventueel capaciteit om bewerkingen uit te voeren op enkele 8 bit woorden die binnenkomen?
 
In principe is het een 8bit module, zowel in- als uitgaande signalen.
Het signaalpad is als volgt: De ADC sampled naar 8 bits parallel, die gaan naar een (8 bits breed) geheugen en de data van dat geheugen gaat naar de DAC, dit gebeurt autonoom, komt geen processor aan te pas.
De maximale sample frequentie wordt zo ongeveer bepaald door de ADC die een sampletijd heeft van 2,5uSec, maar door een externe klok te gebruiken kan dat aangepast worden.
De uitgang van de ADC zijn 8bits parallel, die het low byte adres vormen van de eeprom (of RAM, bedacht ik laatst), de hogere bits van het adres worden door de Arduino gegenereerd en daarmee kies je een conversie.
Tijdens samplen en converteren doet de processor niets, pas als een andere conversie gekozen wordt geeft de processor dit aan op een schermpje en veranderd de hogere bits naar het geheugen.
Dan zit het werk van de processor er weer op en de rest gaat autonoom verder.
Ik maak even een demo'tje op YouTube



Ik zie wel bruikbare signalen…
 
Laatst gewijzigd:
Het staat niet stil hoor!
Vandaag de ADC's binnen gekregen van Aliexpress (5 stuks voor 5.63 € incl. verzending) en ben er een beetje mee aan het spelen.
Sampelen binnen 4uSec moet mogelijk zijn (volgens de datasheet 2.5uSec max), de Arduino Nano maakt de sample frequentie als volgt:
void setup() { TCNT1 = 0; TCCR1B = B00001001; // CTC mode, Prescaler =1 TCCR1A = B01000000; // Toggle OC1A on match OCR1A = 32; // Toggle frequency = 4.125uSec pinMode(9, OUTPUT); } void loop() {}
 
Ik heb mijn "voorraad" DAC's nog eens nagelopen, want ik ben niet tevreden met de DAC08, die heeft nl een extra 8bit latch nodig. Tussen mijn DAC's vond ik een AD7524.
Dit is een DAC met een ingebouwde latch, dus dat scheelt weer een 20pins IC.
Ik ga nu eerst de Arduino op een bordje solderen samen met de ADC TLC0820 om naar de golfvormpjes te kijken hoe ik het geheugen kan aansluiten.
Ik heb besloten om geen EEPROM te gebruiken, maar een 32kx8bit RAM CY6225N die ik nog over had van een vorig project.
Dit heeft als voordeel dat ik een aantal conversie blokken van 256 bits via de usb in de Arduino kan opslaan, dan hoef ik niet elke keer de EEPROM uit zijn socket te vrotten.
Heeft wel als nadeel dat er een tweetal 20pins IC extra bijkomen, maar dat gaat wel lukken.
 

Attachments

  • AD7524.pdf
    162,2 KB · Bekeken: 55
  • Infineon-CY62256N_256-Kbit_(32_K_8)_Static_RAM-DataSheet-v11_00-EN.pdf
    534,4 KB · Bekeken: 62
Back
Top