Sida 2 av 3
Postat: 20 januari 2005, 00:46:52
av cyr
Hade tänkt att den skulle kunna klara sig utan extern ström om det finns att ta från kretsen, men även ha möjlighet att ta 5V från en USB-kontakt eller så.
De som jag främst tänkt "emulera" är:
Xilinx parallel cable III
Altera Byteblaster MV
"Wiggler" JTAG
AVR ISP
Ponyprog easy-I2C
PIC modell Henk Schaer
PIC modell David Tait
PIC modell någon mer kanske...
Ponyprog är en kandidat också.
JDM vet jag inte, är tveksam till att blanda in serieporten alls.
Postat: 20 januari 2005, 15:11:47
av Michel
Har för mig att jag har sett ett opensource-projekt som gjorde denna 'multitool' på 'drivrutins nivå'.
Typ - att man använde en hårdvara och via en lågnivå-drivrutin styrde om kommunikationen ifrån programmen.
...om jag bara kunde komma på var jag hade länken...
--
Flera förslag:
Atmel 8051 ISP (89C8252)
Texas MSP340
Postat: 25 januari 2005, 19:03:13
av cyr
Jag har börjat snickra på denna "multitool", som ni kan se:
Inte riktigt funktionsduglig ännu, men iaf...
Och tillhörande verilog-kod:
Kod: Markera allt
module multi(con_clk,con_din,con_dout,con_prog,con_aux1,con_aux2,mode,pp_d,
pp_strobe,pp_ack,pp_busy,pp_pe,pp_sel,pp_error,pp_autofd,
pp_init,pp_selin,dummy);
inout con_clk,con_din,con_dout,con_prog,con_aux1,con_aux2;
input [3:0] mode;
input [7:0] pp_d;
input pp_strobe,pp_autofd,pp_init,pp_selin;
output reg pp_ack,pp_busy,pp_pe,pp_sel,pp_error;
reg con_clk_,con_din_,con_dout_,con_prog_,con_aux1_,con_aux2_;
assign con_clk = con_clk_;
assign con_din = con_din_;
assign con_dout = con_dout_;
assign con_prog = con_prog_;
assign con_aux1 = con_aux1_;
assign con_aux2 = con_aux2_;
parameter XILINX = 4'h1; // Xilinx parallel cable III
always@(*)
begin
case(mode)
XILINX:
begin
con_aux1_ <= 1'bz;
con_aux2_ <= 1'bz;
if(pp_d[3] == 1'b0) // CTRL
begin
con_dout_ <= pp_d[0];
con_clk_ <= pp_d[1];
con_prog_ <= pp_d[2];
end
else
begin
con_dout_ <= 1'bz;
con_clk_ <= 1'bz;
con_prog_ <= 1'bz;
end
if(pp_d[4] == 1'b0)
con_din_ <= 1'b0;
else
con_din_ <= 1'bz;
pp_error <= 1'b1; // VCC_SENSE
pp_sel <= con_din;
pp_pe <= pp_d[6]; // loopbacks
pp_busy <= pp_d[6];
end
default:
begin
con_clk_ <= 1'bz;
con_din_ <= 1'bz;
con_dout_ <= 1'bz;
con_prog_ <= 1'bz;
con_aux1_ <= 1'bz;
con_aux2_ <= 1'bz;
pp_ack <= 1'bz;
pp_busy <= 1'bz;
pp_pe <= 1'bz;
pp_sel <= 1'bz;
pp_error <= 1'bz;
end
endcase
end
endmodule
En ny del i case-satsen är allt som behövs för att implementera en ny sorts programmerare (samt kanske bygga någon sorts sladd/adapter för att kunna koppla in den).
Så småningom kommer den att ha lite fler signaler, förutom 6st IO kommer det att vara pullups (som kan slås på vid behov) samt en styrbar VCC och en styrbar VPP (= MCLR för PIC).
Iaf är det så planen ser ut just nu. Tror det räcker för att kommunicera med det mesta... möjligtvis kan man ha en pull-down istället för up på någon av IO-ledningarna (såg att MSP430 hade det).
Postat: 25 januari 2005, 19:15:57
av strombom
Du har kopplat direkt utan att göra schema först eller?
Jag är nämligen sugen på att bygga en likadan... Vill gärna fixa ett pcb i så fall. Vad är det för XILINX-krets du kör med, jag har XC9572XL hemma...
Jag förstår iofs varför du kör på experimentplatta, det är lite jobbigt att implementera alla programmerarna på en gång
Edit: hehe nu såg jag på bilden att du hade XL9572, du har ingen att sälja? Jag kan ju inte köra med 3.3V varianten och elfa tar 250kr de galningarna
/Johan
Postat: 25 januari 2005, 19:24:14
av cyr
Det är en XC9572-PC44 jag har nu, men det blir en 64-pinnars 9572XL sen tror jag. Det är inte riktigt tillräckligt med IO på denna för att styra pullups och sånt.
Ska testa lite med denna på experimentkort innan jag börjar göra nån layout, men sen blir det ytmonterat och tillräckligt litet för att få plats direkt i d-sub kåpan hade jag tänkt.
edit: 3.3V går fint för det mesta, har tänkt att låta pullupsen ta hand om 5V när det behövs. XL har ju 5V-toleranta ingångar så det är inga problem.
Postat: 25 januari 2005, 19:26:21
av strombom
Varför ska du köra med XL ?
/Johan
Postat: 25 januari 2005, 19:28:56
av cyr
För att de vanliga gamla 5V är dyrare och drar mer ström...
edit: och jag vill ju kunna programmera saker som går på 3.3 utan att behövs koppla in någon extra strömförsörjning.
Postat: 25 januari 2005, 19:58:17
av strombom
Postat: 25 januari 2005, 20:00:44
av Hedis
Snyggt.
Du hade som mål att kunna köra AVR med den oxå va?
Vilken programmerare skall den emulera? STK500´n hade ju vart grymmt om den klarade. "koden" för den finns vell på nätet.
Men det kanske blir för jobbigt att få in den i Xilinx´n?
Postat: 25 januari 2005, 20:27:36
av cyr
strombom skrev:Ok jag tänkte tvärt om att de flesta 3.3V kretsar tål 5V på logikingångarna men var not inte så smart tänkt
Njae, det är långt ifrån alla. De flesta 5V brukar däremot vara TTL-nivåer på, och det är kompatibelt med 3.3V på ingångarna. PIC verkar vara kräsen, och kanske andra också, men det fixar sig nog bra med pullups.
Ritningar som jag kollat på är:
http://193.11.236.26:1234/projekt/uploa ... x_jtag.pdf
http://193.11.236.26:1234/projekt/uploa ... ter_MV.png
http://193.11.236.26:1234/projekt/uploa ... iggler.png
http://193.11.236.26:1234/projekt/uploa ... og_i2c.gif
Samt:
http://www.lancos.com/e2p/avrisp-stk200.gif
Och:
http://www.olimex.com/dev/images/msp430-jtag-d-sch.gif
Och så de två klassiska PIC-varianterna:
http://pramode.net/pic/pp.png
http://www.ic-prog.com/hschaer.htm
När det gäller AVR är jag inte så insatt i vad som funkar till vad. Det enda jag använt ovanstående avrisp till är att programmera SPI-minnen med ponyprog.
EDIT:
Har nu lyckats få den att "programmera sig själv", jag fick sätta dit några byglar för att koppla om några av pinnarna på parporten till JTAG-pinnarna på CPLDn istället för IO-pinnar. Kanske kan fixa det med lite trixiga motstånd och någon transistor sedan så man t.ex. bara behöver sätta DIP-switchen på 0000 för att uppdatera "firmware".
Postat: 26 januari 2005, 01:45:38
av strombom
Skulle inte skada med AT89ISP kabeln:
http://www.atmel.com/dyn/resources/prod ... p_C_v5.PDF
Edit: smidigt att programmera om sig själv
/Johan
Postat: 26 januari 2005, 01:57:39
av cyr
Den ser väl ut att kunna fixas rätt så enkelt, utom voltage detect. Används det till något viktigt?
Postat: 26 januari 2005, 16:43:40
av Michel
Om det här nu funkar...
Vad ska man då göra med Xilinx PCIII (1000:-

), Altera BBMV (hemmabyggd) och MSP430-Jtag (250:-) kablarna man har?

Postat: 26 januari 2005, 21:44:36
av cyr
Nu har jag lagt in beskrivningar av Xilinx, Altera, AT89ISP och AVRISP (STK2/300) i CPLDn.
Xilinx Impact känner igen den som en Xilinx-kabel, Altera Quartus känner igen den som en Altera-kabel och Ponyprog känner igen den som AVRISP (förutsatt att DIP-switchen är korrekt ställd förstås).
Nu behöver jag fixa en anslutningskabel så jag kan testa att verkligen programmera saker med den...
Postat: 27 januari 2005, 11:36:03
av Michel