Buggfix Plus
Aktuellt datum och tid: 10.16 2017-11-24

Alla tidsangivelser är UTC + 1 timme




Svara på tråd  [ 117 inlägg ]  Gå till sida Föregående  1 ... 4, 5, 6, 7, 8  Nästa
Författare Meddelande
InläggPostat: 20.40 2017-08-11 
Användarvisningsbild

Blev medlem: 21.41 2010-10-29
Inlägg: 1367
https://www.idt.com/products/memory-log ... ncfifo-50v


Upp
 Profil  
 
InläggPostat: 20.43 2017-08-11 
EF Sponsor
Användarvisningsbild

Blev medlem: 21.41 2012-12-13
Inlägg: 7215
Ort: Göteborg
Jag tror jag ska göra om minneshanteringen lite för det retar mig att minnesmappen är splittrad.

Jag nyttjar ju just nu BCD-räknare (HC190, som jag dock har) och de går bara till 10, så att säga.

Kan vara bättre att nyttja HC191 som är en laddningsbar upp/ner binärräknare istället.

Då sätter man alltså dom i nedräkningsmod, slänger på ett gäng inverterare på utgångarna, resetar/laddar med ettor och får dom att räkna upp samtidigt som det inte blir några glipor i minnesadresserna.

Fast lite glipor kommer det att bli ändå för bara 100 av 256 adresser används per byte men alla låga adresser kommer innehålla data.

Jag vet inte för svepräknaren kommer att ligga högre upp i adressarean samtidigt som chop-räknaren kommer ligga ännu högre dvs ena kanalen på låga adresser, andra på höga (<b12).

Men att fylla minnet med adressdekader av data (BCD) kommer att göra det knöligt att extrahera data, samtidigt vet jag inte hur jag kommer bygga läsaren, hade tänkt stega igenom hela minnet (32k) men det blir ganska mycket data på skärmen samtidigt som jag skulle kunna begränsa igenomstegandet till dom 8k jag faktiskt använder fast då blir det bara i detta fallet.

På sikt vill jag kunna stega igenom hela minnen för jag har tänkt använda samma princip för min kommande FPGA-CPU.

Så problemet har mest att göra med hur jag skall ta hand om och presentera datat.

Drömmen vore att första adressen stod längst till vänster på skärmen, sen en hel rad med data (inom en skärmbredd, t.ex) varvid nästa rad talar om första dressen för den raden, kanske man kunde dela upp det så att man t.ex har 8 byte med data per rad?

Sen måste man nog skapa nåt slags macro för att läsa ut de data man skapat.

Jag bara spånar här men i grund och botten vill jag ju kunna testa det här.

MVH/Roger


Upp
 Profil  
 
InläggPostat: 21.07 2017-08-11 
EF Sponsor
Användarvisningsbild

Blev medlem: 21.41 2012-12-13
Inlägg: 7215
Ort: Göteborg
YD1150 skrev:
https://www.idt.com/products/memory-logic/fifo-products/asynchronous-fifos/7202-1k-x-9-asyncfifo-50v

Intressant YD1150, tack för länken!

Jag fattar dock inte så mycket trots att jag läste igenom hela databladet.

Preliminärt har jag dock en adressbuss på 13 bitar men man kan tydligen koppla ihop FIFO för större bredd (än 10 bitar).

MVH/Roger


Upp
 Profil  
 
InläggPostat: 13.55 2017-08-12 
Användarvisningsbild

Blev medlem: 21.41 2010-10-29
Inlägg: 1367
Adressräknaren är inbyggd! Bara reset och klockpuls. (Samt några extra pinnar)
Först en Reset av FIFO:t.
Skicka in 8/9 bit data och ge en klockpuls så lagras det i minnet och adressräknare/pekare räknas upp, finns inbyggt i IC:n.
Så håller det på tills minnet är fullt, finns utsignal för det. Minnet fullt, stopp och belägg!! Kan inte ta emot mer.
Sen kan du ge en reset till "Read-pekare" och med hjälp av "Read"-klockpulserna plocka ut data i den takt du vill.
Sampla A/D med 40MHz och lagra i FIFO och plocka sedan ut data med låga 1Hz eller 1MHz eller annan valfri frekvens.
Går ju samla in 40MHz data med RS-232 till datorn på så vis.

Bara ett förslag :)


Upp
 Profil  
 
InläggPostat: 16.21 2017-08-12 
EF Sponsor
Användarvisningsbild

Blev medlem: 21.41 2012-12-13
Inlägg: 7215
Ort: Göteborg
Idag har jag tänkt mer på ditt fantastiska förslag.

För det första, jag vill bara ha ett minne.

För det andra, den ska helst vara av typen RAM för då blir läsaren enkel samtidigt som jag måste ha en RAM-läsare i samband med min kommande CPU.

Jag har caddat en minnesläsare/programmerare i Eagle och med hjälp av UNO, nu är det inte säkert det blir så för jag känner att jag mest vill läsa (batteriuppbackat) RAM vilket gör enheten enklare MEN det finns egentligen inga hinder för att lägga till en FIFO-läsare också.

Fördelen med FIFO har jag idag kommit på är att dels behövs ingen extern adressering, dels hamnar samplerna konsekutivt och varje intern adress har då data samtidigt som ett minimum med adresser nyttjas, FIFO blir alltså maximalt kompakt att läsa och utan luckor i minnesarean.

Nu är det dock såhär att jag som sagt envisas med att bara använda ett minne, detta får till följd att samplerna från respektive kanal kommer ligga omlott i FIFO ty jag vill ha 100 sampel per kanal samtidigt som jag inte vill fördröja 10Tsw med mer än 100, dvs jag kommer sampla två gånger per klockperiod vilket samtidigt ger en stark korrelation med tidbasen.

Detta känns bra för att just nu så är minnesarean kaotisk, värdena finns där men är alltså kraftigt utspridda vilket gör minnet svårt att läsa, jag kan bättra på det här genom att köra binärräknare med inverterare där de laddas med 9:or och räknas nedåt istället, då tror jag att jag får 100 sampel där samplerna ligger konsekutivt fast i var sin area, jag envisas också med att nyttja en "varvräkanare" som alltså ser till att samplingen av kanalerna görs 10ggr, i fallet XY/transistortestare så kommer X-svepet generera 10 likadana sampel-serier medan Y-svepet kommer generera 10 olika sampel-serier (ty Ib/Ug stegas för varje svep).

Jag kommer börja med att "uppgradera" mina ritningar med det här sen skall jag allvarligt överväga FIFO.

MVH/Roger
PS
På bussen idag kom jag sen på att jag inte kan nyttja Johnson-räknare (HC4017) som 10-delare, detta för att fs måste vara tidsmässigt symmetrisk om jag skall ha en chans med chopper-sampling, en Johnson-räknare ger visserligen en delning av frekvensen med en faktor 10 MEN signalen ut är kraftigt asymmetrisk dvs pulsen ut är tidsmässigt inte längre är klockan in samtidigt som en binärräknare (eller BCD-räknare ty jämt antal tillstånd) alltid har symmetrisk signal ut och min samplingsmetod kräver symmetrisk fs.

Ett litet problem med FIFO är som sagt att samplerna kommer hamna omlott, samtidigt minimeras dock mängden läsningar.


Upp
 Profil  
 
InläggPostat: 20.24 2017-08-12 
EF Sponsor
Användarvisningsbild

Blev medlem: 21.41 2012-12-13
Inlägg: 7215
Ort: Göteborg
Laddar åter igen upp dom mest aktuella schemana så att jag får lite koll.

MVH/Roger


Logga in för att visa de filer som bifogats till detta inlägg.


Upp
 Profil  
 
InläggPostat: 15.52 2017-08-13 
EF Sponsor
Användarvisningsbild

Blev medlem: 21.41 2012-12-13
Inlägg: 7215
Ort: Göteborg
Hittar nu dom här:

IDT7202 1k FIFO 12ns DIL28S 71:- : http://eu.mouser.com/ProductDetail/IDT/ ... 252bBbs%3d
IDT71256 32k RAM 12ns DIL28S 27:- : http://eu.mouser.com/ProductDetail/IDT/ ... Cx2AlB0%3d

Jag kommer köpa fem av varje, RAM:et har jag sen förut fem av men de är "bara" på 20ns och jag älskar snabba grejer :)

MVH/Roger
PS
Det står ingenstans i databladet för FIFO men det är nog ganska självklart att detta är ett flyktigt minne, dvs om jag vill flytta det fysiskt från skåpet till en läsare för dator så måste det batteriuppbackas.


Upp
 Profil  
 
InläggPostat: 17.16 2017-08-13 
EF Sponsor
Användarvisningsbild

Blev medlem: 21.41 2012-12-13
Inlägg: 7215
Ort: Göteborg
Lägger till hur man eventuellt kan få det att fungera med YD1150's tacksamma tips om att nyttja FIFO-minne istället, blir onekligen lite enklare och smidigare, enda nackdelen är att jag måste bygga mig en minnes-läsare till.

Annars tycker jag det här känns bra, skulle bara vilja testa det på nåt sätt och då måste jag nog bygga mig den där minnes-läsaren i det här projektet också, eventuellt kommer den kunna läsa RAM, läsa FIFO och läsa/programmera EPROM också för jag har redan en Eagle-konstruktion mha UNO på det men FIFO finns inte med där samtidigt är den benmässigt rätt flexibel, får kolla upp det.

MVH/Roger


Logga in för att visa de filer som bifogats till detta inlägg.


Upp
 Profil  
 
InläggPostat: 15.53 2017-08-14 
EF Sponsor
Användarvisningsbild

Blev medlem: 21.41 2012-12-13
Inlägg: 7215
Ort: Göteborg
Om man ska spåna på en FIFO-läsare är min tanke såhär.

Man nyttjar en RS232-krets och en dito USB-adapter (för min laptop har ingen serieport), sen är det ju baud som gäller och en vanlig baud/symbolhastighet är 9600 där symbolen väl är på 8 bitar dvs bit-hastigheten blir 8X9600=76,8kb/s?

Symbolen är väl dock ASCII så om jag skickar ren binärdata seriellt så kommer jag få en massa tecken på skärmen, dvs inte hexkod som jag hade velat men som ni hör förstår jag inte det här, kanske det går att ställa in datorn dvs typ Hyperterminalen till att presentera datat i hexkod-format (och inte i ASCII-format)?

RS232 är väldigt intressant ty det är ett asynkront protokoll och för tvåvägskommunikation krävs faktisk bara tre signaler dvs Rx, Tx och GND, resten ordnar sig bara baud är samma.

I normala fall används en UART för att hantera dataströmmen men jag tänker mig att RS232 bara ska få signaler (TTL) in på Tx varvid utgången hos RS232 pendlar +/-12V som sen USB-adaptern tar hand om.

Så jag behöver alltså bara "streama" datat med rätt baud.

Minnet läses av en enda read-puls (/READ) per byte.

Minnet http://eu.mouser.com/ProductDetail/IDT/ ... 252bBbs%3d har parallell dataport på hela 9 bitar (för paritetstjafs), dessa byte måste föras över i ett PISO-skiftregister (har numera 24st av HC166 :D ) innan de kan skiftas ut med 76,8kHz (total klocka).

Tiden för en /READ(FIFO)+/LOAD(PISO)+/SHIFT(PISO, 1bit)+Tx(RS232)=1/76,8kHz.

FIFO kan bara läsas 9,6kHz, det är symbolhastigheten (bestämmer vi).

Ut ur PISO skall det då spruta 76,8kHz och det skiljer som sagt en faktor 8.

Här tänker jag mig en klocka på 76,8kHz som delas ner med en modulo8-räknare (3 pinnar på en binärräknare), då kan man köra in klockan på PISO (och modulo8-räknaren) och för varje varv modulo8-räknaren gör så har det ju räknats och skickats en byte så på dess (avkodade) carry-out kan den ledande flanken få ge hasard som styr /READ (för nya data) och den följande flanken kan få ge en hasard som styr /LOAD vet dock inte riktigt hur synkront det där blir men tidsavståndet blir 1/76,8kHz.

Vad tror Ni om det här?

MVH/Roger


Upp
 Profil  
 
InläggPostat: 18.02 2017-08-14 
Användarvisningsbild

Blev medlem: 21.41 2010-10-29
Inlägg: 1367
Du borde dra nytta av microcontrollers, en PIC klarar galant av att översätta till ASCII-hex och skicka det via serieporten.

Göra parallell till serieomvandling med en MUX, 10 ingångar och en ut.
Första och sista biten får utgöra start (dras +5V) och stoppbit (dras till GND), resten däremellan utgör 8-bit data.
Sedan en räknare 0-9 som styr MUX:en med rätt hastighet. :wink:


Upp
 Profil  
 
InläggPostat: 19.58 2017-08-14 
EF Sponsor
Användarvisningsbild

Blev medlem: 21.41 2012-12-13
Inlägg: 7215
Ort: Göteborg
Intressant, men jag har hittat en annan lösning som jag faktiskt tror på.

Kan dock eventuellt bli problem med synkronismen, eller vad säger du?

Skapar först en "analog" bit-klocka, denna klocka går direkt till PISO-skiftregistret (Parallell In Serial Out) sen ligger en byte-räknare (8 bitar) i serie med denna klocka varvid bit-klockan delas med 8 och när 8 är nådd hos byte-räknaren så läses nästa byte (/Read) ut på bussen hos FIFO (First In First Out) och strax därefter laddas aktuell byte i PISO för att med bit-klockan klockas ut seriellt till RS232.

Jag hade stora problem med hur jag skulle kunna börja med att läsa FIFO för att sedan fördröja nästa läsning med 8 cykler, lösningen blev lika enkel som galant dvs jag la helt enkelt in en extra POR (Power On Reset) som gör att FIFO börjar med att läsas redan innan bit-klockan har startat, på det sättet finns data redan innan bit-klockan har börjat och synkronismen med åtta seriella bitar per läsning bibehålls.

MVH/Roger


Logga in för att visa de filer som bifogats till detta inlägg.


Upp
 Profil  
 
InläggPostat: 18.34 2017-08-15 
EF Sponsor
Användarvisningsbild

Blev medlem: 21.41 2012-12-13
Inlägg: 7215
Ort: Göteborg
Vad tror Ni, kan detta funka?

Jag har varit tvungen att ändra lite för bl.a visade det sig att PISO hade synkron laddning.

Jag är ganska säker på synkronismen nu, känns bara lite småmeckigt att testa.

Apropå synkronismen så räcker egentligen den nedersta fullkomliga avkodningen men jag tycker den övre funkar bra också, jag tycker att det är intressant att den övre avkodaren avkodar symmetriskt map d-c medans den nedre inte gör det samtidigt som dom får samma funktion med skillnaden att den nedre kan nyttjas synkront medans den (enklare) övre behöver nyttjas asynkront/hasardmässigt för att kunna bibehålla 8 klockpuser (8/fb).

MVH/Roger


Logga in för att visa de filer som bifogats till detta inlägg.


Upp
 Profil  
 
InläggPostat: 19.03 2017-08-15 
EF Sponsor

Blev medlem: 12.12 2006-10-23
Inlägg: 842
Ort: Tyresö
Gå tillbaka till vad jag skrivit tidigare i någon av dina trådar angående bps och baud. I ditt fall är bps och baud samma, dvs 1 bps=1 baud. Du har alltså 9600 bps i din kommunikation.

Exempel på när bps och baud skiljer sig åt är mellan två modem, då flera bits överförs per baud.

/Ingvar


Upp
 Profil  
 
InläggPostat: 22.45 2017-08-15 
EF Sponsor
Användarvisningsbild

Blev medlem: 21.41 2012-12-13
Inlägg: 7215
Ort: Göteborg
Det är lite lurigt det här tycker jag men för mig är baud symbolhastigheten och beroende på hur många bitar en symbol har så blir bps olika, jag tycker således inte bps=baud utan i mitt fall är bps=8Xbaud eftersom jag har 8 bitar per symbol (ASCII, preliminärt som jag tror är upplöst i 8 bitar).

Men jag kan ha fel i det här.

Tack för ditt inlägg!

MVH/Roger


Upp
 Profil  
 
InläggPostat: 18.50 2017-08-16 
EF Sponsor
Användarvisningsbild

Blev medlem: 21.41 2012-12-13
Inlägg: 7215
Ort: Göteborg
Ännu ett uppsamlingsheat:

MVH/Roger
PS
Försökt lägga upp ritningarna i kronologisk ordning men misslyckats något. Ser att det finns "dubletter" av vissa saker, dessa skall bort.


Logga in för att visa de filer som bifogats till detta inlägg.


Upp
 Profil  
 
Visa inlägg nyare än:  Sortera efter  
Svara på tråd  [ 117 inlägg ]  Gå till sida Föregående  1 ... 4, 5, 6, 7, 8  Nästa

Alla tidsangivelser är UTC + 1 timme


Vilka är online

Användare som besöker denna kategori: cjonash, Electricguy och 10 gäster


Du kan inte skapa nya trådar i denna kategori
Du kan inte svara på trådar i denna kategori
Du kan inte redigera dina inlägg i denna kategori
Du kan inte ta bort dina inlägg i denna kategori
Du kan inte bifoga filer i denna kategori

Sök efter:
Hoppa till:  
   
Drivs av phpBB® Forum Software © phpBB Group
Swedish translation by Peetra & phpBB Sweden © 2006-2010