Allt-i-ett download-kabel

Planering och tankar kring eventuella framtida projekt.
cyr
Inlägg: 2712
Blev medlem: 27 maj 2003, 16:02:39
Ort: linköping
Kontakt:

Inlägg 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.
Michel
Inlägg: 436
Blev medlem: 3 februari 2004, 18:08:04
Ort: Stockholm

Inlägg 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
cyr
Inlägg: 2712
Blev medlem: 27 maj 2003, 16:02:39
Ort: linköping
Kontakt:

Inlägg av cyr »

Jag har börjat snickra på denna "multitool", som ni kan se:

Bild

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).
Användarvisningsbild
strombom
Inlägg: 3305
Blev medlem: 27 maj 2003, 10:50:20
Ort: Västra Götaland
Kontakt:

Inlägg 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 :shock:

/Johan
cyr
Inlägg: 2712
Blev medlem: 27 maj 2003, 16:02:39
Ort: linköping
Kontakt:

Inlägg 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.
Senast redigerad av cyr 25 januari 2005, 19:27:46, redigerad totalt 1 gång.
Användarvisningsbild
strombom
Inlägg: 3305
Blev medlem: 27 maj 2003, 10:50:20
Ort: Västra Götaland
Kontakt:

Inlägg av strombom »

Varför ska du köra med XL ?

/Johan
cyr
Inlägg: 2712
Blev medlem: 27 maj 2003, 16:02:39
Ort: linköping
Kontakt:

Inlägg 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.
Användarvisningsbild
strombom
Inlägg: 3305
Blev medlem: 27 maj 2003, 10:50:20
Ort: Västra Götaland
Kontakt:

Inlägg av strombom »

Senast redigerad av strombom 25 januari 2005, 20:41:35, redigerad totalt 1 gång.
Användarvisningsbild
Hedis
Inlägg: 2493
Blev medlem: 8 december 2003, 15:10:44
Ort: Vänersborg
Kontakt:

Inlägg 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?
cyr
Inlägg: 2712
Blev medlem: 27 maj 2003, 16:02:39
Ort: linköping
Kontakt:

Inlägg 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 :oops:


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".
Användarvisningsbild
strombom
Inlägg: 3305
Blev medlem: 27 maj 2003, 10:50:20
Ort: Västra Götaland
Kontakt:

Inlägg 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
cyr
Inlägg: 2712
Blev medlem: 27 maj 2003, 16:02:39
Ort: linköping
Kontakt:

Inlägg av cyr »

Den ser väl ut att kunna fixas rätt så enkelt, utom voltage detect. Används det till något viktigt?
Michel
Inlägg: 436
Blev medlem: 3 februari 2004, 18:08:04
Ort: Stockholm

Inlägg av Michel »

Om det här nu funkar...

Vad ska man då göra med Xilinx PCIII (1000:- :evil: ), Altera BBMV (hemmabyggd) och MSP430-Jtag (250:-) kablarna man har? :D
cyr
Inlägg: 2712
Blev medlem: 27 maj 2003, 16:02:39
Ort: linköping
Kontakt:

Inlägg 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...
Michel
Inlägg: 436
Blev medlem: 3 februari 2004, 18:08:04
Ort: Stockholm

Inlägg av Michel »

:bravo:
Skriv svar