I would like some information if available about the Arduino boards. I would like to make a 0 to 10V analog DAC using the digital outputs of a board such as the Arduino uno which will be used to control the speed of a dc motor. I understand that the digital outputs are 5 V. My question is about the source resistance of these digital pins. Does anyone know the source resistance of these pins? If so, please share that information.
The question doesn't make sense to me, and I don't see how it relates to the requirement for a 10V analog DAC.
I assume you are talking AVR, but the principle is similar. GPIO pins are generally driven by push-pull MOSFET driver, so I don't see resistance as a relevant value.
It is not specified and varies with source/sink current.
You can infer a resistance from the Oupput Voltage vs Source/Sink current graphs in the datasheet.
R=(Vcc-E)/I
Right... I don't think you'll find a spec for the impedance and it's usually not that important. The datasheet for the ATmega chip (Arduino Uno, etc.) says the "absolute maximum" current is 40mA (a load of 120 Ohms) and since it's "bad practice" to push things to their limit, 20mA is usually the recommended maximum.
The datasheet also says output high is at least 4.1V at 20mA. That implies an output impedance of 45 Ohms or less under those particular conditions.
I measured 27 Ω at 16 mA. But the real issue is that the average voltage of the PWM (from which the 10V is supposed to be derived) is affected by variations in the supply voltage, which can fluctuate by as much as 3 or 4%.
The motor vendor says that the overall source resistance for the DAC circuit for the analog input should be less than 2K ohms and also be able to deliver up to 3 mA. It sounds like this requirement is satisfied. Thank you for your input.
The Uno R3 does not have a DAC so source resistance is irrelevant.
If you are using an Uno R4 then it's a whole different story with output resistance but it still does not matter since it cannot output 0-10V
I think you are misunderstanding how an Arduino would interface to you motor controller.