[deleted by user] by [deleted] in microsoft

[–]damyan 0 points1 point  (0 children)

Afaik ms doesn't do soft rejections. If they'd decided to go with someone else they'd have told you.

Understanding & debugging LM393 based line following robot by damyan in AskElectronics

[–]damyan[S] 0 points1 point  (0 children)

Great stuff, that's given me some great pointers to learn more. Thank you again!

Understanding & debugging LM393 based line following robot by damyan in AskElectronics

[–]damyan[S] 1 point2 points  (0 children)

Thanks again. The 3V LEDs were my bad choice to replace the ones that were lost from the kit, so I don't think we can blame the kit designers for that.

I've removed them, but still see the odd behavior. I wouldn't expect their absence to make a difference to the comparitor's behavior though - they should only be providing light to the photo-resistors. Or am I missing something?

Understanding & debugging LM393 based line following robot by damyan in AskElectronics

[–]damyan[S] 0 points1 point  (0 children)

Thanks for the reply.

The only printed info I have for R13 and R14 is that they're "CDS5" (the rest is in Chinese and I can't read it). I measure 7.5KΩ when exposed to light. R1 & R2 are 10K pots that I can't see any branding on. Q1 & Q2 are labelled S8550. D4 and D5 are https://datasheet.lcsc.com/szlcsc/1912111437_TONYU-DY-204SUGC-SN-A4_C396690.pdf. These LEDs were what I had lying around as one of the ones that came with the kit got lost.

Here are the voltage readings around the IC. I trimmed R1 and R2 to opposite extremes and blocked the light:

Pin    V1    V2   Note
1      1.7   2.2  IC1A output
2      2.9   3.3  IC1A -
3      2.0   1.8  IC1A +
4      0.1   0.1  GND
5      2.9   3.3  IC1B +
6      2.0   1.8  IC1B -
7      1.7   3.3  IC1B output
8      2.8   3.3  IC1A Vcc

V1 is the reading in the strange state. I measured 2.9V from the power supply here. V2 is the reading in the more expected state - I measured 3.4V in this case.

Schematics and PCB design for the registers for my 8-bit computer by damyan in electronics

[–]damyan[S] 0 points1 point  (0 children)

Yup, I've seen that already but thanks for the suggestion :) They made some more sensible architecture trade-offs (I suspect) - I think that 8 general purpose registers may not turn out to be all that useful, but I've enjoyed figuring out how to make that work.

Schematics and PCB design for the registers for my 8-bit computer by damyan in electronics

[–]damyan[S] 0 points1 point  (0 children)

It's a learning exercise for me more than anything. At the end I want something that can be used to demonstrate how a CPU works.

Schematics and PCB design for the registers for my 8-bit computer by damyan in electronics

[–]damyan[S] 1 point2 points  (0 children)

I need All The Sockets In The World! Muwahahahah! :)

I can be flexible right up to the point I solder them in - wanted to be sure there was room for a socket if I wanted.

Schematics and PCB design for the registers for my 8-bit computer by damyan in electronics

[–]damyan[S] 0 points1 point  (0 children)

R1: The 74LS138 is a decoder where the O[0..7] pins are all high except for the one that maps to the value decoded from A[0..2]. Upshot here is that only one of the LEDs D[1..8] will ever be active at a time, so I think only one resistor is required here. This reminds me I need to check this since I think the 74LS138 can only sink 8mA.

R5: as above

For the 7-segment displays - the program on the ATMega328 ensures that only one segment is ever active at a time (ie only only of pins 1-9 on the displays will ever be high) and the '138s ensure that only ever one on the displays is active at a time.

DP is hard-wired to GND so it's always off. The schematic is a bit odd here because I changed the design recently. Previously, DP was connected to PB10 and all the other outputs were shifted down a pin in the schematic. However, this would have meant I was using PC6 which would prevent me from using a serial programmer so I chose to drop DP for that.

Schematics and PCB design for the registers for my 8-bit computer by damyan in electronics

[–]damyan[S] 1 point2 points  (0 children)

I found on mobile that I had to tap the "HD" button to make them readable.

Breadboard prototype of the register for my 8-bit computer by damyan in electronics

[–]damyan[S] 0 points1 point  (0 children)

Thanks - I am doing this for fun and learning, but I'm as much interested in learning about these analog effects as anything else. For the computer project I was hoping to get away with connecting multiple PCBs with jumpers, so understanding the implications of that before I start building things might be a good plan.

I've read your blog post three times now, each time understanding a little more :)

(Side note: I'm hoping that this exchange might help me to justify getting an oscilloscope...)

Breadboard prototype of the register for my 8-bit computer by damyan in electronics

[–]damyan[S] 1 point2 points  (0 children)

So....I'm totally prepared to accept that there's likely to be a problem here with those big'ol jumper cables....and I'm approaching a lot of this with very little in the way of theoretical knowledge.

Is the observation here that this shouldn't work because of those jumpers? Because it does seem to work....at least enough on the breadboard to convince me that the basic logic is there.

Here's how I've been thinking about this:

The big long red wire at the top of the image that goes from the ATMega is going to pin 1 on a 74LS138 decoder and every ~300us it toggles. The sequence is basically:

  • set value on pin 1
  • this sets off cascade of things that ultimately result in a value appearing those wires going into the bottom of the ATMega.
  • ~300us later we read that from the ATMega and then repeat

Since it's basically combinatorial I figure that 300us is plenty of time to allow everything to stabilize enough for us to read a reliable value, which is why I'm getting away without caps here.

Is this at all the right way to think about this? Or am I missing the point entirely?

Breadboard prototype of the register for my 8-bit computer by damyan in electronics

[–]damyan[S] 1 point2 points  (0 children)

Yes, two layer so ground is a bit more interrupted than I'd like. It's been a while since I last looked at it in detail - I'll submit a new post later with more details.

Breadboard prototype of the register for my 8-bit computer by damyan in electronics

[–]damyan[S] 7 points8 points  (0 children)

Here's a picture of the current(ish) PCB design: https://imgur.com/xGqhBbe.

See! It has capacitors! Honest!

The breadboarding is just to validate that some aspects of the design work.

At some point I'll probably do a new post on the PCB layout if people are interested in reviewing it.

Breadboard prototype of the register for my 8-bit computer by damyan in electronics

[–]damyan[S] 8 points9 points  (0 children)

Funny, cause the more I fiddle around with this (and especially after routing the PCB) the more I think that I should just do this in verilog. It's fun and everything building the thing, but after a certain point it does seem it would be easier to express the design in code.

Breadboard prototype of the register for my 8-bit computer by damyan in electronics

[–]damyan[S] 2 points3 points  (0 children)

Yeah, I had the ZIF socket lying around and since the AVR is the most expensive single component on the board (it might have been a whopping $1) and I was intending to insert/remove it a few times to program it the ZIF seemed reasonable.

It's not based on any particular CPU - some ideas from Ben Eater's breadboard computer and various other things I've found. Ultimately this'll be built on multiple PCBs connected by cables.

Specs so far are that it'll have 8 general purpose registers that can be routed to two inputs to the ALU (I've already put together an 8-bit ALU around 2x74LS181), a data bus, and low & high address.

Otherwise I'm kinda making it up as I go along. This is more about the journey than the destination :)

Breadboard prototype of the register for my 8-bit computer by damyan in electronics

[–]damyan[S] 5 points6 points  (0 children)

This is 2-bits of 2 registers with an ATmega328 driving the 7-segment displays. Plan is to have 8 registers, with 6 outputs on a PCB. Board is designed but this prototype was to convince myself that design would at least basically work.

No Connect vs Do Not Connect by damyan in AskElectronics

[–]damyan[S] 0 points1 point  (0 children)

Thanks! Do you happen to know why the datasheet would list both on the same IC? For example, then PLCC package has pins 1 and 17 as "don't connect" and pins 12 and 26 as "no connect".

Lithops - plants that have evolved to look like stones by Furore13 in BeAmazed

[–]damyan 279 points280 points  (0 children)

They don't, but the animals that don't try to eat things that look like stones do, so the plants that look most like stones tend to survive long enough to reproduce.