0
\$\begingroup\$

I designed and had made a custom PCB for a project I am working on. The PCB uses an ATMega328 chip that sits in a socket that is soldered on the board. Currently, to program the chip, I am removing the chip from the socket and putting it into an Arduino Uno to program it. However, this is becoming a pain and I have to be careful not to damage the chip every time I remove it from the sockets. I'm looking to redesign the board so that I can program the chip using Arduino while it is still on the board. I'm not entirely sure if this is possible or how I'd go about doing it, so any help would be much appreciated.

For reference, here is the current design enter image description here enter image description here enter image description here

\$\endgroup\$
2
  • 1
    \$\begingroup\$ It is possible. What exactly is the question? Just have a connect the programming pins to a header for example. Design a better custom board or solder on the connector and glue it in place. For details, we need details too. \$\endgroup\$
    – Justme
    Commented Jul 4, 2023 at 16:39
  • \$\begingroup\$ @Justme Sorry I wasn't clear the first time. I added my current design to the original question. I am using most of the pins of the chip, including the receive pin. I'm assuming I would need to include some sort of switch so I can switch between using the receive pin to program the chip and using it for the actual program? \$\endgroup\$
    – Thomas
    Commented Jul 4, 2023 at 17:27

2 Answers 2

1
\$\begingroup\$

You need MOSI,MISO,SCK, and RESET for the ISP programming interface. Those are on PB3,PB4,PB5, and PC6 for this specific controller, and the board has nothing connected to those but two mechanical switches you can easily set to open.

\$\endgroup\$
0
\$\begingroup\$

You can add a 5V TTL logic UART header.

The problem is the DMX receiver is always forcibly enabled and drives the AVR RXD pin used by bootloader.

You may need to just switch the DMX receiver off with the RE pin, or, somehow switch the AVR RXD pin between programmer and DMX.

But you have a spare IO pin, so you could also just enable the DMX receiver when your program runs, and when it does not run it will be held disabled by a resistor.

Also, just FYI, your DMX receiver does not isolate while they normally should, and has a termination resistor so it must be the last device on bus and there must be no other terminators present even if you have a DMX loop through.

\$\endgroup\$
1
  • \$\begingroup\$ Would using the spare IO pin work because to program the chip it needs to be powered which would then run the program? Also, I don't plan on using this in a dmx chain, thanks for letting me know though. \$\endgroup\$
    – Thomas
    Commented Jul 4, 2023 at 23:48

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.