texts: how long should an I2C slave wait for a STOP bit (if at all)?

texts:
I2C frames each group of message bytes in START and STOP conditions, defined as SDA changing state 1>0 or 0>1 (respectively) while SCL is high, as described here.

I am writing interrupt driven handlers for PIC32MX170, and I got quite far using the STOP bit as the signal to the software that the message is done. This then allows for things like checking the rx/tx byte count and so on. I found testing the STOP flag in software to be quite reliable, with the combination of hardware and clock that I used.

However, I now discover that it is not reliable at all : either using a faster clock or slower driver means that the ISR can exit and miss the STOP bit completely. Worse, as the next byte will be START of a new message, there is no way to know if it ever arrived (unless you sit there polling the bus, which is not really the kind of thing I want in an ISR, even with timeout).

However, code that depends on flaky combinations of hardware and clocks is also pretty bad, so I am facing a redesign that assumes STOP bits to be unreliable (luckily I don't try to do variable byte counts).

(Some uC's always raise an interrupt on STOP, but unfortunately not this one, as far as I can tell.)

But this raises the question : should an ISR wait on the STOP bit? If so, for how long? Is there anything in the spec about this?

EDIT:
I am adding some information, as perhaps I did not express myself completely clearly in my original. My question was really about the means of detecting the message start and stop, which of course is essential. (We have some discussion below about related matters such as where in the code the decoding is done - also very valuable but not what I was asking.)

The issue is basically that, although START and STOP (S and P) conditions (actually the status bits that signal them on the device) are not always set when the ISR runs, even though this might be the last time for the message. (There is also the question of whether the ISR needs to look at those bits, which I think is more about system design, but also interesting and relevant.)

As well as S/P flags, there are also flags which tell you what kind of byte you just received: Address R/W and Data R/W. Address Write always signals the start of a message.  After this point a certain structure must be observed, which may involve repeated S conditions and so on. Depending on how you design your message protocol (especially whether you support variable length or not) these can also be used to understand the structure of the message. This is what the question is about.


texts: What are the resistors bridging connections between devices generally implemented for?

texts:
Every time I see this type of implementation of a resistor I tend to question it's use (the 4.7k in this case).

Consider a case where the RFM module is not connected to the 4.7k resistors. Clearly we have a voltage divider configuration that governs a 0V at the upper terminal of the 10k resistor when the output of the MCU is LOW. However, when the output of the MCU is HIGH, we would have approx. 3.4V at the output (which would generally be considered a logic HIGH as well). However, how does the connection of the RFM module affect this configuration?

Am I looking at this all wrong and the purpose of the two sets of resistors is not a V divider? As the pins of an IC generally HIGH-Z to not affect the V divider configuration shown above?

In general, what are these types of "bridging" resistors used for? I can see in certain applications they are used for current limiting (like the case of a resistor connecting the base of a transistor), but I have seen other instances where I am unsure.


texts: SDHC card, a microSD shield, and Arduino Duemilanove

texts:
I got a new microSD shield from LittleBird and am having some troubles with it.

I downloaded the sample library that it said to used, threw in a microSD card and expected it to work... It won't initialise for some reason, and I have done a bit of googling and can't see how to get it working. Everyone just say use this library, use that one.

Hardware

MicroSD shield
Arduino Duemilanove (ATmega328)
SanDisk (4 GB) microSD card (HC)

Is the SDHC card part of the problem?

I work off a Mac and even formatted the card on a Windows XP machine to fat 16, but still no luck.


texts: Understanding the input specifications for a laptop adapter

texts:
The sticker on my laptop adapter claims the input should be

  INPUT: 100-240V~ 2.5A(2,5A) 50-60Hz

What does all this mean?  Here are a couple specific questions:

Can the adapter accept anywhere between 100V to 240V?!
Is there a problem with plugging this adapter into an outlet labeled
"2A max"?


texts: SFF SDR: How to implement a simply program in the FPGA

texts:
Although this a very specific question, I think someone of this site could give interesting information.

I am using a SFF SDR of Lyrtech

I am trying to generate a .bit file using a .vhd file and a .ucf.

My program is very simply and it light a led and put off the others.

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

---- Uncomment the following library declaration if instantiating
---- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;

entity oneled is
Port ( o_FpgaLed0_p : out  STD_LOGIC;
       o_FpgaLed1_p : out  STD_LOGIC;
       o_FpgaLed2_p : out  STD_LOGIC;
       o_FpgaLed3_p : out  STD_LOGIC;
       o_FpgaLed4_p : out  STD_LOGIC);
end oneled;

architecture Behavioral of oneled is
begin
o_FpgaLed0_p <= '1';
o_FpgaLed1_p <= '0';
o_FpgaLed2_p <= '0';
o_FpgaLed3_p <= '0';
o_FpgaLed4_p <= '0';
end Behavioral;

As you can see its a very simple program just to learning to use this board.

My question is.
¿What´s wrong, do I need one file more?
Thank you for your help.

This is a link to download my constraint file.
https://www.dropbox.com/s/2wlaa5asa5tprdw/sdrioring_virtex4ffg668.ucf

I have these error messages:

ERROR:ConstraintSystem:59 - Constraint <NET "i_FpgaClk_p" TNM_NET =
   "i_FpgaClk_p";> [C:/Dropbox/Archivos sobre mi
   PFC/Files_ucf/sdrioring_virtex4ffg668.ucf(29)]: NET "i_FpgaClk_p" not found.
   Please verify that:
   1. The specified design element actually exists in the original design.
   2. The specified object is spelled correctly in the constraint source file.
ERROR:ConstraintSystem:59 - Constraint <NET "i_PllMClkg_p" TNM_NET =
   "i_PllMClkg_p";> [C:/Dropbox/Archivos sobre mi
   PFC/Files_ucf/sdrioring_virtex4ffg668.ucf(32)]: NET "i_PllMClkg_p" not found.
ERROR:ConstraintSystem:59 - Constraint <NET "Top_l/ClkOpb_s" TNM =
   "100MhzOpbClk";> [C:/Dropbox/Archivos sobre mi
   PFC/Files_ucf/sdrioring_virtex4ffg668.ucf(49)]: NET "Top_l/ClkOpb_s" not
   found.  Please verify that:
   1. The specified design element actually exists in the original design.
   2. The specified object is spelled correctly in the constraint source file.
ERROR:ConstraintSystem:59 - Constraint <NET "Top_l/ClkVpss_s" TNM =
   "75MhzVpssClk";> [C:/Dropbox/Archivos sobre mi
   PFC/Files_ucf/sdrioring_virtex4ffg668.ucf(53)]: NET "Top_l/ClkVpss_s" not
   found.  Please verify that:
   1. The specified design element actually exists in the original design.
   2. The specified object is spelled correctly in the constraint source file.
ERROR:ConstraintSystem:59 - Constraint <Net "i_nLyrio1AbInt_p" IOSTANDARD =
   "LVCMOS33";> [C:/Dropbox/Archivos sobre mi
   PFC/Files_ucf/sdrioring_virtex4ffg668.ucf(63)]: NET "i_nLyrio1AbInt_p" not
   found.  Please verify that:
   1. The specified design element actually exists in the original design.
   2. The specified object is spelled correctly in the constraint source file.
ERROR:ConstraintSystem:59 - Constraint <Net "i_Lyrio1AbReady_p" IOSTANDARD =
   "LVCMOS33";> [C:/Dropbox/Archivos sobre mi
   PFC/Files_ucf/sdrioring_virtex4ffg668.ucf(64)]: NET "i_Lyrio1AbReady_p" not
   found.  Please verify that:
   1. The specified design element actually exists in the original design.
   2. The specified object is spelled correctly in the constraint source file.


texts: Can't understand thevenin equivalent resistance

texts:
In this case, why (R2 R1) and (R3) is parallel?

What is the difference between this one? I'm really confused.


texts:
Beginner here, just playing around with a devboard using a PIC micro. I am attempting to strobe an LED using an interrupt, I've created the function below within isr.c, INTOSC is running at 4MHz, TMR0 at 1MHz with a 1:128 prescaler. Variables second and mSecond are defined as 100 in my initialize function; ledOnTime and ledOffTime are initialized at 0 in the same function; GP2 and GP4 are the pins tied to my LEDs as you can see from my comments.

First off, I've adjusted the timing of my interrupt occurrence based on my scope readings, the math I did beforehand had it happening too frequently so I slowed it down to where my pulses matched what I was looking for. I did the math backwards, and it still doesn't really add up in my mind. Maybe someone can give me a clue as to why.

Another thing I can't figure out is why when I increase either one of the the variables (second or mSecond) it increases the time in which my LEDs stay off.  What I'm trying to increase is the time they stay on. I would think based on the way I wrote it mSecond should do that, but from my results upon programming the micro it does not, and it has me baffled. Can someone please explain what's going on here:

if (TMR0IF){
    TMR0 += 162;                       // overflow 93 (at approx every 10 millisecs)
    TMR0IF = 0;                        // reset overflow flag

    if (ledOffTime == second){         // every second
        ledOffTime = 0;
        GP2 = 1;                       // turn lights on
        GP4 = 0;                       // bicolor led on
        if(ledOnTime == mSecond){      // every 100 millisecs
            ledOnTime = 0;             // reset on time count
            GP2 = 0;                   // turn lights off
            GP4 = 1;                   // bicolor led off
        }
        else{
            ledOnTime++;               // keep LEDs ON
        }
    }
    else{
        ledOffTime++;                  // keep LEDs OFF
    }
    system_ok = 1;
}

Found a solution, some variables and config registers changed:

TMR0 prescaler 1:64
SECOND = 440
MSECOND = 40

if (TMR0IF){
TMR0 += 217;                         // approx 2.5 msecs
TMR0IF = 0;                          //reset overflow flag

if (++ledOffTime >= SECOND){         // Every second
    ledOffTime = 0;                  // Clear off time count
    ledsOn = true;                   // LEDs are on
    GP4 = 0;                         // Bicolor LED
    GP2 = 0;                         // Turn LEDs on
}
if(ledsOn == true){
    if(++ledOnTime > MSECOND){
        ledOnTime = 0;              // Reset on time count
        ledsOn = false;             // LEDs are off
        GP4 = 1;                    // Bicolor LED
        GP2 = 1;                    // LEDs are off
    }
}

}


texts: Soldering on keyboard controller circuit board

texts:
For fun, I took a USB keyboard apart as I'd like to use the keyboard circuit board without the actual physical keyboard. I am in need of soldering advice however.

Opening up the keyboard I see this:

This is the plastic sheet that is connected to each keys.  The pins I have zoomed into are connecting to the circuit board, which looks like this:

Unfortunately I can't solder directly to these as they appear to repel solder. I then tried drilling small holes in them and attaching thin wire, and maybe that can hold a while, but it seems very flimsy and is destined to break off.

Do you guys have advice on how to make a fairly robust connection to these pins?

Initially I'd like to connect separate wires and then connect the wires to my breadboard.

I thought about overlaying the plastic sheet on top (as it would have been inside the keyboard), but connecting wires to the plastic pins seems even harder.


texts: Why batteries need to be custom and smart nowadays?

texts:
Recently I refresh a laptop battery with new 18650's. This is working however it still doesn't last very long because of the chip inside this battery.

The chip must recallibrated (data is incorrect and based upon previous batteries) but cannot do this. There are smart chargers that can charge 18650 without any problem and can determine the condition of the cell as well. So why is the charge circuit inside the battery and not inside the device? The circuitry/chip inside the battery makes the whole battery pack unusable.

The batteries I have replaced seems to be working fine after a full recharge later in an external charger. Test for several days and operate just fine with different loads. So the chip inside the battery pack decides the battery is dead at some circumstances but in fact it's not.

18650 is a standard so why manufacturers decide to design custom packages of a standard. In the early days, you replace batteries by purchase "dumb" /unprotected (single use or rechargeable) cells. Easy as 1,2,3, widely available, old out - new in, easy. Nowadays you need to buy an expensive customized battery pack for some reason, even when using an industry standard inside.

As an example, the batteries I replaced inside this battery, is actually very straight forward. The batteries are alligned/arranged in three columns (series) of two batteries (parallel) each, like this:

This could be easily a battery compartment with six 18650 'slots' without more space requirement and when the charger is available in device, also without charge circuitry. Reusable (avoid electronic waste), overall a much cheaper solution or not?

So why manufacturers still design custom battery packages of an industry standard? What's the real reason?

Is it because of (some ideas):

Safety, because of possible shorts by wrong polarity of unprotected
cells;
Avoid unpredictable results of the product by using low quality batteries*;
Dependancy, you need to buy original (overpriced) customized battery pack;
Sales, control failure and replacement (like ink cardridges, black gold);
Product life cycle, product become obsolete when no battery available

*= Counterfeit batteries and low quality batteries, in my opinion, caused by the exclusivity and high prices of the brands themselves. Bad batteries are around us for decades so this could not be a real excuse. A warning in the manual to use good quality batteries is enough to avoid claims.

or?


texts: Passing copper traces between two THT pins

texts:
I've been working on a small project as an extra activity for a basic digital electronics course I was taking, in which I had to design a TTL-logic based PCB, and etch it. I've been using Ultiboard 11 as a tool in developing it.

Due to limitations of our class supplies I am required to fabricate this with only one copper side. The other side would contain  This had caused one of the connections to not route as there had not been a path that Ultiboard had been able to autoroute.

However, using the "follow me" tool, I had noticed that Ultiboard would allow a trace between two IC pins as shown below to complete my currently un-routed net. This trace, which autorouting had apparently not yielded, had to pass between two THT pins on a 74LSXX IC, with the traces on the copper bottom layer (which will be soldered by hand).

The PCB would pass a design rules check with this trace, and would report in the connectivity check as successfully connected. However, due to Ultiboard not routing this automatically I fear that there is some sort of consideration that I must take here (other than careful solder practice).

I have roughly 16 mil clearance around the trace due to the pin spacing of the IC, with the trace itself also being 16 mil thick as it passes here. It is used for a TTL logic high/low signal. Switching speeds are not a consideration for this circuit.

The traces are 24 mil thick elsewhere.

Is this trace going to be something I need to take special considerations with?


texts: Documenting Digital Design - Schematics and Figures

texts:
I'm working on a small digital design using a Xilinx picoblaze softcore processor, and I'm finding that producing schematics of acceptable quality to be frustrating and time consuming. I've attempted to shoehorn previously drawn schematics (From LTSpice, or Eagle) into documentation, but the results look fuzzy or terrible.

I've been using LibreOffice Draw, with subpar results - because the drawings do not contain any information about connections, having to propagate a small change through all items is really frustrating. For example, if I want to add a port onto a part, but that part appears multiple times in my schematic, I have to add them to every instance by hand.

Similarly, when deciding the format of my wires and bus lines, perhaps I'd like the wires to 'jump' when not connected to another line? What if I'd like to add a bubble to indicate connections instead? These items must all be added by hand, which is ridiculous.

I'm sure something like this could be done with LaTeX, but I'd like the feedback of being able to look at my drawing as it is being built, and I need to convince other people who are working on this project to use similar tools, and not many people are willing to undergo the learning curve of LaTeX just for this purpose.

I've tried Inkscape and Dia and found them to be lacking, I've used LTSpice, but that's for SPICE and not digital schematics, and the diagrams are not very appealing anyway - a similar argument for EAGLE schematics.

Is there a better way, something that I'm missing or not considering? I've just begun examining Electric VLSI - it seems to be a much better fit, but still rough around the edges.

Does anyone have a good suggestion?
Thanks!


texts: Amplifier Current Noise Imaginary Impedance

texts: Does the current noise spec of an amplifier need to be multiplied by only the real R component of impedance on it's input or the total impedance? Would increasingly larger inline capacitor values result in higher output voltage noise (current noise transformation through C)?


texts: How do variable-frequency drives pass UL 508c failure of components testing?

texts:
Every 480V variable frequency drive I've had the pleasure of dissecting has had two DC capacitors in series across its DC bus, each rated for ~400VDC. UL 508c testing as executed on one of my recent products requires that all components whose failure to short could cause damage be evaluated. At the time we had a single DC bus cap rated for 1200V. When that cap was shorted for testing, the full DC bus was placed across two diodes, which caused flame to escape the box.

To solve this, we had to put two capacitors in series across our DC bus, each rated for the full DC bus voltage. Obviously, drive manufacturers don't do that. If any one capacitor in the drive shorted, you'd have a ~650VDC bus across a ~400VDC cap. So how do they pass the tests? Does the cap pull enough current that the fuses open before the cap ruptures? Is this predictable by the surge rating of the cap? Or perhaps the cap ruptures, but the box is designed in such a way as to contain the flame? Or do they simply not run this test, and I'm misunderstanding something?


texts: Microcontrollers: What to do with unused non-IO pins?

texts:
There's plenty of information on what to do with unused IO-pins on a microcontroller. You can set them to a floating output, ground them, or pull them up to Vcc or down to ground. However I can't find any information on what to do with non-IO pins. Do the same rules apply to those, or can they simply be ignored when they're not being used?

EDIT: Sorry for being unspecific. The microcontroller I am using is a Microchip PIC18F4550, and it has a Vusb-pin (non-IO). I was looking for a general answer for how to treat non-IO pins, but I guess it's specific to the individual pins.


texts:
I've connected various transformers to a circuit (one at a time) in reverse (power supplied to secondary) and I measured the voltages at both windings and found ratios very different from the ones announced by the manufacturers.

Isn't the ratio supposed to be maintained no matter the input voltage and/or the input side ?

Added:
I've also tried supplying power directly to the primary and measuring voltage at the secondary but I NEVER got the manufacturer's voltage and thus ratio:
Block VB 2.0/1/24 : 229>39,8 VAC
Block VB 2.0/1/18 : 229>30 (& 310mA = 9,3W !!)
Myrra 44127 2x6=12 : 229>10,6
Myrra 44131 2x18=36 : 229>45,4

How is this possible ?


texts: New C++ (C++11) and embedded electronics

texts: I wonder if the new C++ (which called C++11) works well with the embedded electronics and programming them. Do the new features fit well if working with uC? Like R-Values and so on? Or should be restricted with the traditional and old-style C++?


texts: A simple clarification on latches and flip-flops

texts:
Here are two representations of a gated SR latch (first one from my book and the second one from Wikipedia):

The part I don't understand are the S and R inputs, why are they reversed in these two pictures?


texts: Error in programming STM32F4 Discovery with IAR?

texts:
I program STM32F4 using External Interrupt, and there is an error below:

Error[Li005]: no definition for "SYSCFG_EXTILineConfig" referenced from C:\Users\AnhDoan\Desktop\STM32\IAR[GPIO LED_Blink_Freq_Button\Debug\Obj\main.o]

Error while running Linker.

Code:

>     /* Traffic Light: LED13 for 10s, then LED14 for 5s, then LED15 for 10s Press the button: switch to the next LED immediately (order:
> LED13->14, LED14->LED14, LED15->LED13) Avoid pressing too fast
> */
>
> #include "stm32f4xx.h"
>
>
> GPIO_InitTypeDef  GPIO_InitStructure; TIM_TimeBaseInitTypeDef
> TIM_BaseStruct; EXTI_InitTypeDef EXTI_InitStructure; NVIC_InitTypeDef
> NVIC_InitStructure;
>
> void GPIO_Configuration(void); void TIM_Configuration(void); void
> EXTI_Configuration(void);
>
> int main(void) {   GPIO_Configuration();   EXTI_Configuration();
> TIM_Configuration();   while(1)   {   } }
>
>
> void GPIO_Configuration(void) {
> RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);
> GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15;
> GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
> GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
> GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
> GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;   GPIO_Init(GPIOD,
> &GPIO_InitStructure); }
>
> void EXTI_Configuration() {
> RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);
> RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);
>      GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
> GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
> GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
> GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
> GPIO_Init(GPIOA,&GPIO_InitStructure);
>      SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOA, EXTI_PinSource0);
>      EXTI_InitStructure.EXTI_Line = EXTI_Line0;   EXTI_InitStructure.EXTI_LineCmd = ENABLE;
> EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
> EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
> EXTI_Init(&EXTI_InitStructure);
>      //Add Interrupt (IRQ) to NVIC   NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn;
> NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
> NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
> NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
> NVIC_Init(&NVIC_InitStructure); }
>
> void TIM_Configuration(void) {
> RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);
>      TIM_BaseStruct.TIM_Prescaler = 21000-1;               //0.5s   TIM_BaseStruct.TIM_CounterMode = TIM_CounterMode_Up;
> TIM_BaseStruct.TIM_Period = 2000-1;   TIM_BaseStruct.TIM_ClockDivision
> = 0;   TIM_BaseStruct.TIM_RepetitionCounter = 0;
>      TIM_TimeBaseInit(TIM2,&TIM_BaseStruct);
>      TIM_Cmd(TIM2,ENABLE);
>      NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;   NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x01;
> NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x00;
> NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
> NVIC_Init(&NVIC_InitStructure); }
>
>
>
> #ifdef  USE_FULL_ASSERT void assert_failed(uint8_t* file, uint32_t line) {    /* User can add his own implementation to report the file
> name and line number,
>      ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
>
>   /* Infinite loop */   while (1)   {   } }
> #endif

Can you please tell me what is the problem and how to fix it (in detail) please. I checked but cannot find any error in the code.

Thank you so much.


texts: Creating a microcontroller circuit board

texts:
I don't know whether this is the correct forum to ask this question. And knowing Stackexchange I know that this question might be downvoted and closed for being too broad. I just want to make sure I tried everything and sometimes someone in this group has done something similar and might be able to help.

My background : I am a developer and during my free time I used to dabble in electronics. I have created many circuits with Arduino and Raspberry. Recently I created an IoT setup with some 9 sensors, all of them sending data to a server where lot of visualizations and analytics are done on the data.

After the IoT project, my employer asked me to replace the Arduino I have used with a custom built board(By custom built, they want a board which I have designed and not replacing arduino with a beaglebone). The board should have a microcontroller, battery, Wifi module and some sensors.

Since microcontroller is the main component in a circuit, I thought I will start with finalizing the microcontroller. Following are the steps I have followed :

Read wiki page of Arduino's ATMega328P
I didn't understand a single word of the specifications in the wiki page
Tried to read the datasheet of ATMega328P
I didn't understand a single word of this document either.
Check the schematic diagram of Arduino Uno
I could understand some of the connections and co-relate it with the datasheet. But I still couldn't understand why there would be a 1K resistor instead of a 2K resistor. I think that knowledge is required for designing a board.
Google how to select a microcontroller.
This did give me some ideas. But I could not even complete the first step of this link. I could not complete because I don't know what I2C or SPI etc are.
I asked my colleagues. They don't know.
Finally I decided to start learning electronics from the basics and came across a suggestion to read the book "The Art of Electronics" in this forum

Asked by @Transistor in the comments

  Can you edit your post to explain what the advantage is for the employer? Is it, for example, that the prototype is a bit messy and amateurish looking and a PCB would tidy it up? Are you going to sell many devices, etc. Is cost an issue? Does it need a case? Domestic / commercial / industrial application?

The advantages for the employer

The current design is messy(because of the breadboard) and the pin connection might come off
No built in battery for arduino. So power cables had to be provided for each arduino. So new design should have built in battery.
The board, breadboard together take some space. They want a compact item.
No professional support for arduino boards.

Cost is not an issue.The design won't be sold mostly, but will be used within the organisation. The design should have a case. And it will be used for industrial purposes.

tl;dr -> Is there a way a dummy in electronics can create a microcontroller circuit board? Any suggestions are welcome.


texts:
This is a question related to What makes primary batteries leak on very deep discharge?

What are the dangers of deep discharging a cell or battery? I've seen a LiPo battery getting puffy most likely because of deep discharge, so I'm curious if there are safe cells. E.g. does a 0 V NiMh cell pose a danger? I'm aware that you most likely destroy your secondary cell by discharging it really deeply.

Are there safe or unsafe battery or cell technologies, either primary or secondary, in respect of deep discharging? Can a circuit without battery protection mechanisms like a joule thief make cells pop, heat, or burn?


texts: Create time counter with display with capacity for several hours

texts:
I am rather new to this and as part of a hobby project I'd like to end up with a simple display showing a time counter. Starting at 0 and going up from there, being able to support several hours (so showing seconds tick by, then minutes and finally hours).
So maybe have six 7 segment displays, counting up.
This would be powered 'from the wall', after transforming the voltage into the fitting value.

I have seen some circuits that use 7 segment displays along with 555 components to create some sort of timer circuits but they seem quite complex in terms of size and component number.

Is there a way, perhaps using some more advanced/complex components, that I could achieve what I want?

I'd like to avoid overly complex circuits that depend on precisely measured resistors and capacitors to create counters that tick with the rate of seconds.


texts: Could electromigration cause a short circuit in a PCB

texts: Is it possible that electromigration cause a short circuit in a PCB? Theoretically  due to chemical potential difference between gold and nickel (1.68 V) it's known that metal ions can penetrate into the isolation and form a bridge. Is that really a practical threat and such a process is really causing short circuit in PCB devices? Is that process occurring only when the device is turned off? Could that make a short circuit between two close pads of a component for example a smd capacitor 0603?


texts: Outputting 2 different voltage with one power supply

texts:
I'm wondering if it is possible to output 2 different voltage with one power supply (a 3.7V Li-Poly Battery) by placing 2 DC Boost converter in parallel?
The schematic is as shown:


texts:
This is a problem which was asked in paper recently. The final answer they gave was option(A).
Since, in frequency domain we can multiply signals. I assumed option (A) and started drawing signals ahead. Is my beta signal wrong ? I cannot proceed further from that part as it will require alot of calculation and I am afraid this is not the right way. I am not looking for solution here, just guide me the way to solve this.


texts:
So I have to do a simple 4-bit modulo 2^n -1 parrallel prefix adder. I've actually made a working one, but not modulo. Now I have a trouble with transforming it to modulo one. This looks like this:

This is Slenskys PPA. Now I know that this cout has to somehow get back to the beggining of this adder. My lecturer gave me this article, where this schema is presented:

I know that those diamonds are just simply XORs. But now I am really confused. I spent a few hours figuring out what are:

Those black dots. I mean are they the same dots as those which appear in PPA structure? If yes (as I suppose) what 2 things go into them? (or pairs of things)
This cout thing. I know that it is the last wire that is made from that last pair of AND and OR but then it goes to the beggining and there appears the text cin. What does it mean? Does it go with cin (I mean c0)? Or what?


texts: I have an Altium display on the PCB editor which shows all layers but the one selected as black. I have tried ctrl-s, the mask level and clear. Nothing seems to help. Any other suggestions?


texts: Passive RFID with small size, light, cheap and range in meters for a reader

texts:
I'm a software guy so a bit on deep waters here so I thought I'd ask here. :-)

I'd like to understand if it is possible to have an RFID tag with the following properties:

weight: a few grams,
size: around 5mm in diameter, length can be a few centimeters
price: as cheap as possible
range: a few meters or more

A person would then have a reader and walk around to find the items that have the tags on them getting a sound when a tag is in range or even better knowing somehow how close an item is.

Is this feasible with RFID? If not, where does it break?

Is there a better technology to use? I.e. have some kind of small and cheap "thing" to put on items that later can be used by a reader to find them?

Thanks in advance!


texts: What is the difference between Vio and Vcc in an electronic circuit?

texts:
Can someone please explain the difference between Vio & Vcc and what do they stand for ?

Edit: Modified my question based on the first comment.


texts: Complexity involved in building a single board computer

texts:
Our high school has tasked my and a friend of mine with with building a web connected controller for a hydroponics system. The school has budgeted 5k for us to spend as we like, and we are intent on making our own single board computer (we know this is way overkill) based on the TI AM3874. We both have experience making custom pcbs with AVR based controllers and the like but never with somthing so complex. Additionally we have to have this project completed by late december.

Does this sit within the realm of possibility?
What cad package would be the best? all of TI's reference designs are in OrCAD (we can get the high speed version for ~$500, we don't think Eagle or Kicad will cut it)
What are the pitfalls we should watch out for?


texts:
Regards,

I've seen a few sensors which its datasheet claims to have a better resolution than the mean accuracy.
I understand resolution as the lower identifiable value of the measurement; and, as so, half of it is the lower movement that you can see.

For example, the ds18b20 1-wire temperature sensor:

its 12bits AD resolution are analog to a 0.0625V value, and the typical error is given by:

so, suppose that I need to monitor a liquid that is between 30 and 70ºC; that fantastic resolution a third than the mean error for that gap.

I tend to think that I could extrapolate the mean curve and, in function of the current point, adjust the resolution.

But, in other example, this is the specification values for the BME280 (t/p/h) temperature sensor:

In this case I have a 0.01ºC resolution with a 0.5ºC accuracy (at best); but no error distribution chart.

So.. What it is for!??

Thanks in advance.


texts: How to power 5 x 1.5v dc motors from uk mains

texts:
I’m an art student with little knowledge about this topic, but I’m needing to power 5 x 1.5v dc motors from the same power source, preferably from uk mains.

I have tried using a adjustable mains converter and a daisy chain and connecting them through that. But I’m wondering if that is safe to do so as the motors will need to run for a long period of time.

Thanks


texts: ADC transient malfunction or ESD failure?

texts:
I have a PIC18F46K80 microcontroller. The ADC input is connected with OPAMP TL064I output through a 2.2k resistor and Schottky diodes in the ADC input as in the figure.

I have changed a capacitor C1 in the power supply circuit of this project from 1000uF to 220uF has a voltage of -20V which drives the -12V (VCC-) of the OPAMP.

I have noticed that when the power go OFF while using the 220uF capacitor it discharges faster and the OPAMP output become small but positive (about +300mV) and decay slowly. If the power come back again while this signal (+300mV) is in the OPAMP output (the ADC input); the reading from the ADC gives constant (most of the time is 0) value, despite the signal being 50Hz sinewave.

If I made a software reset or wait for long time before reconnecting the power (until the OPAMP signal become small; less than +200mV, or discharge power supply capacitors by hand), the ADC works properly.

The old design uses a 1000uF in the -20V supply (which discharge slower than the 220uF), and when the power go OFF the OPAMP output goes negative in very short time.

This didn’t occur in every board that I have tested. It occurred in 4 out of 10 boards.

I have assembled these boards in a small SMT assembly factory in Shenzhen. I have noticed that they don’t have a grounded floor and they have only one reflow oven, so they have to put the assembled board in a metal tray to put it by hand in the oven.

I am wondering if this issue is inherit to the ADC operation when transients occur? (Though there are Schottky with resistor!)

Or, could it be ESD damage caused by poor handling in the SMT factory? (other functions by the microcontroller operate correctly!)

As requested in comments, here is the external MCLR circuit:


texts:
As a continuation to my previous question, is  there a way, in Verilog, to instantiate n times a given module, without having to use n different lines:

myModule instance1();
myModule instance2();
myModule instance3();
...

Can I do "batch" instantiation in Verilog?


texts: Confused about proving series and parallel resistance equations

texts:
I am attempting to read through The Art of Electronics.In the early sections of The Art of Electronics the authors asks to prove the series and parallel equations. I am unsure where to start. I know KVL and KCL, and I know ohms law. I have a suspicion I need to use the fact voltage in and out must be equal in a circuit in order to prove these equations, but after writing them down I am hopelessly lost trying to connect them.

Aside from empirically proving these equations on a breadboard, how can I rigorously prove them mathematically like the author asks for?


texts: I'm looking for a single contact, female connector that I can solder on a PCB and insert components or wires in - exactly what a prototyping breadboard is made of but I want them standalone.


texts:
I am new in VHDL. The code below doesn't work for some reason. The D0 and D1 are switches and when I added the D1 it stopped working. clk_Centi is pointing to an LED.

end if;
end process gen_clk;

    clk_Centi <= clk_Centi_i WHEN D0='0' AND D1='0' ELSE
            clk_Sec_i WHEN D0='1' AND D1='0' ELSE
            clk_Min_i WHEN D0='0' AND D1='1';

end Behavioral;


texts: 8051 MCU with fast entry to ISR implementation

texts:
I'm developing a custom protocol processing device based on MCU. My protocol is somewhat similar to I2C and uses bit-banging instead of hardware implementation. I've done a prototype based on Atmega328P, mostly due to plenty of help online and cheap development boards. When everything started to work, I discovered that I'm not satisfied with the maximum speed of protocol processing logic. Even though most instructions are processed in 1T on Atmega328P, and it has a reasonably fast ISR latency (only 4T), the main problem is a lot of push/pop instructions are added to preserve/restore registers.

Now, I'm considering some other MCU architecture, which will allow me to run my code faster. I hope modern 8051 core based MCU might be an option.

EMF8 for example can run on 50-75MHz, same as ARM, can run 70% of instructions in 1T. Although, it will take 9T+9T to enter and exit ISR, I hope that it may not need to push/pop so many registers, as it can work with RAM directly, without mandatory use of registers (as in Cortex). For some reason AT89 are not even listed on Microchip web site after take over of Atmel. There others available, but I don't know how they can be compared.

Cortex-M0(+) is another option, but there people on the internet complaining about large ISRs latency, even though according to ARM it should be streamlined and efficient. Although it will allow me to run code 3x times faster on 48MHz, it will most likely to suffer from the same issue as Atmega328P, as it had to push/pop lots of registers. I also don't think that I will benefit from 32 bit architecture, as my code doesn't use any math and mostly based on uint_8t types.

I hope people have experience with new 8051s and can provide their opinion.

=== EDIT to provide more details ===

The protocol is synchronous, it uses 2 pins: one for clock, one for data.
ISR is on pin change, however with AVR I can't have separate ISRs for clock and data, as both pins on the same port. I have more logic in ISR to identify which pin has changed.
On 16MHz clocked atmega I'm having 10kbps (kilobit) with full logic in ISR and 50kbps with bare minimum. I established that 25us after pin toggle in master is sufficient for slave to process the change with bare minimum of logic. 10us is not enough, it starts missing clock.
The code is implemented in pure C no ASM. All push/pops are inserted by avr-gcc. I can see in decompile that all registers r18-r31 are preserved/restored.


texts: I'll try to post an image but I think there is some pitting on one of the bars of the commutator and was wondering how bad it was and if it can be fixed.You can see the right side brush looks pretty bad, it still has good length and the spring seems strong.


texts: How do this become a Iref current source?

texts:
It is a Iref current source unit

It is PFET. It is used in one of the data converters block. What is it and how does it work?


texts:
I'm having a hard time finding a regulator that fits these constraints:

High PSRR (>80 dB @ 0..50 kHz), low noise.
Vin = 5.5V, Vout = 5V, IoutMax = 200mA. Dropout voltage preferably < 200 mV.
Managable package size: not smaller than SOT-23-5 or similar. Larger is no problem.
Affordable and available through Mouser / Farnell / Digikey (MOQ <= 10).

I've found a few candidates, but none that tick all the boxes. Can anyone recommend me one?


texts: Will this MOSFET be on under these conditions?

texts:
I'm designing a circuit to control power going to a heater. I'll be using this n-channel mosfet. My intended voltage values are:
1 is at 24 VDC for both circuits.
I want the mosfet to be on when 3 = 3.3V and off when 3 = 0 V.
I'm still pretty new to mosfets and want to make sure this will work before ordering the parts. Any help is appreciated. Thanks.


texts:
I am having issues with JTAG with my Cyclone IV, specifically the JTAG clock. I am trying to change the JTAG clock frequency somewhere, but can't find where this is done in Quartus II.

How can I change the JTAG frequency in Quartus II?


texts: Transformer surge protection with MOSFETS

texts:
I'm trying to come up with a good solution to protect a 48VAC circuit against power spikes from the transformer when the load is suddenly disconnected.
Since I have a bunch of MOSFETs and Zeners at hand I though about a circuit that shorts the supply above an input voltage higher than the zener threshold. Additionally a fuse could be added that will be blown if the overvoltage condition lasts longer than the transistors can handle the dissipation.
Is there anything wrong with that idea?

simulate this circuit – Schematic created using CircuitLab


texts: I understand that if an op-amp has a phase shift of 180\$^{\circ}\$ and a gain of >1 it will oscillate and I'm trying to get an intuitive feeling for how / why. I've read around a bit, but I don't understand why it would oscillate at a phase shift of 190\$^{\circ}\$ and not at 170\$^{\circ}\$. Any explanations or suggestions for further reading would be greatly appreciated!


texts: Placement of RC filter used for slew rate limiting (for EMC)

texts:
I've seen RC combinations used on many circuits now which i believe have been included for slew rate limiting. They usually feed off to a connector.
Do the placement of these matter in the circuit?

So let's say you have a micro with signals feeding off to a connector. Should these filters go near the micro or the connector?

As an example, i know if the RC was the other way around, R close to connector and C to ground after. That would imply they're being used for ESD (dealing with signal coming onto board as opposed to going out), and you would keep ESD components close to connector so they don't couple across to any other lines. Does this apply for EMC in any way?


texts: In Eagle PCB, how can I reuse devices from existing schematics?

texts:
I'm making an Eagle PCB schematic design, a break-out board for the TI cc2540. I have a reference Eagle design with a PCB antenna, and I would like to use that antenna.

Looking at the element "info" for this printed antenna, it appears to be in library antennas, but I can't find this library in the default Eagle libraries, nor can I find it using Google.

So my question is, where can I get this library for my BLTE chip to use a printed antenna?

Edit 1:

If this component is not available through a public library, can I select the element and "export" it so I can use in my own library?


texts:
I had a broken remote for a small RC helicopter that I took the LCD off.

I dont know the size, but I could try to describe the pins and maybe someone could pinpoint what this is.

It has 7 pins, and from the top it is labeled:

BZB (not used)
BZ (not used)
VDD
GND
DATA
WR
CS
LED-
LED+

Just a serial screen? And what are the WR/CS/LED-/+ pins? Thought I could try to hook it up to my Raspberry PI laters if possible.


texts:
This circuit is a protect circuit, and I search the google it seems like Schmitt Triger circuit,but I don't undertstand why should need the D1, and I don't know what's the function of D1.
Can someone help me to undertsantd this circuit.
Thanks


texts: Power management for a bus/self powered USB device

texts:
I'm building a development board similar to the Arduino, with similar power sequencing requirements. It has both DC and USB power support, and it should prefer DC power. The DC input needs to support a wide range of input voltages and regulate down to 5v. I also need a 3.3v regulated output regardless of the power source.

My current solution is rather klunky. I have a buck regulator for the input power, an LDO for 3.3v, and a power switch for USB consisting of an opamp set up as a comparator and a P-channel MOSFET - the circuit used in the Arduino Uno schematic for power switching. I also have a diode on the input for reverse power protection, and a polyfuse on the USB power for current limiting.

All of this works, but it's less than ideal - it takes up a lot of board space, requires a large BoM, and is moderately expensive. I'd really like a more integrated power solution, and it seems like this ought to be a fairly common task, but I can't find anything that seems suitable.

Can anyone recommend a solution that incorporates at least some of these functions into a single device?

Edit: Here's the schematic for the current power subsystem:


texts: What sensor to use for sensing azimuth & altitude of satellite dish?

texts:
Instead of using a motor encoder, what electronics sensor I could use to know the position of a satellite dish? In this case will be the Azimuth and Altitude of the dish (2-axis).

Magnetometer, Accelerometer or Gyro?
any particular model I could get in eBay or Sparkfun?


texts:
Let's consider this circuit:

and suppose that the capacitor C1, charged at the input voltage Vin, at time t=0 is connected by the switch to the virtual ground. Assume also that C and C0 are initially discharged.

First question: How does the book I'm reading show that:

Second question: If C1 has an initial voltage vin, how can the switch modify the voltage of C1 to the virtual ground? I know that the voltage across a capacitor cannot change instantly.

Thanks


texts: MOSFET Switching without gate voltage / LED Strip

texts:
I have ordered logic-level MOSFETS of the type IRLZ34N (for the sake of working on a Raspberry Pi) but I have problems in Wiring it up.
I have so far connected:

+12 to the +12v lane of the switch
FET Drain to the blue color of the switch
FET Source to the negative terminal of the lab PSU
FET Gate to GPIO pin

My setup is comparable to this diagram:

Apart from me having only wired one color, not three and not using TIP120 but IRLZ34N. Same pinout (Gate/Drain/Source and Base/Collector/Emitter, read from front left to right)

However, the LED strip just lights up blue right away. Even with the raspberry pi turned off. Or the Gate Wire removed from the jumper cable (i.e. 100% sure that there is no voltage on gate)

Where did I go wrong?


texts: Mosfet for switching a step-down for a 12V fan

texts:
I'm working on a circuit to control a 12V 4-pin PWM fan from an Arduino (that bit is working), and from a source of up to 42V.

Turning the fan off is what I'm having a problem with. I know some 4-pin PWM fans turn off when there's no PWM signal (type B & type C) but the fans I have must be type A as they run at minimum speed when there's no PWM. Given that I might only be able to get Type A fans, I'd like to have an option to turn the fan off via mosfet or similar.

The best 12V step-down that I can find seems to be the Pololu D24V10F12 but that is only rated up to 36V (and 1A), but it does also have an enable pin which solves the turning-off problem.

Although that will probably be fine, ideally I'd also like to have a footprint on the board for something that will work up to 42V (from solar PV), and it looks like Pololu have/are going to discontinue their older model D24V6F12 which goes up to 42V/600mA.

The Traco TSRN 1-2450 step down looks like a good but expensive option as it's rated to 42V, but it doesn't have an enable pin like the Pololu does, so I presume I need to add a MOSFET too unless there's a better option?

I've done some reading and am happy adding an N-channel MOSFET to the Traco's ground line (e.g. stp55nf06), controlled directly from the 5V Arduino, but I'm not sure that ground line what I should be cutting. I guess my questions are:

Is that Traco and MOSFET combo a good option or is it overkill?
If it is a good option, can I use an N-channel on the ground line or do I need a P-channel on the input, or can I use an N-Channel on the fan's ground line instead? I'm not sure whether that would mean the Traco still consumes some power.

Thanks and apologies for the long post!
Danny


texts: Powering LEDs + a Controller with Lithium Ion Batteries

texts:
I am trying to build a portable project with some form of RGB LED (probably APA102) and a controller such as a Raspberry Pi. I am trying to figure out what is required to safely power both the LEDs and the controller, but based on my calculations (which are probably incorrect), I am having trouble coming up with a way to do so:

~200 APA102 LEDs (which, at most, should be drawing around 60 mA per RGB LED)
Raspberry Pi (draws at the very most, 500-700 mA)

In total, this comes to ~12,000 mA maximum draw. Now, I am never going to have the Raspberry Pi or LEDs on full blast, so this figure is an absolute maximum. I can pretty easily add in software limits to prevent the LEDs from being completely lit at any one time.

But, even if this drops down to half (6A draw), this is way beyond what a standard AA/AAA battery pack can provide. So, the obvious choice is to use Lithium Ion.

Adafruit has a 6600 mAh battery pack (3 x 2200 mA: http://www.adafruit.com/products/353) with a stated max draw of ~13 A-- perfect for my situation, since I will rarely if ever be at that point. However, the voltage is only 3.7v when I need 5v.

So, then I would need a step up converter, correct? Is there a step up converter that even supports the 13 A peak draw (and probably around 3-4 A constant at very most)? Generally, I've only been able to find 500 mA to 1 A converters in my research.


texts: Need 100base-tx/1000BASE‑TX front end analog scheme

texts: Need 100base-tx/1000BASE‑TX front end analog circuitry, if possible with explanations. I've been searching for a while already but no success. There are only bluffy peices of information. Is it circuitry still proprietary and close? Does somebody find such info?


texts:
My requirements are:

protect the device from surges according to IEC 61000-4-5 Class 2
protect from 400VAC long term overvoltage (working voltage is 220VAC-15%...230VAC+10%)

IEC 61000-4-5 Class 2:

(from this document)

The very first thought was to place a series current limiting resistor and TVS diode:

According to my simulation this working fine: voltage limiting at acceptable level. But there are several drawbacks:

My device is measuring AC voltage so the current, consumed by the schematic will change the measures. My estimation is that everything above 10K will have significant influence on a measure.
Both TVS and resistor will be pretty hot at 400 VAC (my calculation is that even at 50K power will be about 800 mW). The lower current limiting resistor resistance - the higher temperature but lower measuring interference.

Next I thought of PTC resistor in 50K place. This should be perfect for my case but they are appeared to be rare and expensive. All I was able to find is Vishay's TFPT series which will have only 33% more Ohms at 100 C. Definitely not enough.

So I look at the cheap solution. May be I missed a solution worth consideration?


texts:
Programmable Encoder, variable numbers of pulse/revolution!

Hey everyone. I'm doing my final course work and I have a problem with an encoder. Well schematically I have to feedback a frequency converter, that is controlling an induction motor, with this particular encoder. The issue is, I need to use the encoder, I'm forced, because is the only one that university have, but this encoder is incompatible with the frequency converter (FC). The encoder have a range of 50~10000 pulses/revolution, and the maximum number of pulses that the FC accepts is 4096 pulses/revolution. I already did some tests, and there is no way of the FC works with the encoder in this configuration. The encoder is programmable, I could use a cable, that i don't have,  to program it. This cable seems to be pretty simple, it look like a simple usb device (of course there is a software made by the manufacturer).

Finally my question, someone already used that encoder/cable, and know how it works?

I'll try to program the encoder without the cable.!

The encoder


texts: Routing long usb 2.0 high speed traces: microstrip or stripline?

texts:
I'm tweaking the design of my usb-audio device to pass the usb high speed eye pattern test. Due to the positioning of key components, the design features quite long d- d+ traces, 139mm (5.47") to be exact.
In a previous iteration of the PCB, I just routed a differential trace on the default settings and got the usb funtion to work just fine. But, the length seems pushing it to meet usb compliance.
That's why I want to match the impedance as best as possible while keeping transmitted and rf noise to a minimum to keep the analog part quiet.

The pcb is a 4 layer board, the part where the traces are running looks like this:

The d- d+ traces are the red ones running around the yellow +5v power trace, to the usb PHY (USB3320).

I have a few options:

The option pictured below: route the traces as microstrip on the top layer (red) with a ground fill on the layer below it (yellow). This has the advantage of not having to use any vias near the PHY and the tvs-diodes near the connector. Another advantage is that, with my board-house's stackup, this option matches the 90 ohms impedance the best.
The disadvantage is the wierd plane "stick-out" needed to ensure the traces reach the phy without interruption in the ground plane below. I'm not quite sure what the effect of this is. (The yellow plane surrounding the "stick-out" is 3.3v, changing that would be a lot of work.)
Also, my guess is that a microstrip radiates more than a stripline.
Route the traces as microsrip on the bottom layer (green). This has the advantage of having a continuous ground plance (pink, invisible) above it. Disadvantage: I'd need introduce two sets of vias if I were to keep all components on top.
Stripline. Less radiated rf(?). But also again vias, and not able to achieve 90 ohms diff / 45 ohms single ended spot on with the existing stack-up (but within 5% tolerance).

Which option would you think is best?


texts: variable current rating vs fixed current rating from dc battery, does both of them exist or only one

texts:
I came across batteries with mAh rating, which says mA amount of current can be supplied for an hour; if we pull more power more discharge for less time. Some batteries are rated with voltage and output current; does that mean its current output is  fixed?
For some batteries its output current rating is not mentioned but mAh rating and voltage is specified; does that mean current can be discharged according to the resistance in circuit?

I have a GSM module that needs 9v and 1 amp current to start transmission; it works with 12v 1.0 amp dc adapter but when I use a 9v dc battery with no indicated current rating it starts but turns off as soon as I try to make a call. Can I use a mAh rating 9v battery so that the GSM module takes current as it needs? If not, what can I use to take 1 amp current from the DC battery? Is there a way? I'm not a electronics engineer, I'm a software guy who doesn't know about electronics. I'm working with bus tracking project for my college, but unfortunately I couldn't find help for electronics side.


texts: Is it true that single pole double throw solid state relay will not break before make?

texts: I am trying to switch between two sources with solid state relay, which seems to be more robust than mechanical relay.  But I can't find a SSR that can guarantee to be break-before-make.  The datasheet specs always show some potential overlap between turn-on time and turn off time like below (https://www.mouser.com/datasheet/2/240/lcc110-1546141.pdf).  Does break-before-make single-pole-double-throw SSR exists?  Thanks.


texts: How many horsepower does an alternator take from an engine at different speeds?

texts: I want to know how much horsepower the engine deliver to the alternator at idle rpm,normal rpm and maximum rpm


texts: What's a good EEPROM replacement for a 27C256/29C256?

texts:
I teach a hands-on computer architecture course in which the students burn their programs onto an EPROM with a commerical PROM burner.  The instructions are read by a low-speed TTL computer they build.  I started with the 27C256 EPROM but switched to the 29C256 EEPROM, which has now gotten hard to find.

Can anyone recommend an EEPROM (I'm sick of UV erasers) that would be a good replacement?  Specifically, it should be reasonably priced, reliable, easily available and likely to remain so.  It doesn't need to be pin-compatible, although that would be nice.  I'd be happy with as few as 8 address bits (we use two LS163s for the PC), although I doubt anyone makes something that small.  I also don't care about speed.  Robustness to student wiring mistakes would be great.  (All of the EPROMs have seemed pretty good for this.)  Would the 28C family be a good place to look?

We have an Andromeda Labs PROM burner, which supports lots of devices.

Added detail: I've been using the 28-pin DIP package.


texts: Choose the better values (in terms of range) for resistors in this non-inverting op-amp circuit

texts:
These days I'm looking at operational amplifiers; from what I've seen, implementing them in a circuit is quite simple, at least when they are connected as "non-inverting". Determining the gain/amplification is possible by doing a calculation of two resistors, R1 and R2 (should R2 be called a "feedback resistor"?)

(The image is taken from http://mustcalculate.com/electronics/noninvertingopamp.php.)

Let me do a practical example to explain where my questions are:

In my example I choose to implement an op-amp (for example, the TLV272, which is also "rail to rail") as "non inverting amplifier". Then I want to increase a voltage of 10 volt to 15 volt (to be sure, I will feed the op-amp with a power supply of 15 volt). Well: by the equation I have to choose a value of 20 kΩ for R1 and a value of 10 kΩ for R2, which is equal to an amplification of 3.522 dB (voltage gain 1.5).

OK, but I could also do the same by choosing R1 as 200 kΩ and R2 as 100 kΩ, or increase these values until R1 of 200 MΩ and R2 of 100 MΩ (or at the totally opposite: R1 of 2 milliohm and R2 of 1 milliohm): in all these cases I will still have a gain of 1.5, but with totally different ranges of resistors, in terms of values.

I can't understand the criteria (in terms of range) how these resistors should be choosen. Maybe this criteria is related to the kind of signal which the op-amp will have to manipulate on his input? Or what else? And in practical example, which will be the difference if I increase a signal using "R1 = 2 kΩ R2 = 1 kΩ" and "R1 = 200 MΩ R2 = 100 MΩ"?

EDIT:
I've seen that my question has been edited, also to correct my grammar: thank you. I'm sorry for my misspellings, but english is not my main language. Next time, I will do an attempt to be more accurate in my grammar.


texts: Separate power supply for ADXL362 (independent of MCU)

texts:
I am currently trying to connect an ADXL362 accelerometer to an ESP8266 and have them communicate through SPI.

My final goal is to build a battery-powered device that submits motion events (activity or inactivity) through ESP's WiFi connection.

I use components from Sparkfun (Sparkfun ADXL362 breakout board /  Sparkfun Thing (ESP8266))

SPI communication between both components works fine when power for the accelerometer is provided by ESP8266's 3v3-Pins:

However, to extend battery life, I'd like to be able to completely power down the ESP8266 after ADXL362 was set to wake-up mode (waiting for movement). As a first step towards this goal, I'd like to make the power supply for ADXL362 independent of the ESP8266 - my (naive) approach looks like this:

In this scenario, I cannot get any meaningful sensor readings. ADXL 362's status register reads "255" even after a soft reset was issued, apparently indicating a SEU fault.

In both cases two AA batteries are used as a power supply (~3.2V).

All this is leading me to my question: How can ADXL362 be powered independent of an MCU such that SPI communication is still possible?

Currently, I don't use any additional capacitors, resistors or voltage regulators although they may well be part of the solution.
I assume that my source code is not causing the perceived issue - however, I'd be happy to share the code if needed.

Thanks in advance for any of your ideas to help a newbie :)


texts:
I need to install a cable which will come in contact with a central heating pipe. It is 2 core carrying 5V, 500mA DC power to a simple circuit that can't run on batteries. The pipe could get to 82 degC if the central heating is really cranked up.

Now, I can find heat resistant 2 core that will run to 100 degC but it is designed to handle 5 A so it a bit overkill in this situation, it's also twice as thick than I would like.

What are the alternatives for this problem? Could I use normal cable and cover it in something? I've used material sleeves for 300 degC work in the past but I am wondering if simple heat shrink will do the job seeing as it is much much cheaper?

Does anyone have any suggestions or experience that could solve this problem from the wire point of view and not simple adding a spacer between the pipes and the cable (which could get dislodged)


texts: Altium Designer - fabrication output out of scale

texts:
I'm trying to make circuit board using thermal transfer method. When I done with drawing pcb board in project, I saved it as fabrication output (previously setting scale 1.00 in Page Setup), and printed it (also in scale 100%). When I checked the size of tracks and pads, I noticed it's different than on the pcb project. Photos: (don't mind about green colour, it's for my personal use and I really didn't care about rules).

I'm out of ideas. What could the problem be?


texts: How to make AC signal's level proper for MCU input?

texts:
I'm working on a frequency counter coursework, where I use MSP430 MCU. I have to measure
signals with specifications: frequency from 0.1 Hz to 1 MHz and signal's amplitude from 0.1V to 10V. The problem is with signal’s amplitude, I understand that the voltage of 10V is too high and 0.1V is too low for MCU input. Do you have any ideas how to reduce 10V signal's amplitude to 2.7V-3.6V level and how to amplify 0.1V signal to 2.7V-3.6V level? I tried to find information on the internet, but I found just voltage divider, which one isn’t suitable for me. Maybe, are there any chips which one can do this function?


texts: How to strip wire using Wire Wrapping Tool from OK Industries

texts:
For learning wire wrapping, I have a wire wrapping/unwrapping tool from OK Industries (HW-UW-3C) and some 30 AWG wire wrapping wire.

Is it possible to use this tool to strip the wire?


texts: How can I reduce power consumption of my device?

texts:
What are some proven and effective ways to reduce overall power consumption of a given circuit?

Things like:

Choose efficient, modern components;
Use high-efficiency components over lower-efficiency equivalents (at possibly higher cost)
Don't overbuild: if a design calls for an indicator light of a given brightness, don't exceed the spec
Take advantage of the sleep function of a microcontroller.

Are excluded, because they should be a given. I'm looking for slightly less obvious ways, or "tricks" that professionals have used when power is precious (like on a satellite or rover). Also, design changes like going from direct-driving a quantity of LED's to multiplexing them instead.


texts: Low resistance current limiting on GPIO pin

texts:
I'm trying to find a good solution for protecting the GPIO pin of an ATmega32u4 in short circuit conditions. Normally I would just use a simple resistor but that isn't the best option for this use case.
What the circuit should do is generate a Wiegand signal for which one data line looks like this:

That is: the signal line is normally at 5V, but when sending a data bit the signal is pulled to ground for somewhere between 30-200μs after which the signal should be high again for at least 1ms. So not really a high speed signal.
The electronic circuit I currently have looks like this:

The ATmega chip produces either 5 or 0 volts at the output of a GPIO pin, which is now current limited by R1. Then it goes into the harsh outside world with a cable of up to 100 meters in length. After which it enters an unknown circuit which should read the wiegand signal. Since wiegand isn't defined very well I'm seeing all kinds of different reading circuits. The most difficult one I encountered was a chip with a pullup resistor R3 = 495 ohm, R2 > 500 kohm and Vpullup = 3.23V. Since I'm using R1 = 270 ohm, this resulted in these values when trying to send the signal:
Signal High: 5 - (5-3.23)*270/(270+495) = 4.37V
Signal Low: 3.23*270/(270+495) = 1.14V
Of which the signal low was too high to trigger a low on the input side.
To get the best signal it would be great if I could remove R1, effectively setting R1 = 0 ohm in this circuit (+ the GPIO output resistance). However this would lead to a too large current draw from the GPIO pin under short circuit conditions, which are likely to happen due to wiring with screw plugs.
From the ATmega datasheet, the absolute maximum sink/source current on a GPIO pin is 40mA, let's say 35mA to be on the safe side. Furthermore from the "I/O pin Output Voltage vs Source Current at 5V" graph from the datasheet we can find that the GPIO output resistance is about 40 ohm. So I'm considering these options to limit the current:

Keep using a simple resistor with the lowest possible value. I.e. 5V / 0.035A - 40 ohm = 103 ohm -> 110 ohm. This will get the low signal in the example circuit to 3.23*150/(150+495) = 0.75V. Still a bit too high for my liking.
Use the smallest PPTC resettable fuse I can find: the Littelfuse zeptoSMDC0015F. With an initial resistance between 10 and 60 ohm and a hold current of 15mA. Although time to trip might be large and resistance increases if it's getting hot which might happen in a server room.
Use a push pull digital isolator with short circuit protection like the MAX14930AASE+, which has ESD protection built in as added bonus but does cost much more than a resistor (€2,51 for 1)
Use a bidirectional current sense amplifier like the INA2181A1IDGSR. With the added benefit that I can inform the user that the output is in a short circuit state, but with the downside that I need to continuously monitor the output of the ic at an analog input of the ATmega chip.

What do you think is the best option? Are there other options I missed? Or shouldn't I worry about short circuit conditions and just use a small resistor (e.g. 47 ohm) as said here?
--EDIT--
Based on your suggestions I'll probably be using a circuit like the one below. This also allows the B GPIO pin to be used as input such that the circuit can both be used for input and output wiegand signals.


texts: I'm trying to create a transistor logic OR gate for a key chain, it was supposed to work with two buttons, but just a light touch on the button contacts light up the led brighter than when pressing the buttons, why is that? skin resistance should be larger than pressing the switch


texts: 2 cascaded transistors- where is Vout of a transistor when there is a shorted collector resistor?

texts:
I have circuit drawn in AC, they were 2 cascaded BJT transistors, and I have changed them to the hybrid pi model. I wish to remove the source and load in order to write a general gain equation for each hyrbid pi model itself, so I can re-draw them both as amplifier models.

In order to do this, I need to know across which element is Vout for transistor 1?

The upper image shows the original circuit, I know that the DC VCC is now set to zero therefore ground.

I know that in a figure "Vout" will be where ever they have indicated the name with respect to ground. It appears to me that Q1 Vout would be zero if Vout is from the collector node to the ground as they are the same node

1) When cascading is the second transistors Vinput = the first transistors Vout? (this is my hunch but I am not convinced)

2) How do I find Vout in this example?


texts: Ambiguous Lead Exposure in USB Audio Interface

texts:
I recently purchased a midtier USB audio interface which I found this warning. Would it be safe to assume that the product just uses lead solder? I know there are sensitive analog components here -- if they didn't use leadfree solder is it due to a design choice for audio applications or just because they don't care about ROHS and the European market. From I understand, lead solder is better understood but for most applications, they are equivalent functionally (minus operation in space)?

I am interested if anyone from industry has input on the design choices of lead vs lead free solder.


texts: Amperian loop to measure solenoid's magnetic field

texts:
My textbook proves the formula \$B =\mu_0In \$ for a solenoid by taking a rectangular Amperian loop as shown here:

The problem I see with this though is that it only takes into account the contribution of the current going out of the page since the loop only surrounds one side of the solenoid. If I were to take an Amperian loop along the other side only, then the same result would hold: \$B =\mu_0In \$. Shouldn't these two magnetic contributions then superimpose to create a magnetic field, \$B =2\mu_0In \$ within the solenoid?


texts:
Most cashless payment systems using RFID seem to use HF (13.5MHz) tags. My questions are:

Why do RFID wristbands used for cashless payments use HF over LF transponders? Some access control applications seem to use LF transponders (tags) and I would have thought that the use-case for cashless payments (proximity of access card/wristband to a reader) is similar.
There are a multitude of standards for contactless ICs:

ISO14443 for proximity contanctless cards [even within this, I
believe there are variations.]
ISO15693 for vicinity contactless
cards
ISO18000 set of standards for RFIDs EPCglobal Class 1 Gen 2
(=18000-6C)

Would I be right in understanding that for cashless payments using RFID wristbands, I should be looking at ISO14443 compliant tags (i.e., HF tags that have a range of ~10cm)?
Some existing cashless payment systems (for example, the one described in this example) seem to require a "double-tap" - once for reading wristband data and the second, for writing back (balance amount). Is a double-tap unavoidable?

EDIT: Some over-zealous moderation has resulted in this question being put on hold. I had done my research and had asked very specific questions, each of which could have been answered by someone knowledgeable in the field, with a sentence or two, so I don't understand the rationale for moderation. Luckily for me, a kind soul answered my questions just in time. Thank you Nils!


texts: Measuring phase shift between current and voltage with microcontroller

texts:
I am trying to understand how this design is used to measure phase shift between current and voltage of an AC signal. From my understand there should be a PWM signal generated on the output. Resistors R3 and R4 are there to drop the 12 V output of the OP amp to 5 V. Resistor R2 is limiting the current through the diodes D1 and D2. However, I do not understand how the voltage drop on R1 and R5 is phase shifted by the same phase as the current and voltage of the source V1. Can someone please explain that?

simulate this circuit – Schematic created using CircuitLab

UPDATE: Schematic has been corrected.


texts:
I'm doing something where I'd like to use operators instead of functions with parentheses and I realized I don't know how to do that.  I dug around and can not find a reference that even talks about the difference between operators and functions.  Everything I find simply talks about overloading existing operators.
Browsing the std_logic_1164.vhd source code I noticed the operator function names were all in quotes rather than just written out.  Is that the difference?
I tried constructing a test case, but my VHDL foo isn't working today and I can not for the life of me figure out what I'm doing wrong that it won't even compile.  Seems it's a line with the report statement.  It keeps saying it is expecting an END.  ???  Ok, I spent another 15 minutes on it and found that while assert can be used as a concurrent statement, report can not... duh!
So the test cases work.  2 OR 4 is 6 while 3 OR 7 is 7.
However, when I use the name "Ralph" instead of "OR" I get a compile error, not in the definition, but in the usage.

Error: COMP96_0019: ../../../../SRC/overload.vhd : (30, 20): Keyword 'when' expected.

So are we indeed not allowed to create new operators?  I suppose if it is not used carefully, it could create problems in programs that worked fine until a signal name was usurped by an operator (although that is always possible with functions) but moreso with the tools.  After it parsed Ralph, it complained that only "when" is allowed, but that should not be a hard issue to deal with I would think.
-- overloading test

library ieee;
use ieee.std_logic_1164.all;
Use ieee.numeric_std.all;
--use std.textio.all;

ENTITY Func_Test IS
  GENERIC (
      OutWidth  : positive := 1
    );
  port (
    Din         : in    unsigned (17 downto 0);
    Dout        : out   unsigned (53 downto 0);
    Sample_En   : in    std_logic;
    Clk         : in    std_logic
    );
end Func_Test;

ARCHITECTURE behav OF Func_Test IS
  signal temp1, temp2 : integer;

  function "Ralph" (Left, Right: integer) return integer is
    variable L : signed (31 downto 0) := to_signed(Left, 32);
    variable R : signed (31 downto 0) := to_signed(Right, 32);
  begin
    return to_integer(L or R);
  end function "Ralph";
begin
  temp1 <= 2 Ralph 4;
  assert temp1 = 6 report "2 OR 4 /= 6! " & to_hstring(to_signed(temp1, 32));

  temp2 <= 3 Ralph 7;
  assert temp2 = 6 report "3 OR 7 /= 10 " & to_hstring(to_signed(temp2, 32));
END behav;  -- Func_Test


texts: Why does this insulator separate two conductors with equal voltages?

texts:
Here goes a view-from-below picture of a 3 kilovolts DC railway catenary

Here B is a suspension cable, C is a two-stranded contact wire - one which the train pantograph touches. Between B and C there's a thick jumper cable that is attached to both B and C. Such jumpers are installed every several dozen meters. Also not shown in the picture but there're hundreds of pieces of thin of wire located every several meters that are attached to the suspension cable, hang down to the contact wire and hold the contact wire at exactly the right height above the rails.

So a lot of effort is made to ensure that B and C have equal voltages at all times.

Now A is a cable that comes from a distribution cable running along the railway. The picture shows how that cable "feeds" energy into the contact wire. Such "feed" points occur about every kilometer.

So the "feed" cable A comes from the distribution cable and is connected to the jumper that is in turn connected to both the suspension cable and the contact wire. Clearly A, B and C will have the same voltage on them.

Finally there's that huge insulator. It separates A from B but both A and B have the same voltage so they could have been connected directly without any kind of insulator.

What's the use of that insulator?


texts: pH sensor project: trouble with RF interference

texts:
I built this pH sensor project on a breadboard and I'm having a big problem. The output on the voltmeter is completely erratic, and I'm pretty sure it's due to RF interference. When I connect the probe (via BNC connector), moving the cable or my hands around or just walking around the room causes the readout on the voltmeter to fluctuate wildly.

How can I fix this? I think I must have to do something about grounding the BNC jack, but I don't know how to proceed. For what it's worth, this is the BNC connector I'm using. The probe is the same one used in the first link and this is how things are setup:


texts:
I will come to a question further down, but first a little background
We are struggling with reproducing a nasty bug that we have been getting reports for.
The symptoms clearly show that the RTC (a DS1305) is skipping from November 30 to April 1, the same year (e.g. backwards).
We have received enough reports as to not being able to write it off as a hardware fault or solar flare or other unlikely one-time-error. However all attempts at reproducing this behavior in-house have failed. Even with the exact same hardware and settings as was used by our customer when the error did occur.
Since it doesn't always happen, nor for all devices, it doesn't feel like a software bug. At least not acting on it's own.
Question
Any ideas for how to go about reproducing this kind of behavior, fault-finding methods, what to look for, etc.
Any one else have any experience with this kind of error?
We are aware of one other with a very similar symptom, however unclear if this is related at all.
I know there is a lot of details missing. I can't disclose any source, and simply stating everything I know will be a little to much to type; I can fill you in if you post concrete questions.
Update
Finally!
We have been able to reproduce this erratic behaviour in the lab!
Pressed for time as we are, all our attempts at reproducing was started one or a few days prior to 30/11 to see how it went, and all passed over to 1/12 just fine. It was after that we noticed that all customer devices were started during october.
We can't really work with waiting over a month for reproducing, so we came up with a work-around that to my surprise actually seems to work.
By speeding up the clock!
We have replaced the standard 32.768kHz osc with a 1Mhz signal, and can now reproduce in about a day.
I'll keep you posted as to what we will discover about this.
Thank you all for excellent brainstorming. I appreciate it a lot.
Now, I'm off trying to further trim the reproduction time, and dig out more facts about it.
Solved
I have posted the root cause of this as the accepted answer.
Summary: month value used was not a valid BCD value.


texts: Is there a standard describing the UART data frame protocol?

texts:
The "U" in "UART" stands for "Universal", but I'm having trouble finding any standard that describes the framing protocol that's used in UART; e.g. the start bit, stop bit, parity options, and baud rates that you see in serial communication clients like minicom or putty.

I understand that there are well known conventions for how these things are done at this point, but standards like RS-232/RS-422/D-subminiature don't seem to describe or suggest anything above the physical signaling.

I've also been having trouble finding a specification for the mapping of serial signaling onto the pinout of a DE9 connector which would let UART hardware from different vendors communicate effectively over a common pinout (like a "null modem" connector).

Is it all accomplished by convention (e.g. by the historical dominance of a few bits of a serial hardware in the marketplace such as 16*50s), or am I missing some standards out there? TIA for the insights!


texts: How to repond to a kinetic impact electronically

texts: Say I have a large soft surface such as a jacket and I want to register it getting hit by a paintball from a paintball gun, how would I do that? What type of sensors could I use?


texts: Emitter follower biasing with voltage divider

texts:
I have met a emitter follower design example in the Horowitz-Hill's book (scheme is below):

And I don't understand why the resulting steps is correct:

  Step 1. Choose \$V_E\$. For the largest possible symmetrical
  swing without clipping, \$V_E = 0.5V_{CC}\$, or \$+7.5\$ volts.

  Step 2. Choose \$R_E\$. For a quiescent current of \$1 mA\$,
  \$R_E = 7.5k\$.

  Step 3. Choose \$R_1\$ and \$R_2\$. \$V_B\$ is \$V_E+0.6V\$, or \$8.1V\$.
  This determines the ratio of \$R_1\$ to \$R_2\$ as \$1:1.17\$. The preceding
  loading criterion requires that the parallel resistance
  of \$R_1\$ and \$R_2\$ be about \$75k\$ or less (one-tenth of \$7.5k×\beta\$ ).
  Suitable standard values are \$R_1 = 130k\$, \$R_2 = 150k\$.

So, once again all known values:
$$
V_{BE} = 0.6 V \\
R_1 = 130K \\
R_2 = 150K \\
R_E = 7.5K \\
\beta = 100
$$

My question is about values for \$R_1\$ and \$R_2\$. The maximum current through the divider without connected load is:
$$
I_{div} = \frac{V_cc}{R_1 + R_2} = \frac{15}{280 \cdot 10^3} \approx 54 \mu A
$$

When we connect emitter follower to the divider, there must be a base current \$I_B\$ that is:
$$
I_B = \frac{I_E}{\beta + 1} = \frac{1ma}{100 + 1} \approx 9.9 \mu A
$$

Hence we could calculate output voltage of the divider after connection of emitter follower:
$$
I_{R_2} = I_{div} - I_{B} = 54 - 9.9 = 44.1 \mu A
$$

Hence, we'd get a output voltage from the divider:
$$
V_{div} = V_{R_2} = I_{R_2} \cdot R_2 = 44.1 \cdot 10^{-6} \cdot 150 \cdot 10^3 \approx 6.62 V
$$

So, we would get a \$6 V\$ output from the emitter follower instead of expected \$7.5 V\$.

Could you tell me where I'm mistaken?

P.S.: There is also a screenshot from simulator:


texts: Attitude measurements with digital sensors falling out of synch

texts:
I am just starting to use digital inertial sensors (9 axis: accelerometers, gyros and magnetometers).  Each 3 axis sensor has a sampling frequency I can set so that data goes into a FIFO and I can get 100% of the readings and perform my attitude calculations.

Even if I set up the sensors to the same sampling rate, they will all run at slightly different rates (independent clocks) and will fall out of synch (they run for months at a time, and their oscillators are internal/uncontrollable).

What is the optimal algorithm/solution for updating my attitude when my sensors are FIFO buffered like this and the data is coming in at different rates?

For contraints: I can't use a 9DoF sensor, so I'm stuck using the three independent packages.  If someone suggests synching with a precision clock or something, that is not a solution; just assume that sampling for each sensor is at a regular, independent rate and uncontrollable.  One example device is the L3GD20


texts:
What is the difference between half wave voltage doubler and full wave voltage doubler?
(Using Practical Diode with forward bias voltage Vd)

To be specific:

i)Do the two differ in their principle of working in anyway?

ii)How do the two differ in input/output waveforms?

iii)What is the effect of change of Capacitance values in each of the two cases?

And finally, Which is more efficient and why?(Also if any advantages/disadvantage of either over the other)

simulate this circuit – Schematic created using CircuitLab


texts: Any way to build Analogue Multiplexers using MOSFETs or JFETs or BJTs

texts:
Here's my requirement:

I need an analogue switch that can do SPST/DPST/DPDT with very low On-Resistance (<10mOhms). There would be current flowing through this switch, albeit in the range of a <10mA. This current DOES need to flow across, and hence my understanding is that I can't use any buffered(?) switches. I want the voltage drop across the switch to be absolutely minimal - very critical. Effectively I want the same voltage seen on the input to be present in the output, while allowing a small current to flow through.

The requirement for the very low On-resistance is an effort to keep the voltage errors below 0.1 ppm seen at the output. This is for a precision instrumentation circuit where the switches select various range resistor networks. Currently, these switches are mechanical and the contacts are gold plated. But I wanted to see if I can use solid-state switches in an effort to allow for the instrument to be more automated.

I understand this seems a difficult thing and it might be near impossible, but I wanted to see if anyone had any thoughts.

Here's my question/problem:

A MOSFET Mux seems that ideal candidate and is - except the lowest R-ON I could find was around 250 mOhms. This introduces errors in the range of 2-3 ppm.

And hence the first thing I was looking at was making my own MOSFET Mux using Discrete MOSFETs. The issue I'm having is that I can't seem to find a MOSFET that is 4 pin with a dedicated body-pin. My understanding is that to construct a MOSFET Switch/Mux, you need the body pin of the N-MOS to be connected to VSS and of the P-MOS to be connected to VDD.

I also did have a look at using series JFETs as switches, but they exhibited significant voltage drop across the FET.

Is there a way to construct a MOSFET Mux/Switch with conventional MOSFETs that have their body connected to the source?
Is anyone aware of 4-pin MOSFETs (with source and body disconnected) and if there was any specific terminology I might use to find them?
Is there any other type of FET/BJT that can be used to accomplish what I want.
Is anyone aware of low R-On Mechanical Relays?

Thank you for all your help. Let me know if this is a hopeless endeavor :)

The circuit for a MOSFET Mux/Switch with separate body pin.

Series JFET switch


texts:
I've searched around and found quite a few examples of articles claiming to have extracted firmware from some device using the JTAG interface. I have read further that there is no general procedure for doing this since each manufacturer imposes different constraints and requirements.

So, I have this coffee maker that makes a huge mess every time it is used. I figured I would try my hand at some reverse engineering by dismantling the thing and possible extracting/patching the firmware. After a bit of reversing and analysis on the construction, the overall architecture is really simple. There are a few switches that indicate whether or not the device can safely start brewing, along with a thermocouple for measuring water temperature and a pump for producing positive pressure to get the heated water to the coffee grounds. I could easily throw out the old controller and replace it with my own logic, but I figured I would first try to use the existing hardware since I would otherwise have to reverse the control mechanisms for the included LCD screen and that does not seem very inviting.

That said, the controller I found on the board is the Sino Wealth SH79F1619 - Device Page. From what I found in the datasheet, this device has a compatible instruction set with Intel's 8051 family. I have searched briefly around and found that there are compilers that work with this architecture, so I am not too worried about getting the code recompiled after extraction - but we'll come to that when necessary.

Reading through the datasheet (and very obviously from the board), this device supports the JTAG debugging/programming interface. The only information  I could find related to this venture was that it was possible to do a flash read/write assuming the protection bits were not set upon release. Considering that this device is a basic coffee maker, maybe they aren't set? Continuing on, I found the following statement on page 20 in the datasheet:

  Only after the four pins are inputted
  the specified waveform, the CPU will enter the programming mode

So, what input waveforms are required?

The only other information I could find was (page 19):

  Flash programmer in ICP mode send write/read code instruction to run write/read code

A bit more research yielded that the term waveform was likely not the best descriptor that could have been used since according to the following state machine we simply have to perform a series of register writes to get ourselves to programming mode (page 23):

So, presumably, the idea is that we get first into programming mode via the path outlined above in the state diagram. Assuming we get this far, what happens next? Do we read every single line from flash address 0 down to flash address MAX? How does that work over JTAG?

And does anyone know possibly what this portion of the state diagram is referring to?

This is the actual hardware in question:

Those 4 bare pads to the right of the controller are the JTAG pins.

In Summary:

Any clue as to what kind of LCD this screen is? Generic model/command info?
How can we determine of the protection bits are enabled?
How are commands (like set register IB_CON4 = 0x9H) sent using JTAG?
How do we read the flash once we are in programming mode?
Assuming the protection bit is set, are we out of luck?
Do we just read the entire flash address space and dump to a file?
Once we have the binary file, what do we do next? Write a parser to convert the binary to a readable ASCII?
What is the possibility of bricking the device and/or erasing the current firmware?


texts: How to determine appropriate speaker cable gauge?

texts:
When wiring speakers to a 100W consumer-grade amplifier, how do I select an appropriate gauge cable (for 8-ohm speakers)?

Also, if 14 gauge cable is sufficient, what harm is there in using a heavier cable such as 12 or 10 (other than inconvenience and cost)?

Related: What's the best cable to transfer audio signal?

Semi-related: Any truth behind "multipole" technology in audio signal transmission?


texts: We are powering a circuit with a 12 Volt battery. We have a RF remote controlled Relay to turn the system on. When the system turns on the current draw is 15 Amps and then settles to 6.5 amps. The voltage drop is about 2 volts +- on start up too.(measured using a multimeter). Our problem is the RF circuit is bothered by this voltage drop and starts to act funny and not do what it is supposed to do when pressing the remote buttons. If I power the RF unit with an additional battery everything works fine. My thought is if I can put a cap on the power supply side of the RF unit it will act to smooth out the voltage issue. Can someone please let me know if I am thinking correctly and how I would figure out the correct value Capacitor. This is a small setup so I need to be able to put the cap in tight quarters. I look forward to any suggestions. Thank you in advance.


texts:
Here is a simple example of what been happening to various pcbs when I play with them. I have an arduino powered by USB. Then a 5V and GND connected to a logic level shifter's HIGH and GND respectively. The VCC of the shifter is smoking and is hot. I cant understand why this is happening. I looked at the solder and it looks ok from the top and bottom of the pin. The board seems to work once the rest of the wires are connected. I stopped using it when I saw the smoke as I don't know where to go from here.
What am i doing wrong?

https://www.sparkfun.com/products/12009 is the PCB of the shifter.

EDIT: added schematic from the fritzng
EDIT: The intent was to drop the 5V IO to 3.3V to talk to a ESP8266. I didn't get that far when I saw the smoke.

Circuit diagram of the level shifter:


texts: Xbox one controller rechargeable battery

texts:
I wanna make rechargeable batteries for Xbox one controller.i'm new in this field
So I have some questions

1_The controllers voltage input is 2.4-3.0 volt.
Now is any issues if I use li_ion 14500 battery and a voltage regulator to reduce the voltage to 3 volt?

2_how about 3.3 volt SMD regulator?

3_Can i use a  zener diode to prevent battery voltage drop?

and at the end, if there is any tip that helps me in this project please tell me.


texts:
In another post I ask about an ultrasonic radial beacon finder: Does it exist: 360 degree ultrasonic receiver/beacon combo

Assuming it exists or I can hack one of those together, would it be possible to have the beacon emit multiple frequencies to detect the distance from the base(robot)?

Let me explain better. As the receiver spins in a circle it listens for specific frequencies. Theoretically, the beacon could output 2 frequencies that have different maximum distances.

When the receiver detects the longer range frequency, if it doesn't detect the shorter range one, then the object must be outside the short-range radius.

Ideally, I would like to be able to have multiple radii in 5 foot increments up to 20 feet(ish). The small radii are why I ruled out RF.

So now that my use-case is explained: Do different frequencies have different ranges?

Edit: To clarify Use-case, both the robot and the beacon will be mobile so fixed base stations are not an option.


texts:
I am trying to build a PCB based pulse generator that can produce a pulse with a width of about 100 ns and 500V-1000V peak amplitude to a 50 ohm resistive load. I will use the circuit for burst pulse generation.

I have built one as a test purpose which not as fast as I would like, with IRS2104 gate driver and 2 FQA8N100C MOSFETs. I have used a function generator for logic input. The circuit can generate pulses up to 480 kHz as the propagation delay of the driver is way too high (around 650 ns). This is my first time using gate driver ICs. I found out that IRS2104 is a half bridge 2 channel gate driver based on bootstrap configuration.

My question is: Will I be able to use a single low-side gate driver (like UCC27511A) with a low propagation delay time (typ 15 ns) for burst pulse generation? Is it required to use two MOSFETs and two gate drivers for my purpose of pulse burst generation with this IC, as this is not a bootstrap capacitor based gate driver?

I added two circuit diagrams below.

Fig_1 of the image is the one I have used as the base for the design with IRS2104.
Fig_2 is from the datasheet of UCC27511A which I plan to use for the pulse generator circuit.


texts:
So, I am familiar with what a Gilbert cell is and what it does, but I have looked through all the resources I can find trying to understand it and I just can't wrap my head around it.

Just from looking at it, I can tell it has something to do with differential amplifiers; it looks very much like a long-tailed pair of long-tailed pairs.

It could just be that my brain is fried from working on final projects and final exams, but I can't seem to understand it.


texts: Overvoltage and reverse polarity protection

texts:
There are two well-known circuits well described in the Internet, including this site:

Reverse polarity protection with P-channel MOSFET;
Overvoltage protection with SCR and Zener (so-called "crowbar").

I want to combine them like shown below:

simulate this circuit – Schematic created using CircuitLab

Some considerations:

Polarity and/or voltage of the input cannot change suddenly during operation. It's a standard barrel connector, where a DC power supply is connected. So circuit must be protected against a case where user accidentally plugs in wrong polarity supply, or plugs 24-30V instead of 12V.
D1 and D2 are both 15 volts.
Mosfet's maximum ratings are: max current 74A, max voltage across drain-source  55V, max gate voltage 20V.
Fuse rating is 1.5A
SCR1 is chosen so, that it's I2t is twice more then I2t of fuse. Actually it's Littelfuse SJ6004DS2RP.
Load is actually a quite complicated device, which includes linear regulator (AMS1117), MCU with several input devices (buttons, analog inputs), LCD screen, BT transmitters and a couple stepper motors with drivers.

Will this schematic provide protection as expected, against overvoltage and reverse polarity?
EDITED: Is this a suggested layout?

simulate this circuit


texts: PCB edge connectors for either board to board and screw terminal

texts:
I am at the final stage of design a pcb and I am looking for a connector to power it (2 pins, more would be also ok).
It has 2 use cases:
I could be either used as a standalone product, in this case a screw terminal would be perfect,
or it can be used in a rack, and in this case an edge connector at the back of the rack would provide power.
What I cannot find, if they exist, are two edge connectors of the same "family" or compatible, one to be soldered on a second pcb to accept my board at 90 degrees, and a second to connect the pcb edge to wires possibly with screw, spring...
Current requirements are quite low, a couple of watts at 48Vdc.


texts: 100nF MLCC bypass capacitor spontaneously exploding on 3.3V bus, how does this even happen?

texts:
A 1608/0603 multilayer ceramic chip capacitor was functioning as a bypass capacitor for the 3.3V supply of a InvenSense MPU-6050 6 axis (gyro + accelerometer) MEMS sensor. It somehow exploded forming an open circuit, without damaging the sensor IC or any other component on the board, and without affecting its operation.

Illustration of a typical circuit from the InvenSense datasheet:

Some parts of the ceramic material are still attached to the PCB and bits of the wreckage are scattered all around. The cap was reflow soldered with lead free solder by the manufacturer and the PCB has not been reworked. I am pretty sure that the component was intact when I first got the board.

I am curious about what failure mode this was, and how to prevent such failures in boards of my own design. Is this a common ocurrence in mass production? I thought these were fairly reliable components.


texts: Will connecting two batteries in parallel increase current drawn in simple led circuit?

texts:
I have a resistor diode circuit that I'm powering with a 9V battery. The circuit diagram below is a simplified version of it. The real one has 4 LEDs, 8 resistors.

I want to deliver 30mA to the diode. I had the idea to place two batteries in parallel to increase running time. Will placing two 9V batteries deliver 60mA to the LED? or does the current supplied remain constant and the batteries just drain less?

simulate this circuit – Schematic created using CircuitLab