Typowe przyczyny nadmiernego grzania się układów p

Malo prawdopodobne. Procek przeciez wie, ze czyta, a nie pisze.

Moze on tam zapisuje, a WE/OE zle dekodowane ?

J.

Reply to
J.F.
Loading thread data ...

Nie, Wyraźnie widać CE i OE aktywne gdy D31 walczy... Nie rozumiem co robi procek wtedy myślac że górna połowa danych pusta.

Nie rozumiem też w jaki sposób układy się od tego niszczą permanentnie. To wciąż dla mnie trochę zagadka jest... Zwłaszcza że niektóre płyty mają np. uszkodzenie linii A10 w CPU.

Reply to
Pszemol

Dlaczego miałyby być konflikty na dolnej połowie? Wytłumacz...

Mogę wyciągnąć tą kość, tylko wtedy spodziewam się, że problem zostanie usunięty i nie będę obserwował niczego nadzwyczajnego. W czasie obserwowanych kolizji wystawiany jest CE i OE do kosci flash.

Reply to
Pszemol

Jesli flash i cos innego sa jednoczenie aktywowane ... to to cos innego zapewne nie ma tylko bitow 16..31, tylko 0..31, to i na "dolnym flash" powinien byc konflikt.

Swoja droga - kosci 32 bit to chyba nie masz duzo - moze jedna z RAM koliduje ?

I trzeba bedzie zobaczyc co jeszcze odzywa sie wtedy na magistrali.

J.

Reply to
J.F.

Pisałem wcześniej chyba co jest tam do procka podłączone:

1 sztuka 32-bitowa SDRAM (synchronous-dynamic RAM). 2 sztuki 16-bitowe FLASH (wspólny CE, OE, WE i address bus).

Procek jest błędnie ustawiony aby myślał, że ma tylko jedną kostkę flash, i odczyt 32-bitowego słowa robi na dwa takty: najpierw wystawia "dolny" adres, OE, CE i odczytuje dolną połówkę danych, potem, niezmieniając stanu OE i CE inkrementuje adres i odczytuje górną połówkę danych na liniach D0..D15.

Interesujące jest w tym momencie tylko zachowanie się górnych linii danych, bo zachowanie się dolnych wynika z normalnych cykli odczytów i zapisów 16-bitowych i tam się nie spodziewam kolizji. Prawdę mówiąc na górnej połowie szyny danych też się żadnych kolizji nie spodziewałem :-) Ale to już inna inszość...

No ale na mojej płycie oprócz procesora 208-pinów LPC4088 (Cortex M4) i pamięci SDRAM i tych dwu kostek FLASH nie ma tam niczego innego.

Reply to
Pszemol

I nic wiecej ?

Jestes pewien, ze bez zmiany CE, OE ? Nie ma dwoch impulsow

Dekoder adresow masz zewnetrzny, czy korzystasz z wbudowanego ? Bo zdziwilbym sie, gdyby procesor wystawial cos na D16-31 w czasie czytania na liniach 0-15.

Natomiast przez to ustawienie adresy na zewnetrznej magistrali sie zmienily - to i zewnetrzny dekoder mogl zwariowac.

Tym niemniej sie zobaczy, czy procesor steruje magistrala.

J.

Reply to
J.F.

W dniu 2018-06-20 o 14:17, Pszemol pisze:

Wytłumacz jak to jest zrobione. Skoro OE i CE się nie zmieniają a zmienia się adres o 1 to A0 powinno robić za CE do jednej kości i zanegowane A0 za CE do drugiej.

Ale piszesz, że CE się nie zmienia.

Czy w czasie tego inkrementowania nie ma chwili, kiedy obie kości walczą ze sobą na liniach danych (na przykład w czasie równym czasowi propagacji negatora na linii A0). P.G.

Reply to
Piotr Gałka

Jeśli chodzi o zewnętrzną szynę adresową to nic więcej. Do proca jest oczywiście podłączone mnóstwo innych rzeczy. Jakoś te 208 pinów jest wykorzystane przecież :-)

Nie ma potrzeby dwu impulsów przy czytaniu pamięci flash.

Nie mam zewnętrznego dekodera adresów - konfiguruję procesor pod względem takich rzeczy jak rozmiar stron pamięci SDRAM i rozmiaru bloków pamięci flash. Kostki pamięci są podłączone bezpośrednio do linii adresowych procesora - mają swoje własne CS0 i DYCS0.

:-) Na razie to ja wariuje od ilosci zwrotów gwarancyjnych.

Odłącze CS0 od górnej kostki flash i zobaczę.

Reply to
Pszemol

Jedna kość obsługuje przecież D0..D15, druga obsługuje D16..D31. Nie rozumiem Twojego pytania.

Reply to
Pszemol

Niby nie ma, ale procek z natury moze chciec wystawic dwa impulsy RD. tu RD nie ma, to moze inne ..

dasz rade podlaczyc sie pod te CS i inne linie ? Ja bym obejrzal oscyloskopem/analiatorem czy jednak DRAM nie jest aktywna w czasie czytania flasha.

Albo po prostu skonfiguruj dobrze i moze problem zniknie :-)

J.

Reply to
J.F.

A ja bym się chętnie dowiedział co to za procek i spojrzał w dokumentacje co powinno być.

Zwykle jest tam tez napisane czego się spodziewać w 16 bitowych trybach dostępu.

Adam

Reply to
Adam Górski

W dniu 2018-06-20 o 20:22, Pszemol pisze:

Ale sam pisałeś że jest w trybie 16b i czyta na jednej szynie dwa flasze.

My też nie, może daj kawałek schematu z oscylogramami.

Reply to
Janusz

Użytkownik "Janusz" napisał w wiadomości grup dyskusyjnych:pgfpiq$kht$ snipped-for-privacy@node1.news.atman.pl... W dniu 2018-06-20 o 20:22, Pszemol pisze:

Nie, flashe sa rownolegle i daja 32 bit.

Tyle ze procek skonfigurowany (omylkowo) na 16-bit, wiec slowo czyta na dwa razy.

Oczywiscie w obu cyklach "gorny flash" tez podaje dane, ktore procek powinien ignorowac, ale widac jest tam jeszcze jakis konflikt na magistrali danych. Jak rozumiem - na pewno nie z dolnym flashem, bo ten na innych bitach D polaczony.

Swoja droga - ze to w ogole działa ? Puste te flashe ? Przypadkiem dobrze sie programuja mimo omylki ?

J.

Reply to
J.F.

Podłączam się pod OE i CS0 flasha i widzę że flash jest wybrany do odczytu gdy są te stany konfliktowe. SDRAMu nie oglądałem pod względem DYCS0 ale widzę krótsze cykle odczytu gdy CS0 flasha jest nieaktywny, i wtedy nie ma kolizji więc SDRAM jest odczytywana poprawnie.

Owszem, po skonfigurowaniu cpu aby odczytywał flash w trybie 32-bitowym problem kolizji znika. D31 zaczyna wyglądać wtedy normalnie.

Ja mam jednak problem taki, że płytki wracają uszkodzone na gwarancji a ja nie jestem do końca przekonany że to te kolizje powodują uszkodzenia. Bo sekcje zwłok na płytkach które miały scalaki w miarę sprawne (czyli nie parzyły i nie zwierały 3.3V) zwracały rezultat typu zwarta linia A10 w CPU lub stały poziom

2V na wyjściu jednego pinu SDRAM - innymi słowy nie rozumiem jak walczący flash z cpu na szynach danych może procesorowi uszkodzić linię adresową A10 albo uszkodzić SDRAM które jest niewybrane DYCS0 w czasie tychże kolizji. Innymi słowy znalazłem coś, ale nie wiem czy jak naprawię to coś przełączając flash na poprawne 32-bity to czy problemy znikną.
Reply to
Pszemol

To jest LPC4088 w obudowie 208 pinów... Poszukam jeszcze raz w datasheet ale nie pamiętam abym to widział.

Reply to
Pszemol

Dokładnie tak. CPU omyłkowo czyta dwa razy 16bit z jednego chipa flash zamiast czytać oba na raz na pełnej szynie 32-bit.

Dokładnie tak.

Ten górny jest pusty, bo w czasie programowania CPU też "myśli" że ma jedną kostkę 16 bit, więc nic nie wystawia do zapisu na D16..D31. A więc górny flash podczas odczytu forsuje FFy ale CPU pewnie chce ustawiać 00 bo mam jakieś 1.5V tak na oko :-)

Reply to
Pszemol

Ale ten algorytm programowania nie jest jakis bardziej skomplikowany ? I czy w efekcie nie bedzie zepsuty w takim ukladzie ?

Troche by mnie zdziwilo, gdyby w czasie odczytu dolnych bitow, uP ustawial górne na 0.

A propos - sprawdzales to na nowej plycie ? Moze kostka jakos walnieta ? np nie potrafi 3.3V dac ? I niekoniecznie flash - moze wlasnie RAM ...

J.

Reply to
J.F.

Na pewno w CPU, a nie DRAM lub flash ?

Tez jestem ciekaw.

Tez podejrzewam ze nie. Czas powtorzyc badania EMC/ESD ?

Ale ... jesli jest konflikt, cos tam sie grzeje, moze i rozne rzeczy moga sie w srodku przegrzac. A potem usterka sie moze propagowac - tzn np zwarcie na linii danych w jednej kosci, podgrzeje cos w drugiej kosci i usmazy okolice na krzemie ... choc bylbym chyba ostatnim, ktory by podejrzewal stałe usterki od takiego konfliktu.

No i skad w ogole ten konflikt ...

Moze warto przy okazji sprawdzic ustawienia interfejsu SDRAM.

J.

Reply to
J.F.

No na pewno :) Sam podnosiłem nóżkę procesora...

To akurat jest znane - pierwsza wersja tej płytki miała nieobsadzony "górny" flash i software pracował z jednym flash, 16-bit mode. Potem zrobilismy płytki z dwoma kostkami flash i software został niezmieniony ale nie spodziewalem sie żadnych problemów, oczekując od procesora zgodną współpracę :) przeliczyłem się :)

Reply to
Pszemol

Algorytm programowania wymaga przełączenie kostki z trybu odczyt w tryb programowania więc górna kostka nic nie wie na ten temat gdy nie widzi takich sekwencji adresów i danych. Do programowania tych kostek w trybie 32bity napisałem specjalną wersję programu który się nie uruchomił w trybie 16-bit. Efekt jest taki ze dolna kostka zaprogramowana poprawnie a górna pusta.

Mnie też.

Sprawdzałem na płycie która nie miała żadnych objawów niedziałania.

Reply to
Pszemol

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.