SN7407, för låg output
SN7407, för låg output
Hej igen, designade om min TTL-programmerare från scratch igen, insåg att den var onödigt komplicerad och ställde till med för mycket besvär medan jag skrev styrprogrammet.
Skrotade även iden med eget styrprogram, och satsar på att skriva en plugin till WinPic istället, Hade gärna gjort det till IC-Prog, men var väldigt bristfällig dokumentation, så fick bli WinPic istället, status där är jag kommit ganska långt, behöver bara ändra logiken nu för att passa min nya programmerare.
Till problemet; kretsen i sig är ganska enkel, Datasignal från max232 går på TX till en 74HC164, DTR går till klocksignalen. RTS sätter LE på en 74HC573 och sparar datan som ligger på skiftregistret. om DTR, RTS och TX alla 3 är höga resettas skiftregistret och 573:an lägger bara ut 0 på alla utgångar. Detta funkar som det ska.
Utgångarna från 74HC573 går till en SN7404, vet att man helst inte ska blanda familjer, men har ingen annan krets med open Collector liggande (behöver den för att kunna köra data bi-directional), på varje utgång sitter ett 10k motstånd till VDD, Sedan kopplas de vidare till varsin lysdiod med 270 ohm motstånd på. Problemet är att de lyser väldigt svagt, och mäter jag på utgången på 7407 så visar den ca. 1.8 v. Kopplar jag dioderna på utgången från 573 lyser de som de ska och 5,06v.
Har jag missat något i hur open collector funkar? Något annat nybörjarmisstag jag gjort?
Tacksam för svar
edit:
utan belastning visar mätningen +4.98 v
Mvh
Fredrik
Skrotade även iden med eget styrprogram, och satsar på att skriva en plugin till WinPic istället, Hade gärna gjort det till IC-Prog, men var väldigt bristfällig dokumentation, så fick bli WinPic istället, status där är jag kommit ganska långt, behöver bara ändra logiken nu för att passa min nya programmerare.
Till problemet; kretsen i sig är ganska enkel, Datasignal från max232 går på TX till en 74HC164, DTR går till klocksignalen. RTS sätter LE på en 74HC573 och sparar datan som ligger på skiftregistret. om DTR, RTS och TX alla 3 är höga resettas skiftregistret och 573:an lägger bara ut 0 på alla utgångar. Detta funkar som det ska.
Utgångarna från 74HC573 går till en SN7404, vet att man helst inte ska blanda familjer, men har ingen annan krets med open Collector liggande (behöver den för att kunna köra data bi-directional), på varje utgång sitter ett 10k motstånd till VDD, Sedan kopplas de vidare till varsin lysdiod med 270 ohm motstånd på. Problemet är att de lyser väldigt svagt, och mäter jag på utgången på 7407 så visar den ca. 1.8 v. Kopplar jag dioderna på utgången från 573 lyser de som de ska och 5,06v.
Har jag missat något i hur open collector funkar? Något annat nybörjarmisstag jag gjort?
Tacksam för svar
edit:
utan belastning visar mätningen +4.98 v
Mvh
Fredrik
Re: SN7407, för låg output
Schema:
http://postimage.org/image/t2gcif8qz/full/
Edit:
motstånden är kopplade till VDD, glömde den på schemat.
http://postimage.org/image/t2gcif8qz/full/
Edit:
motstånden är kopplade till VDD, glömde den på schemat.
Re: SN7407, för låg output
Om 7404 alltså är OC (open collector) så finns det inget annat
än dina 10k motstånd som kan driva LED'sen. Det ger nog
ett ganska svagt sken, ja.
Ett förslag är att vända på LED'sen och lägga dom till 5V istället.
Då kommer de att lysa bra då 7404'aorna *aktivt* driver "lågt".
Du kan sannolikt öka på 270R en del, 560R eller så. Beror på
hur starkt du *måste* ha dom att lysa...
än dina 10k motstånd som kan driva LED'sen. Det ger nog
ett ganska svagt sken, ja.
Ett förslag är att vända på LED'sen och lägga dom till 5V istället.
Då kommer de att lysa bra då 7404'aorna *aktivt* driver "lågt".
Du kan sannolikt öka på 270R en del, 560R eller så. Beror på
hur starkt du *måste* ha dom att lysa...
Re: SN7407, för låg output
Tack Sodjan, Ska testa att vända dem, de behöver egentligen inte lysa speciellt mycket, använder dem nu under utvecklingsfasen för att kunna se hur mina signaler från mitt program ser ut, kommer sitta en pic där senare istället.
Re: SN7407, för låg output
OC betyder just Open Collector, vilket betyder att du skall koppla lasten mellan utgången och Vcc, Nu var jag snäll 
Re: SN7407, för låg output
Tror det
De ger alltså inte ut någon ström när det ligger en 1:a på ingången, utan kan istället bara dra ner en linje till 0 när den är låg.
Såg dem användas i diverse olika pic-programmerare, kanske mest för att att interfacea 12v, men även för att få databussen bidirectional, så tänkte att det var ett bra val till min design också för att lösa just data-problemet. Osäker dock på exakt hur det funkar, så ska googla någon timme och få lite bättre insikt i detta.
Återigen stort tack!
De ger alltså inte ut någon ström när det ligger en 1:a på ingången, utan kan istället bara dra ner en linje till 0 när den är låg.
Såg dem användas i diverse olika pic-programmerare, kanske mest för att att interfacea 12v, men även för att få databussen bidirectional, så tänkte att det var ett bra val till min design också för att lösa just data-problemet. Osäker dock på exakt hur det funkar, så ska googla någon timme och få lite bättre insikt i detta.
Återigen stort tack!
Re: SN7407, för låg output
Annars borde vilken grundläggande bok i digitalteknik som helst ta upp öppenkollektor, CMOS och fan-out som är ganska väsentligt att känna till om man håller på med digitala kopplingar. På en timme hinner man läsa många sidor istället för att söka på nätet. Bara ett tips.
Re: SN7407, för låg output
Lite uppdatering på vad som hänt sen igår, läste på lite om OC och har nu lite bättre koll på det, gjorde även några experiment på breadboard för att mäta lite och se allt i praktiken. Tack för er hjälp. 
när det gäller programmeraren, Satte jag VDD-signalen på en npn-transistor för att driva picen, även MCLR på transistor (dock behövs det egentligen inte för LVP, men för att ha lite "expansionsstöd" gjorde jag det ändå.
Min WinPic-plugin funkar, kan styra signalerna ut, dock verkar inte picen gå i program/verify mode av någon anledning. Enligt Databladet till 628a ska det vara VDD, RB4 sen MCLR, har därför satt VDD och sen efter ett par ms RB4 på VPP=on i koden, och MCLR på VDD-on. loggat ordningen, men verkar ändå inte riktigt hoppa igång. ska testa med en annan pic ifall jag lekt sönder den här. Tror det dock börjar bli dags att spana efter ett oscilloskop.
Programmeraren i sig är ganska långsam, eftersom det först är usb->rs232 TX, RTS, DTR till skiftregister->parallell data->seriell data. Men det var av mindre betydelse för detta projekt, bara ett experiment. Har gjort en ny ritning som är om möjligt ännu enklare, som består av 4 IC, 74hc08, 74hc164, 4076 och en 74hc05.
om RTS är låg, så klockas data in i skiftregistret, när rts är hög klockas ingen data in, men 4076 registrerar datan från skiftregistret, använder hc05 som inverter på några ställen, men även på datalinjen, då den är open collector (som jag nu förstår tack vare sodjan och tomasL
). Klocka + data går direkt till picen i detta läge.
Ska prova att bygga den imorgon, och modifiera min plugin för den. Hittade även lite mer dokumentation till IC-progs plugin api så ska experimentera lite med det också
Någon som har koll på andra mjukvaror för programmering som är lite mer frekvent uppdaterade nu för tiden som har en plugin api för custom hårdvara?
Textwall, men bra sätt att sammanfatta och gå igenom sitt projekt lite mer objektivt. Hinner man tänka efter lite.
Men återigen tack för ni hjälper till att hålla intresset uppe när man kör fast!
Edit:
Alltså ett program som tar en DLL för hårdvara, inte bara en textfil med datalinjer definierade. kollade på winpic800, men det klarar tydligen inte plugins. Försökte kolla på mplab också, men verkar väldigt svårt att hitta dokumentation för att lägga till egen hårdvara.
när det gäller programmeraren, Satte jag VDD-signalen på en npn-transistor för att driva picen, även MCLR på transistor (dock behövs det egentligen inte för LVP, men för att ha lite "expansionsstöd" gjorde jag det ändå.
Min WinPic-plugin funkar, kan styra signalerna ut, dock verkar inte picen gå i program/verify mode av någon anledning. Enligt Databladet till 628a ska det vara VDD, RB4 sen MCLR, har därför satt VDD och sen efter ett par ms RB4 på VPP=on i koden, och MCLR på VDD-on. loggat ordningen, men verkar ändå inte riktigt hoppa igång. ska testa med en annan pic ifall jag lekt sönder den här. Tror det dock börjar bli dags att spana efter ett oscilloskop.
Programmeraren i sig är ganska långsam, eftersom det först är usb->rs232 TX, RTS, DTR till skiftregister->parallell data->seriell data. Men det var av mindre betydelse för detta projekt, bara ett experiment. Har gjort en ny ritning som är om möjligt ännu enklare, som består av 4 IC, 74hc08, 74hc164, 4076 och en 74hc05.
om RTS är låg, så klockas data in i skiftregistret, när rts är hög klockas ingen data in, men 4076 registrerar datan från skiftregistret, använder hc05 som inverter på några ställen, men även på datalinjen, då den är open collector (som jag nu förstår tack vare sodjan och tomasL
Ska prova att bygga den imorgon, och modifiera min plugin för den. Hittade även lite mer dokumentation till IC-progs plugin api så ska experimentera lite med det också
Textwall, men bra sätt att sammanfatta och gå igenom sitt projekt lite mer objektivt. Hinner man tänka efter lite.
Men återigen tack för ni hjälper till att hålla intresset uppe när man kör fast!
Edit:
Alltså ett program som tar en DLL för hårdvara, inte bara en textfil med datalinjer definierade. kollade på winpic800, men det klarar tydligen inte plugins. Försökte kolla på mplab också, men verkar väldigt svårt att hitta dokumentation för att lägga till egen hårdvara.
Re: SN7407, för låg output
Notera att det idag (i och med att det finns många billiga programmerare som
fungerar utmärkt) inte är många som håller på att bygga programmeare själva.
Så du är i princip "on your own".
> Enligt Databladet till 628a ska det vara...
För bygge av programmeare så är det "Programming Specification" du ska
använda, inte databladet...
fungerar utmärkt) inte är många som håller på att bygga programmeare själva.
Så du är i princip "on your own".
> Enligt Databladet till 628a ska det vara...
För bygge av programmeare så är det "Programming Specification" du ska
använda, inte databladet...
Re: SN7407, för låg output
Skrev lite tokigt, är såklart EEProm memory programming spec för 628a jag använder.
Jo, är medveten om att det finns ett bra utbud programmerare, syftet är mer att lära mig än det ekonomiska i frågan, plus att jag ju är systemutvecklare, så tyckte det var intressant att kombinera kunskaper jag redan har med lärandet av ett nytt område. Sen är jag ganska envis av mig.
Så är övertygad om att det kommer fungera så småningom (optimist också tydligen?
)
Är dock otroligt kul att greja med elektronik, undrar bara varför jag inte upptäckt detta område tidigare.
Jo, är medveten om att det finns ett bra utbud programmerare, syftet är mer att lära mig än det ekonomiska i frågan, plus att jag ju är systemutvecklare, så tyckte det var intressant att kombinera kunskaper jag redan har med lärandet av ett nytt område. Sen är jag ganska envis av mig.
Är dock otroligt kul att greja med elektronik, undrar bara varför jag inte upptäckt detta område tidigare.
