[abc80] ABC80 i DE1 version 4
H. Peter Anvin
hpa at zytor.com
Mon Dec 29 15:24:38 PST 2008
juhasz at abc.se wrote:
> Då var det ju inget uppenbart fel i alla fall... Har testat olika
> switchkonf. När sw0 är av så kommer jag förstås bara in i basic. När den
> är på så ser jag diskaccess och så hänger sig allt (samma oavsett
> sw1-positionen). Tror nog mer på att det är något fel med
> sd-kontrollern/sd-kortet än själva data som ligger på kortet (för då borde
> man väl få abort 48 eller liknande...?)
>
> Ska testa lite mer, men har du något bra tips så säg gärna till!
>
Vad jag gjort för att debugga SD-kontrollern har varit att titta på
CPU-adresserna från SD-kontrollerns CPU med SignalTap och sen försökt
lista ut vad det är som egentligen händer.
Odds i ditt fall är att den aldrig tar sig igenom init-sekvensen. Jag
kanske kan göra en specialvariant som ger utslag på LED-erna, men här är
en variant med SignalTap II:
I Quartus II, gå till Tools > SignalTap II Logic Analyzer
Klicka på USB-Blaster 0
Klicka på "Add Nodes"
Välj "Filter: Design Entry"
Sök reda på, och lägg dem på listan:
sdcontroller:sdcontroller|ireset
sdcontroller:sdcontroller|T80se:sd_cpu|M1_n
sdcontroller:sdcontroller|T80se:sd_cpu|A
Välj som klocka:
p1l1:pll1|altpll:altpll_component|_clk1
Sätt Trigger till:
Sequential
Post Trigger Condition
Trigger Conditions: 2
Välj "Data: Sample Depth: 4K" (det största som går utan att det står
"can't fit" under "Instance")
Som Trigger condition 1 välj en nedåtflank på ireset.
Som Trigger condition 2 välj M1_n = 0 och A = 02B9 (adressen för
sd_carderr).
Kompilera, programmera (abc80.sof via JTAG, switch i RUN-läge), starta
SignalTap II och tryck på KEY2 (CPU reset).
Nu borde du få ett diagram av signalerna. Adresserna där SD-kontrollern
varit kan man nu se på A-bussen när M1_n är 0, så det går att se vad det
var som hoppade till sd_carderr.
-hpa
--
H. Peter Anvin, Intel Open Source Technology Center
I work for Intel. I don't speak on their behalf.
More information about the ABC80
mailing list