Difference between revisions of "Minimig Board v1.0 issues"
Jump to navigation
Jump to search
(video D/A equations) |
|||
(26 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
− | + | == Power == | |
+ | * Suggestion: Include a +5V regulator on board OR use an ATX-style powerplug if you go Mini-ITX. The +5V regulator should be capable of providing about 1A to safely power all peripherals one might attach. | ||
− | + | * FYI: Peak & average powerconsumption of the minimig v1 ..? | |
− | + | :From what I have seen the power consumption is pretty constant. All boards I've built so far consume about <B>100mA</B> (excluding keyboard/mouse). | |
− | * | + | * FYI: Any power or grounding issues? |
+ | :I did use a "local-plane" setup. I have set most IO's to slow slewrates and drive currents. | ||
+ | == Issue: FPGA SPI_DOUT == | ||
* Hardwire the patch needed to get the current board to run. Alternatively, you can also swap pin 81 (IO_L31_4/DOUT/BUSY=SPI_DOUT) and pin 79 (IO_L32P_4/GCLK0=RAM A15) on the FPGA. This way you still have four user-IOs left. You do need to change the .UCF file though and recompile the core. | * Hardwire the patch needed to get the current board to run. Alternatively, you can also swap pin 81 (IO_L31_4/DOUT/BUSY=SPI_DOUT) and pin 79 (IO_L32P_4/GCLK0=RAM A15) on the FPGA. This way you still have four user-IOs left. You do need to change the .UCF file though and recompile the core. | ||
<!-- Pin documentation at lower page 141 in ds099.pdf --> | <!-- Pin documentation at lower page 141 in ds099.pdf --> | ||
Line 15: | Line 18: | ||
::Pin 81 is an output during FPGA config that blocks [[SPI]] to [[MMC]] during startup. | ::Pin 81 is an output during FPGA config that blocks [[SPI]] to [[MMC]] during startup. | ||
+ | == Issue: SD/MMC == | ||
* SPI_DOUT from SD-Card via 1k resistor and FPGA (pin81) conflicts ..? | * SPI_DOUT from SD-Card via 1k resistor and FPGA (pin81) conflicts ..? | ||
: A gate would be better. During normal operation, the SPI out of the MMC card is tristated by disabling the MMC, the same goes at the FPGA side (it's a tristate port). This way, they can share the SPI bus. | : A gate would be better. During normal operation, the SPI out of the MMC card is tristated by disabling the MMC, the same goes at the FPGA side (it's a tristate port). This way, they can share the SPI bus. | ||
* The MMC card interface has a resistor based clock gate circuit around R50,R51. This should be replaced with a proper (single) gate "OR" chip. The margins on this signal are pretty tight on the current board. Also, R49 should be 0 ohm ideally to avoid problems when upgrading the PIC to a newer PIC18LF2620 or something similair. Margins are tight on that signal too atm. | * The MMC card interface has a resistor based clock gate circuit around R50,R51. This should be replaced with a proper (single) gate "OR" chip. The margins on this signal are pretty tight on the current board. Also, R49 should be 0 ohm ideally to avoid problems when upgrading the PIC to a newer PIC18LF2620 or something similair. Margins are tight on that signal too atm. | ||
+ | * Footnote: R49 sits between SD/MMC pin7 "D0" and SPI_DOUT ([[Minimig Board v1.0 sd-card|Picture]]). | ||
+ | * Improvement: pin11 SW#2 (write protect) and pin12 SW#3 (no card) maybe should be utilised to avoid accidential writes and interference with spi transfers ..? | ||
+ | :(SW#2=open => write protect, SW#3=open => no card present) | ||
+ | |||
+ | == Issue: Possible back emf on audio output? == | ||
+ | * [http://en.wikipedia.org/wiki/Headphone Headphones] may cause [http://en.wikipedia.org/wiki/Counter-electromotive_force back-emf]? (maybe supposed to be used as line-out only?) | ||
+ | |||
+ | == Issue: X1,X2 operating mode? == | ||
+ | * Crystals X1 and X2 is operating in parallel or serial mode ? | ||
+ | :Parallel. X1 is the base PAL clock of 4.433MHz for the FPGA. X2 is the 20MHz PIC clock | ||
+ | :Both are working independent of each other | ||
+ | |||
+ | == Issue: Video D/A inconsistency == | ||
+ | * Current Video D/A use non linear resistor ladder values. | ||
+ | :Current values: 4000Ω 2000Ω 1000Ω 560Ω | ||
+ | :Suggested values: 4220Ω 2100Ω 1050Ω 523Ω | ||
+ | : | ||
+ | :[[Minimig Video d/a resistor ladder|Video D/A resistor ladder maths & simulations]] | ||
+ | |||
+ | == Issue: SRAM == | ||
+ | [http://www.amiga.org/modules/newbb/viewtopic.php?topic_id=39358&forum=8&viewmode=flat&order=ASC&start=40#forumpost460135 Dennis 070725]:<br> | ||
+ | |||
+ | * The original SRAM used [http://rocky.digikey.com/WebLib/ST%20Micro/Web%20Data/M68AW512M.pdf M68AW512M] is [http://www.digikey.com/scripts/DkSearch/dksus.dll?Detail?name=497-1744-ND no longer available] | ||
+ | |||
+ | * Use a single chip ram like [http://www.cypress.com/portal/server.pt?space=CommunityPage&control=SetCommunity&CommunityID=209&PageID=259&fid=37&rpn=CY62167DV30&ref=sch this] one, available at [http://www.digikey.com/scripts/DkSearch/dksus.dll?Detail?name=428-1860-ND digikey] for example. | ||
+ | |||
+ | * Replacing the two 512k x 16 with one 1M x 16 bit ram will do away with one chip and free RAM_SEL1 | ||
+ | |||
+ | == Issue: LED resistors incorrect == | ||
+ | Seems R2, R61, R62 is incorrect due that R2 is powered by +5V, while R61, R62 is powered by +3,3V but all of them use the resistance value. [[LED|See LED maths]]. | ||
+ | |||
+ | == Info needed? RS232 pin header wiring == | ||
+ | * Connection, RS232: | ||
+ | :[http://www.scantips.com/serial-db9.html Internal x86-pc bracket pin mapping] | ||
+ | :Which wiring scheme is the most common for [[COTS]] sourcing? | ||
+ | |||
+ | == Optimization: Clock generation == | ||
* You could consider using a single 20MHz oscillator and figure out how to program the DCM to generator the proper clocks, this would spare a crystal. | * You could consider using a single 20MHz oscillator and figure out how to program the DCM to generator the proper clocks, this would spare a crystal. | ||
+ | == Optimization: MCU & FPGA TxD sharing == | ||
+ | * MCU(pic18) & FPGA TxD via AND-gate to rid of one jumper: | ||
+ | :Yes, no problem. However, all debug output of the PIC has to be disabled as not to interfer with the FPGA serial output. | ||
+ | |||
+ | == Optimization: Use cdrom-soundcard cable? == | ||
+ | * Connection, Audio: | ||
+ | :[http://pinouts.ru/Multimedia/analog_creative_pinout.shtml internal x86-pc cdrom -> soundcard analogue audio pinout] | ||
+ | :Voltage level: (3.3V/(560ohm + 560ohm + 32ohm))*32 ohm*1000 = 91,7mV | ||
+ | |||
+ | == FYI: Power optimisation == | ||
+ | [http://www.amiga.org/modules/newbb/viewtopic.php?topic_id=39358&forum=8&viewmode=flat&order=ASC&start=260#forumpost461745 Dennis 070803]:<br> | ||
+ | * +1.25V and +2.5V can be hooked from +3.3V to save power ? | ||
+ | :No gain | ||
+ | |||
+ | * Why is R42 present, it's just sitting between +1,25V and GND? | ||
+ | :Provides a minimum load for the LM1117. | ||
+ | |||
+ | == FYI: CPU A0 == | ||
* Why is the CPU pin 19 (A0) not connected to anything ..? | * Why is the CPU pin 19 (A0) not connected to anything ..? | ||
:The 68SEC000 is run in 16bit (selected by pin 8 (MODE=Vcc) ) mode, which means that only even addresses are used, hence the lsb address select is not needed. | :The 68SEC000 is run in 16bit (selected by pin 8 (MODE=Vcc) ) mode, which means that only even addresses are used, hence the lsb address select is not needed. | ||
:The addressing of byte wide memory addresses is done using the LDS/UDS strobes. | :The addressing of byte wide memory addresses is done using the LDS/UDS strobes. | ||
− | + | == FYI: SRAM UB/LB == | |
− | : | + | * Why does the SRAM use /UB and /LB when data is 16-bit anyway? |
− | |||
− | |||
− | |||
− | |||
− | * Why does the | ||
:[http://www.amiga.org/modules/newbb/viewtopic.php?topic_id=39358&forum=8&viewmode=flat&order=ASC&start=240#forumpost461433 jkonstan 070801]:<br> | :[http://www.amiga.org/modules/newbb/viewtopic.php?topic_id=39358&forum=8&viewmode=flat&order=ASC&start=240#forumpost461433 jkonstan 070801]:<br> | ||
:The UB & LB strobes on the SRAM are due to data bus addressing needed for the 68K cpu. 68K CPU has UDS* strobe for upper byte lane D15-D8 access, and 68K CPU has LDS* strobe for lower byte lane D7-D0 access. When 68K does a read, D15-D0 can be accessed as a word with 68K reading what it requires off of its Databus; however, a write access on a 68K CPU requires the byte lane be qualified. When UDS* active on a write cycle, UB* on SRAM must be active. When LDS* active on a write cycle, LB* on SRAM must be active. | :The UB & LB strobes on the SRAM are due to data bus addressing needed for the 68K cpu. 68K CPU has UDS* strobe for upper byte lane D15-D8 access, and 68K CPU has LDS* strobe for lower byte lane D7-D0 access. When 68K does a read, D15-D0 can be accessed as a word with 68K reading what it requires off of its Databus; however, a write access on a 68K CPU requires the byte lane be qualified. When UDS* active on a write cycle, UB* on SRAM must be active. When LDS* active on a write cycle, LB* on SRAM must be active. | ||
Line 49: | Line 103: | ||
:Ie 68k writes are byte wide. | :Ie 68k writes are byte wide. | ||
+ | == FYI: SD/MMC pcb layout pins == | ||
* The SD-MMC slot has a 12-pin wide connection to pcb. | * The SD-MMC slot has a 12-pin wide connection to pcb. | ||
:CD/D3, CMD, GND, VDD, CLOCK, GND, D0, D1, D2, SW#1, SW#2, SW#3 | :CD/D3, CMD, GND, VDD, CLOCK, GND, D0, D1, D2, SW#1, SW#2, SW#3 | ||
:SW#1="gnd", SW#2=open=>write protect, SW#3=open=>no card present | :SW#1="gnd", SW#2=open=>write protect, SW#3=open=>no card present | ||
+ | == FYI: Fpga pin ordering == | ||
* Why is address/data pins to ram/cpu spread around despite dedicated board? | * Why is address/data pins to ram/cpu spread around despite dedicated board? | ||
:Became such way to ease the PCB layout. <!-- check --> | :Became such way to ease the PCB layout. <!-- check --> | ||
− | * | + | * Why FPGA I/O pins aren't in numerical order? |
+ | :Was simple when starting out. | ||
+ | == FYI: FPGA config voltage == | ||
* FPGA configuration mode select M1,M0,M2 (pin 54, 55, 56) pins use VccAUX at +2.5V | * FPGA configuration mode select M1,M0,M2 (pin 54, 55, 56) pins use VccAUX at +2.5V | ||
+ | == FYI: keyboard + mouse wire sharing == | ||
* Keyboard and mouse can share connection? | * Keyboard and mouse can share connection? | ||
:Won't save data lines. <!-- check --> | :Won't save data lines. <!-- check --> | ||
+ | == FYI: Port overvoltage protection == | ||
* Over/under voltage protection for keyboard or mouse port? | * Over/under voltage protection for keyboard or mouse port? | ||
:It is a minimal design. The Spartan has built-in ESD protection that this design relies on. :However, monitors and TV's are notorious for blowing up video ports so extra protection has been added there! | :It is a minimal design. The Spartan has built-in ESD protection that this design relies on. :However, monitors and TV's are notorious for blowing up video ports so extra protection has been added there! | ||
+ | == FYI: BAV99 is 3-pin == | ||
* BAV99 diodes in the schematic is 3-pin not 2-pin as can be thought. | * BAV99 diodes in the schematic is 3-pin not 2-pin as can be thought. | ||
− | + | == FYI: 15/31kHz missing reference == | |
− | |||
* 15/31kHz selector is missing reference designation. | * 15/31kHz selector is missing reference designation. | ||
+ | == FYI: Component sizes == | ||
* Component size is missing. | * Component size is missing. | ||
+ | :Seems resistor size 0805 or 0603 will fit solder pads. See also [http://en.wikipedia.org/wiki/Surface-mount_technology#Package_sizes Wikipedia: Package sizes] | ||
− | + | == FYI: C37 value == | |
− | + | * Value of capacitor C37 is 100uF/6.3V | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | * Value of C37 100uF/6.3V | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
+ | == FYI: Video setup == | ||
* Video, in 15kHz mode: | * Video, in 15kHz mode: | ||
:/VSYNC = high (scart RGB enable) | :/VSYNC = high (scart RGB enable) | ||
:/HSYNC = composite sync | :/HSYNC = composite sync | ||
− | |||
− | |||
− | |||
− | |||
− | |||
+ | == FYI: Possible SD/MMC incompability == | ||
* Some (esp Sandisk.com) SD/MMC cards aren't standards compliant! see [http://jderogee.tripod.com/FAQ_1541.htm 1541-III FAQ] | * Some (esp Sandisk.com) SD/MMC cards aren't standards compliant! see [http://jderogee.tripod.com/FAQ_1541.htm 1541-III FAQ] | ||
+ | == FYI: Seems nFPGA_SEL2 is unused == | ||
+ | Neither MCU or FPGA firmware sources reference this line in any active way. This could free one I/O.<!-- Confirm with Dennis --> | ||
+ | |||
+ | == FYI: I/O mode alternative == | ||
+ | LVTTL could be used instead of LVCMOS33. No cons/pros found at this time. | ||
+ | |||
+ | == FYI: Xilinx Place & Route limitation == | ||
[http://www.xilinx.com/ise/products/webpack_config.htm Xilinx ISE Webpack device support]<br> | [http://www.xilinx.com/ise/products/webpack_config.htm Xilinx ISE Webpack device support]<br> | ||
:Free version supports Spartan3 XC3S50 - XC3S1500 <!-- Has implication for m68k in hdl or expansions --> | :Free version supports Spartan3 XC3S50 - XC3S1500 <!-- Has implication for m68k in hdl or expansions --> |
Latest revision as of 09:12, 24 August 2008
Contents
- 1 Power
- 2 Issue: FPGA SPI_DOUT
- 3 Issue: SD/MMC
- 4 Issue: Possible back emf on audio output?
- 5 Issue: X1,X2 operating mode?
- 6 Issue: Video D/A inconsistency
- 7 Issue: SRAM
- 8 Issue: LED resistors incorrect
- 9 Info needed? RS232 pin header wiring
- 10 Optimization: Clock generation
- 11 Optimization: MCU & FPGA TxD sharing
- 12 Optimization: Use cdrom-soundcard cable?
- 13 FYI: Power optimisation
- 14 FYI: CPU A0
- 15 FYI: SRAM UB/LB
- 16 FYI: SD/MMC pcb layout pins
- 17 FYI: Fpga pin ordering
- 18 FYI: FPGA config voltage
- 19 FYI: keyboard + mouse wire sharing
- 20 FYI: Port overvoltage protection
- 21 FYI: BAV99 is 3-pin
- 22 FYI: 15/31kHz missing reference
- 23 FYI: Component sizes
- 24 FYI: C37 value
- 25 FYI: Video setup
- 26 FYI: Possible SD/MMC incompability
- 27 FYI: Seems nFPGA_SEL2 is unused
- 28 FYI: I/O mode alternative
- 29 FYI: Xilinx Place & Route limitation
Power[edit]
- Suggestion: Include a +5V regulator on board OR use an ATX-style powerplug if you go Mini-ITX. The +5V regulator should be capable of providing about 1A to safely power all peripherals one might attach.
- FYI: Peak & average powerconsumption of the minimig v1 ..?
- From what I have seen the power consumption is pretty constant. All boards I've built so far consume about 100mA (excluding keyboard/mouse).
- FYI: Any power or grounding issues?
- I did use a "local-plane" setup. I have set most IO's to slow slewrates and drive currents.
Issue: FPGA SPI_DOUT[edit]
- Hardwire the patch needed to get the current board to run. Alternatively, you can also swap pin 81 (IO_L31_4/DOUT/BUSY=SPI_DOUT) and pin 79 (IO_L32P_4/GCLK0=RAM A15) on the FPGA. This way you still have four user-IOs left. You do need to change the .UCF file though and recompile the core.
- PATCH needed to get rev 1 board working:
- Disconnect net SPI_DOUT from pin 81 (IO_L31_4/DOUT/BUSY) of FPGA.
- Connect net SPI_DOUT to pin 19 (IO_L23N_7) of FPGA (net USER3).
- Reason:
Issue: SD/MMC[edit]
- SPI_DOUT from SD-Card via 1k resistor and FPGA (pin81) conflicts ..?
- A gate would be better. During normal operation, the SPI out of the MMC card is tristated by disabling the MMC, the same goes at the FPGA side (it's a tristate port). This way, they can share the SPI bus.
- The MMC card interface has a resistor based clock gate circuit around R50,R51. This should be replaced with a proper (single) gate "OR" chip. The margins on this signal are pretty tight on the current board. Also, R49 should be 0 ohm ideally to avoid problems when upgrading the PIC to a newer PIC18LF2620 or something similair. Margins are tight on that signal too atm.
- Footnote: R49 sits between SD/MMC pin7 "D0" and SPI_DOUT (Picture).
- Improvement: pin11 SW#2 (write protect) and pin12 SW#3 (no card) maybe should be utilised to avoid accidential writes and interference with spi transfers ..?
- (SW#2=open => write protect, SW#3=open => no card present)
Issue: Possible back emf on audio output?[edit]
- Headphones may cause back-emf? (maybe supposed to be used as line-out only?)
Issue: X1,X2 operating mode?[edit]
- Crystals X1 and X2 is operating in parallel or serial mode ?
- Parallel. X1 is the base PAL clock of 4.433MHz for the FPGA. X2 is the 20MHz PIC clock
- Both are working independent of each other
Issue: Video D/A inconsistency[edit]
- Current Video D/A use non linear resistor ladder values.
- Current values: 4000Ω 2000Ω 1000Ω 560Ω
- Suggested values: 4220Ω 2100Ω 1050Ω 523Ω
- Video D/A resistor ladder maths & simulations
Issue: SRAM[edit]
- The original SRAM used M68AW512M is no longer available
- Replacing the two 512k x 16 with one 1M x 16 bit ram will do away with one chip and free RAM_SEL1
Issue: LED resistors incorrect[edit]
Seems R2, R61, R62 is incorrect due that R2 is powered by +5V, while R61, R62 is powered by +3,3V but all of them use the resistance value. See LED maths.
Info needed? RS232 pin header wiring[edit]
- Connection, RS232:
- Internal x86-pc bracket pin mapping
- Which wiring scheme is the most common for COTS sourcing?
Optimization: Clock generation[edit]
- You could consider using a single 20MHz oscillator and figure out how to program the DCM to generator the proper clocks, this would spare a crystal.
Optimization: MCU & FPGA TxD sharing[edit]
- MCU(pic18) & FPGA TxD via AND-gate to rid of one jumper:
- Yes, no problem. However, all debug output of the PIC has to be disabled as not to interfer with the FPGA serial output.
Optimization: Use cdrom-soundcard cable?[edit]
- Connection, Audio:
- internal x86-pc cdrom -> soundcard analogue audio pinout
- Voltage level: (3.3V/(560ohm + 560ohm + 32ohm))*32 ohm*1000 = 91,7mV
FYI: Power optimisation[edit]
- +1.25V and +2.5V can be hooked from +3.3V to save power ?
- No gain
- Why is R42 present, it's just sitting between +1,25V and GND?
- Provides a minimum load for the LM1117.
FYI: CPU A0[edit]
- Why is the CPU pin 19 (A0) not connected to anything ..?
- The 68SEC000 is run in 16bit (selected by pin 8 (MODE=Vcc) ) mode, which means that only even addresses are used, hence the lsb address select is not needed.
- The addressing of byte wide memory addresses is done using the LDS/UDS strobes.
FYI: SRAM UB/LB[edit]
- Why does the SRAM use /UB and /LB when data is 16-bit anyway?
- jkonstan 070801:
- The UB & LB strobes on the SRAM are due to data bus addressing needed for the 68K cpu. 68K CPU has UDS* strobe for upper byte lane D15-D8 access, and 68K CPU has LDS* strobe for lower byte lane D7-D0 access. When 68K does a read, D15-D0 can be accessed as a word with 68K reading what it requires off of its Databus; however, a write access on a 68K CPU requires the byte lane be qualified. When UDS* active on a write cycle, UB* on SRAM must be active. When LDS* active on a write cycle, LB* on SRAM must be active.
D15........D8 D7........D0 Byte 0= Even Byte 1= Odd => (Word 0) /UDS /LDS etc..
- Ie 68k writes are byte wide.
FYI: SD/MMC pcb layout pins[edit]
- The SD-MMC slot has a 12-pin wide connection to pcb.
- CD/D3, CMD, GND, VDD, CLOCK, GND, D0, D1, D2, SW#1, SW#2, SW#3
- SW#1="gnd", SW#2=open=>write protect, SW#3=open=>no card present
FYI: Fpga pin ordering[edit]
- Why is address/data pins to ram/cpu spread around despite dedicated board?
- Became such way to ease the PCB layout.
- Why FPGA I/O pins aren't in numerical order?
- Was simple when starting out.
FYI: FPGA config voltage[edit]
- FPGA configuration mode select M1,M0,M2 (pin 54, 55, 56) pins use VccAUX at +2.5V
FYI: keyboard + mouse wire sharing[edit]
- Keyboard and mouse can share connection?
- Won't save data lines.
FYI: Port overvoltage protection[edit]
- Over/under voltage protection for keyboard or mouse port?
- It is a minimal design. The Spartan has built-in ESD protection that this design relies on. :However, monitors and TV's are notorious for blowing up video ports so extra protection has been added there!
FYI: BAV99 is 3-pin[edit]
- BAV99 diodes in the schematic is 3-pin not 2-pin as can be thought.
FYI: 15/31kHz missing reference[edit]
- 15/31kHz selector is missing reference designation.
FYI: Component sizes[edit]
- Component size is missing.
- Seems resistor size 0805 or 0603 will fit solder pads. See also Wikipedia: Package sizes
FYI: C37 value[edit]
- Value of capacitor C37 is 100uF/6.3V
FYI: Video setup[edit]
- Video, in 15kHz mode:
- /VSYNC = high (scart RGB enable)
- /HSYNC = composite sync
FYI: Possible SD/MMC incompability[edit]
- Some (esp Sandisk.com) SD/MMC cards aren't standards compliant! see 1541-III FAQ
FYI: Seems nFPGA_SEL2 is unused[edit]
Neither MCU or FPGA firmware sources reference this line in any active way. This could free one I/O.
FYI: I/O mode alternative[edit]
LVTTL could be used instead of LVCMOS33. No cons/pros found at this time.
FYI: Xilinx Place & Route limitation[edit]
Xilinx ISE Webpack device support
- Free version supports Spartan3 XC3S50 - XC3S1500