Menu

Improvments

Vitor_Boss
2012-12-30
2018-08-12
<< < 1 2 3 > >> (Page 2 of 3)
  • stefan martin

    stefan martin - 2014-04-18

    Thank a lot I opened with WinPic800 and I made a JDM PGM and eveything is OK now.
    MY Open Programmer WORKS. Thanks a lot for your Help.
    Stefan

     
  • Vitor_Boss

    Vitor_Boss - 2015-06-15

    Sorry to abandoned this thread but my wife get pregnant, my son was hospitalized few times and did't have time to this until now, I've been looking for some datasheet and see a problem to continue developing this board.
    The booster did't give enough current, we need at last 200mA, using this: http://www.daycounter.com/Calculators/Switching-Converter-Calculator.phtml I have entered a 400mA max to the calculator and need do some code rework.
    I tried to understand all the math behind the firmware but I couldn't.
    Get This:
    Item Value Units
    Volts In 5 V
    Volts Out 13 V
    Load Current 0.4 A
    Freq. 90 KHz
    Vripple 0.13 V
    Duty Cycle 74.358974358974 %
    Ipp Inductor 0.02 A
    Ipk Inductor 0.41 A (Max USB current is 500mA)
    Irms 0.3900427327016 A
    L 1239.3162393162 uH
    C 25.421871575718 uF

    Please help.

     

    Last edit: Vitor_Boss 2015-06-19
  • Alberto Maccioni

    I'm not sure of what you're trying to do; do you want to substiture the DCDC converter?
    Why do you need 200mA at high voltage?

     
  • Vitor_Boss

    Vitor_Boss - 2015-06-17

    I want information about DCDC routine to change it.

    We need at least 200mA for old parallel memories, models like 27C512 use 35mA on vcc and 40mA on vpp, this is very close of max current of actual circuit, this will cause high ripple and instability in writing data. Also I'm building one adapter to support any voltage programming (from 2.7 to 6.25) to fit any parallel memory and expand data bus to 16bits with selected voltage output. I think it might help with uW programming

     
  • Alberto Maccioni

    The limitation is in the hardware; I think the routine could be the same.
    The present circuit can source a couple of mA at most.
    Resizing inductor, transistor, and filters should give the result you need.
    I think you only need 3.3V and 5V as power supply; that can easily be handled with a switch or jumper; a variable supply likely requires level shifters (bidirectional), a significant complication.

     
  • Vitor_Boss

    Vitor_Boss - 2015-06-19

    27Cxxx Requires 12.7 on VPP and 6.25 on VCC to enable the programming mode, also I have found this: http://www.komponenten.es.aau.dk/fileadmin/komponenten/Data_Sheet/MOS-TTL/ls/74LS652.pdf.pdf and it almost fit only on a 18F4550 version board because it need 4 more controls to operate, it is bidirectional and have real time output, needed in SPI and I2C operations.

    Variable power supply is easy with a LM317, 1N4148, couple capacitors and resistors. Look the attachment

    I don't like jumpers, if you forgot to change one you can damage the device, I love automate everything.

    Look this parallel programmer: http://www.ezoflash.com , it use a LOT of expansions boards and jumpers.

     

    Last edit: Vitor_Boss 2015-06-19
  • Alberto Maccioni

    Well, automation means more hardware.
    I think you can at least avoid level shifters: 6.5V is compatible with 5V, you just use some series resistors.
    Regarding IO expansion I prefer series to parallel shift registers, so you put a number of them in series using just 3 outputs for control; see CD4094.
    Perfect for addresses which change slowly.
    And for VPP I would go for a fixed boost circuit.

     
  • Anonymous

    Anonymous - 2015-06-21

    For a serial shifters the CD4015 is better cause it operates from 2V and capable of higher serial clock comprated to CD4094.

    CD4015 is a dual 4bit shifters, it is used on EZoFlash at 3.3v with no problem, I think it is a good start.

    5V parallel memories need to be supplied at 6.25V to enable writing on flash.
    So far this is a good restart for me, next week I'll post the circuit here

     

    Last edit: Vitor_Boss 2015-06-22
  • Vitor_Boss

    Vitor_Boss - 2015-06-22

    Alberto Maccioni, this is my prototype:
    Address is 24bit long
    RB0: Address LSB
    RB1: Address second Byte
    RB2: Address MSB
    Data is 16bit long:
    RB3 serial data out
    RB4 serial data in
    Command:
    RC6: clock
    RA3: enable address change
    RA4: read data from memory in to serial registers
    RA5+RC7+RBx data: Select device and bus voltage
    low RC7+RBx data: enable device command like OE, WE and chip select

     
  • Alberto Maccioni

    How do you write data to the target memory?
    Is it really necessary to have 16 bit data? All memories support an 8 bit mode.
    If this is possible I would directly connect RB7:RB0 to data.
    (also, please use .png images)

     
  • Vitor_Boss

    Vitor_Boss - 2015-06-23

    Almost memories support 8bit programming but 16bit is faster on supported devices, also I'm thinking in future memories.

    I told you to use 74LS652 to use parallel (RB0-RB7) data in and out and 74F574 to store addresses, my first version is based on those but use more components.

    Sorry by the pictures in bmp, take a look on parallel set

     

    Last edit: Vitor_Boss 2015-06-26
  • Vitor_Boss

    Vitor_Boss - 2015-06-26

    Here is the wave forms of proposed circuit is previous post.

    What you think? To complicated or to easy to implement in firmware?

     

    Last edit: Vitor_Boss 2015-06-26
  • Alberto Maccioni

    I think this is much more complicated than it could be.
    First, data width: you don't need 16 bits; the transfer rate is limited by USB speed.
    So I would dedicate the entire port B to data, saving all those bus latches.
    Then I would use shift registers in series for address and other outputs; the 4094 has the advantage of a strobe signal, so that all outputs change at the same time.
    The remaining critical signals can be driven directly by an IO line.
    Another possibility is to switch to a larger chip, like a 18F4550, which has more IO lines (although some output expansion is still needed).

     
  • Vitor_Boss

    Vitor_Boss - 2015-06-29

    I told you on 2015-06-19 to move to 18F4550, it have more IO to work on it.

    I know it is more complicated than use shift registers, but it is faster to change anything, USB speed is fast enough to program a 4Mbit memory in less than a minute.

    16bit data is used to flash memories like 28F800, this board is a middle interface to each kind of memory adapter.

    I have build a new Schematic based on your feedback with only 8 bits data and 24bits address, also I used A3 as clock, A4 for serial data and RC6 to data direction keeping the device voltage selector and control bits as it is ok?

     

    Last edit: Vitor_Boss 2015-06-29
  • Alberto Maccioni

    You wrote about 18F4550 but I don't see any additional ports, this works with the standard programmer.
    Anyways, here my considerations:
    now that there are only 8 bits U4 is useless.
    OE of the shift register can be fixed to VDD.
    Same for the latches which, by the way, should not be 74F but CMOS to work at different voltage.
    I would not multiplex the shift register clock (RA3) but data (RA4) instead.
    I'm a bit skeptical about the power concept: I don't see the need to open the ground path, and I think that changing the voltage by bus can be dangerous; what is the problem with using jumpers?
    Who is providing VPP?
    What is the target power supply and high voltage supply?

     
  • Vitor_Boss

    Vitor_Boss - 2015-07-01

    Without jumpers the programmer can set the supply to Read or Write by just changing the voltage, with jumpers the programmer will work at on mode at time but after flashing we need to read the device to check data.

    The VPPU is the high voltage supply, the target supply is delivered by VPP1.

    With PIC18F4550 we can ignore all that and use the SPP to control data and control bits using the PORTD and PORTE. This is the best way to do that because the code needed will not change actual one, only will add more funcion.

    So far I'm trying to show you my ideas, please show me yours to finish it, I really need this working

     
  • Alberto Maccioni

    Sorry, I don't have time to draw schematics right now; I can just comment yours.
    Anyways, why do you need to change voltage between read and write?
    Also, the current DCDC converter cannot provide more than a couple of mA, so you have to put another converter on board, supplied by VDD.
    If this has to be an universal interface it needs to provide also a VPP voltage to the target memory (different from what is now VPP1).
    And if you provide a variable VPP1 to supply the target what is the need for VP2?

     
  • Vitor_Boss

    Vitor_Boss - 2015-07-03

    In my design I have put the VP1 to power up different devices, it can be selected by jumpers too, VP2 is the BUS voltage 5V or 3.3V, because of the BUS voltage the U4 in needed. The high voltage will use the original VPP provided by the programmer.

    Old parallel memories need 12.5V on VPP pin and 6.25V(provided by VP1) on VCC pin to enable writing, this mode can Read the device too, but is not needed to Read, with only 5V works to Read. 3.3V memories enables writing just changing the supply to 3.6V but the BUS need to be in 3.3V to don't damage the device.

    Now the variable source will use jumpers.

    I don't have an oscilloscope here, could you confirm the DCDC supply as last 100mA at 12.5V without ripple?

     
  • Alberto Maccioni

    I can confirm that the current DCDC can NOT supply 100mA; you can draw a couple of mA at most.
    You should have one voltage for target and interface chips and one for VPP; I don't see the need for more.

     
  • Vitor_Boss

    Vitor_Boss - 2015-07-06

    Again, the BUS voltage and Supply voltage can't be the same, VPP is provided by the programmer DCDC booter. And to this expansion board work a boost rework is needed.

    Look this table taken from the MN27C256 chip and try to understand why VP1

    Edit: You can read 4005 parallel memory datasheets from here: http://www.ezoflash.com/chip_database.php

     

    Last edit: Vitor_Boss 2015-07-07
  • Alberto Maccioni

    I don't see a reason for having different bus and supply voltage.
    You should change your naming convention to reflect what is used in target memories: VPP for programming and VCC for supply.

     
  • Vitor_Boss

    Vitor_Boss - 2015-07-07

    Sorry for changing names, now this is the version with jumpers and on my board I will put a separated voltage control for BUS and VPP, I like because it seems more secure for me, to don't use it is just don't put it on the board and wire it to the VPP pin if you want.

    Check this.

     
  • Alberto Maccioni

    VBUS has to be VCC: you cannot mix 3.3V outputs with 6.25V devices (that's the extreme case); also there's no reason to have them separate.
    Anyways, using a 470ohm series resistor will cause an unacceptable drop depending on the (variable) load current; a regulator is always needed to derive a supply.
    Why 3 CS outputs?
    I see a problem when you need to program memories that require 5V on both VCC and VPP: you fix VPP at 5V so U13 will not be able to supply 5V but less, probably 4V depending on the load current.
    And regarding the generation of VPP I would place an on-board boost circuit, supplied by VDDU.

     
  • Vitor_Boss

    Vitor_Boss - 2015-07-08

    Tne VDDU circuit can provide a 100mA maximum according to http://www.nxp.com/documents/data_sheet/BC556_557.pdf

    There is something you are not seeing, the 6.25V is used to enable programming on 5V devices but the data and addresses lines must be 5V, on the MN27C256 datasheet the wave forms is 2V at high state. And 3.3V devices enable writing with 3.6V or 5V depending of device, but data and addresses must be 3.3V.

    The others things I will rework on them.

     
  • Alberto Maccioni

    You are not interpreting the datasheet in the correct way; the device has a single supply for core and IO, so you should use the same voltage for both.
    Its output lines will be driven at VCC, and its inputs can be driven at anything above the input threshold.
    The fact that the threshold is 2V doesn't mean that you should use that value: on the contrary, values near the threshold will give higher power consumption and higher delay.
    To my knowledge there are no memories that have a separate core and VIO domains.
    You are complicating the circuit without reason.
    By the way, trying to support old 27C memories and mewer flash memories at the same time requires a more complicated circuit; you may want to split the two cases using different boards.

     
<< < 1 2 3 > >> (Page 2 of 3)

Anonymous
Anonymous

Add attachments
Cancel