diff --git a/src/buck_vs_ldo.tex b/src/buck_vs_ldo.tex index a649445..879f2bd 100644 --- a/src/buck_vs_ldo.tex +++ b/src/buck_vs_ldo.tex @@ -38,7 +38,7 @@ \subsubsection{Selection} \end{itemize} \subsubsection{Losses} -In an LDO, the pass element transistor (usually implemented as a PMOS FET or NPN BJT) acting similarly to a variable resistor is actively controlled to maintain a fixed output voltage, regardless of changes to input voltage, load current, and temperature. This variable resistance gives rise to \textit{conduction losses} within this type of regulator. Assuming a fixed input voltage and load current, the power losses in an LDO can be calculated as $P = V_{drop} \cdot I_{out} = (V_{in} - V_{out}) \cdot I_{out}$. Note that the power is dissipated as heat in the pass element - this is why LDOs are often equipped with a heat sink, and attention may be required to the thermal limitations of the chosen LDO. \newline +In an LDO, the pass element transistor (commonly implemented as a PMOS FET or PNP BJT for low dropout performance) acting similarly to a variable resistor is actively controlled to maintain a fixed output voltage, regardless of changes to input voltage, load current, and temperature. This variable resistance gives rise to \textit{conduction losses} within this type of regulator. Assuming a fixed input voltage and load current, the power losses in an LDO can be calculated as $P = V_{drop} \cdot I_{out} = (V_{in} - V_{out}) \cdot I_{out}$. Note that the power is dissipated as heat in the pass element - this is why LDOs are often equipped with a heat sink, and attention may be required to the thermal limitations of the chosen LDO. \newline \noindent Another source of losses in an LDO is quiescent losses - the LDO requires a small amount of current to operate, even when the load current $I_{out} = 0$. This is known as the quiescent current, and is usually negligible compared to conduction losses. diff --git a/src/keyword.tex b/src/keyword.tex index 60e7120..705aa7e 100644 --- a/src/keyword.tex +++ b/src/keyword.tex @@ -37,7 +37,7 @@ \subsubsection{Example Const Use Case} \begin{lstlisting}[caption={Example use case of Const}, label={code:const-use-case}] #include -volatile const uint8_t* const UART_RECEIVE_REGISTER_READ_ONLY = (uint32_t*)0x12345678; +volatile const uint8_t* const UART_RECEIVE_REGISTER_READ_ONLY = (uint8_t*)0x12345678; int main() { uint8_t uart_receive_char = *UART_RECEIVE_REGISTER_READ_ONLY; // Valid C code! diff --git a/src/mutex_vs_semaphore.tex b/src/mutex_vs_semaphore.tex index 54e165f..4bad875 100644 --- a/src/mutex_vs_semaphore.tex +++ b/src/mutex_vs_semaphore.tex @@ -14,7 +14,7 @@ \subsection{Semaphore} \newline Using a semaphore involves two main operations: \begin{itemize} \item \texttt{signal\_semaphore()} - increments the semaphore counter - \item \texttt{wait\_for\_semaphore\_signal(timeout)} - decrements the semaphore count, and if the count is less than zero, blocks the calling thread for the duration of the timeout until the count is greater than zero. + \item \texttt{wait\_for\_semaphore\_signal(timeout)} - if the semaphore count is greater than zero, decrements it and proceeds; otherwise, blocks the calling thread for the duration of the timeout until the count becomes greater than zero. \end{itemize} \noindent A semaphore is often used in the following scenarios: diff --git a/src/oscilloscope.tex b/src/oscilloscope.tex index 21eac56..f6411fa 100644 --- a/src/oscilloscope.tex +++ b/src/oscilloscope.tex @@ -19,7 +19,7 @@ \subsection{Probes} The most basic oscilloscope probes have a ground clip and probe hook connected through a coaxial cable to a BNC connector that connects to the oscilloscope. These probes are designed to have a relatively high impedance and affect the circuit under test minimally.\footnote{In reality, probes often specify the capacitance the probe will add when it is connected to a circuit. This capacitance may have a noticeable impact on the circuit, especially at higher frequencies.} \newline \subsubsection{Probe Multipliers} -\newnoindentpara Often, it is desired to measure voltages outside of the input voltage range of the oscilloscope. As a result, probes often have a ``probe multiplication'' setting (commonly, a 1x or 10x switch) that scales the voltage being probed to a safe level before it enters the oscilloscope. For example, a 10x probe will scale the voltage by a factor of 10 before it enters the oscilloscope. Another advantage of using a higher probe multiplication is that the bandwidth of the probe is increased and the capacitance the probe adds to the circuit is decreased.\footnote{This is because the step down is performed in the probe tip so a lower voltage (and therefore less energy) signal propagates in the coaxial cable and into the scope. This phenomenon is often described as the probe having less effective/apparent capacitance as it pulls less current from the circuit under test.} +\newnoindentpara Often, it is desired to measure voltages outside of the input voltage range of the oscilloscope. As a result, probes often have a ``probe multiplication'' setting (commonly, a 1x or 10x switch) that attenuates the voltage being probed to a safe level before it enters the oscilloscope. For example, a 10x probe will divide the voltage by a factor of 10 before it enters the oscilloscope (the oscilloscope then multiplies the displayed reading by 10 to show the actual voltage). Another advantage of using a higher probe multiplication is that the bandwidth of the probe is increased and the capacitance the probe adds to the circuit is decreased.\footnote{This is because the step down is performed in the probe tip so a lower voltage (and therefore less energy) signal propagates in the coaxial cable and into the scope. This phenomenon is often described as the probe having less effective/apparent capacitance as it pulls less current from the circuit under test.} \subsubsection{Other Types of Probes} Oscilloscope probes typically share a common ground (which is often attached by a clip), which is tied to earth ground for safety by the oscilloscope. This complicates differential voltage measurements, such as across a resistor not connected to ground. Using single-ended probes, two probes are needed---one on each side of the resistor---with the oscilloscope calculating the difference. Alternatively, a differential probe simplifies this by directly outputting the voltage difference between two arbitrary probed signals, saving an oscilloscope channel. \newline diff --git a/src/signalling.tex b/src/signalling.tex index 752dd17..7bf4d5c 100644 --- a/src/signalling.tex +++ b/src/signalling.tex @@ -32,10 +32,10 @@ \subsection{Digital Signalling} \hline & Abbreviation & Name & Type & Bus & Duplex & Driver & Synchronicity & Typical Data Rate & Maximum Data Rate \\ \hline & PWM & Pulse Width Modulation & Single Ended & Point to Point & Half-Duplex / Uni-directional & Push Pull & Asynchronous & 50 Hz & 200 Hz \\ \hline - & UART & Universal Asynchronous Receiver Transmitter & Single Ended & Point to Point & Full-Duplex & Push Pull & Asynchronous & 115.2 kHz & 921.6 kHz \\ \hline - & I2C & Inter-Interconnected Controller & Single Ended & Bus & Half-Duplex & Open Drain & Synchronous & 400 kHz & 1 MHz \\ \hline - & SPI & Serial Peripheral Interface & Single Ended & Bus & Full-Duplex & Push Pull & Synchronous & 24 MHz & 60 MHz \\ \hline - & CAN & Controller Area Network & Differential Pair & Bus & Half-Duplex & Open Drain & Asynchronous & 1 mbps & 8 mbps \\ \hline + & UART & Universal Asynchronous Receiver Transmitter & Single Ended & Point to Point & Full-Duplex & Push Pull & Asynchronous & 115.2 kbps & 921.6 kbps \\ \hline + & I2C & Inter-Integrated Circuit & Single Ended & Bus & Half-Duplex & Open Drain & Synchronous & 400 kbps & 1 Mbps \\ \hline + & SPI & Serial Peripheral Interface & Single Ended & Bus & Full-Duplex & Push Pull & Synchronous & 24 Mbps & 60 Mbps \\ \hline + & CAN & Controller Area Network & Differential Pair & Bus & Half-Duplex & Open Drain & Asynchronous & 1 Mbps & 8 Mbps \\ \hline % The below commented ones aren't important enough to bring up in my opinion. I don't think I'm missing any obvious ones above. % & QSPI & Quad Serial Peripheral Interface % & USB & Universal Serial Bus