Dat heb ik weer... Het zit zo: ik heb een soort expansiekaart met daarop flash geheugen en een usb chip. Dit wordt gemonteerd in een bestaan systeem en de cpu draait dan de software in de flash. So far so good, dat werkt prima. De software hangt of crasht nooit. Maar in sommige gevallen treden er fouten op bij het lezen van de registers van de usb chip. Niet altijd, maar bij bepaalde combinaties van expansiekaart en systeem.
Na lang zoeken kwam ik er achter dat het te maken heeft met het merk flash geheugen. Vervang ik dat geheugen op een 'slechte' kaart door geheugen van een ander merk, dan is het probleem voorbij.
Klinkt dat bekend en hoe kan dit verklaard worden? Juist de software in de flash draaide altijd probleemloos. Of laat hij bv na een read-actie zijn data te lang op de bus staan waardoor het botst met het lezen van die andere chip? Heeft iemand er een uitleg voor?
Op welke manier zijn het geheugen en de USB-chip met elkaar verbonden? Delen ze een adres/databus? Zitten ze ge-daisy-chained in een SPI bus? I2C misschien? Of zijn ze totaal gescheiden en delen ze alleen dezelfde voedingslijnen?
Ik denk dat je hier meer (inhoudelijke) reacties kunt verwachten als je wat meer informatie geeft. Dus de bovenstaande vragen, typenummers van chips, misschien (het betreffende deel van) een schema, fotootje van de printlayout etc.
Het is een systeem met een klassieke adres-bus en databus. Op de hoofdprint worden deze signalen gebufferd met 74HCT244 en 74HCT245. Op het expansiebordje zit een stukje logica om cs te genereren uit de adreslijnen. De verbinding tussen hoofdprint en expansiekaart is een pcmcia connectie.
Roelken
Succes kent vele vaders, doch falen is immer een weeskind.
Zou het niet eerder de snelheid van het flash-geheugen zijn dat een rol speelt, in plaats van het merk ?
De snelheid (access time) staat achter het typenummer :
Bvb. : AM29F160DB-75 => 75ns access tijd
Deze access tijd bepaalt hoe snel je flash is. Als je daar niet op let en je zet een flash met 90ns in de plaats van eentje van 70ns, dan heb je kans dat het fout gaat. Andersom kan geen kwaad.
maartenbakker
Golden Member
www.elba-elektro.nl | "The mind is a funny thing. Sometimes it needs a good whack on the side of the head to jar things loose."
Als de TS nou even had aangegeven hoe hij tot die conclusie was gekomen dat het van het merk afhangt en niet van het exemplaar of het type, en bovendien de typenummers van de flash-chips even had vermeld, hoefden we nu niet in het duister te tasten en te speculeren. Een probleem is alleen maar vaag als je niet alle factoren netjes voor jezelf en anderen op een rijtje weet te krijgen, dan lijkt dit me een goed begin 
[Bericht gewijzigd door maartenbakker op (23%)]
Roelken
Succes kent vele vaders, doch falen is immer een weeskind.
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Op het expansiebordje zit een stukje logica om cs te genereren uit de adreslijnen.
Kan ook zijn dat deze 'glue logic' te traag is. Heb ik ook wel eens gehad.
Uit de openingsstart maak ik op, dat de flash-chip in geen enkel geval problemen geeft. Alleen de communicatie met de USB-chip loopt in sommige situaties niet goed.
Het lijkt er dus op dat sommige Flash-types de databus nog te lang bezet houden, nadat de CS al is afgevallen.
