Hi again a question abpout multiple devices. But with this one I have no idea if it is possible at all. So I will have multiple attiny1626 in one system. I would like to have the ability to update the devices without taking them out of the system. And preferably without using jumpers. So when I connect them all to one UPDI line. Would it be possible to program a specific device?
Multiple devices on one UPDI wire
Would it be possible to program a specific device?
One-Wire Enable | UPDI | tinyAVR® 2 Family
UPDI Instruction Set | tinyAVR® 2 Family
without using jumpers.
maybe a multiplexer?
or just have a multi-way programming connection (it's only 1 contact per device) - and manage selecting a specific device externally?
or have a bootloader with some addressing scheme? and/or use one chip as a "gateway"/master to program the others?
I will have multiple attiny1626 in one system
this, of course, is one downside of multiple MCUs. Could it instead be done with a single MCU?
maybe a multiplexer?
It would need to be bidirectional since UPDI is half-duplex. So, an analog switch.
Could I do a resistor in the updi line? 5k or sth? So I could pull the line down with a transistor for each device which shouldn't be programmed
Yeah I think it might work if the number of chips is not too high. Each resistance should be 5k or less, and remember the programmer and each MCU will have to drive all those resistors in parallel so better make sure the parallel resistance is over 400 ohm or so.
And it's better if the transistor pulls up since that is the idle state of the UPDI line. That is, a PNP or PMOS.
I expect some programmers will have trouble, others won't depending on drive strength and other implementation details.
It's more planned as a future feature. Because my master aka programmer might be a raspberry pi. So I thought to adapt the jtag2updi. So I will be able to adapt the drive strength. But in the moment it's more the question if I should plan the updi line or not. The cool thing would be that I could do a web update to all my MCU in system
I expect some programmers will have trouble,
TinyX-OCD (UPDI) Special Considerations | Atmel-ICE
[beginning of last paragraph]
When designing a target application PCB where the UPDI interface will be used, the following considerations must be made for correct operation:
- Pull-up resistors on the UPDI line must not be smaller (stronger) than 10 kΩ. A pull-down resistor should not be used, or it should be removed when using UPDI. The UPDI physical is push-pull capable, so only a weak pull-up resistor is required to prevent false Start bit triggering when the line is idle.
Because my master aka programmer might be a raspberry pi.
The cool thing would be that I could do a web update to all my MCU in system
https://datasheets.raspberrypi.com/rpi4/raspberry-pi-4-reduced-schematics.pdf (grid C5 for "GPIO EXPANSION")
Summary | GitHub - chilipeppr/serial-port-json-server: ...