EXT connector


HelenF

Very Active Member
Joined
Jun 22, 2013
Messages
615
Location
UK
I drew a new breakout board to fit ED's EXT connectors. This one is focussed on the GPIO pins, with pads for the TV/audio just to help me check for shorts. (The TinyBoB was designed to be suitable for making TV-out cables too, but we have the official TV-out cables now.)

These are milled PCBs, with extra copper on the unused areas, and no plated holes or solder resist. Trying to solder sockets onto that was a bad idea: harder than actually soldering the EXT connector. I tested all the combinations of tracks for shorts, and pushed solder around until it came up clear. You can see my dodgy soldering in the pictures. I'll probably put some Araldite on it once I've checked that all the pins are connected. For now, the Pandora and a piece of breadboard are strapped onto a block of wood so the connector doesn't have much force on it.

The strips of copper on the bottom edges were not useful. I'd probably remove them in the next version.

The board was nominally 0.8mm thick, but came out at 1.0mm, which is about right (lucky for me). I might get some boards made sometime at a regular PCB manufacturer, for the solder resist and plated holes. I wouldn't really want to solder another one like this. (Milling might still be useful for something like the IR project, where there would be a small number of components, all on wires. I don't know which EXT pin would make the best output yet.)

----

Following the instructions here, I configured uart2_cts as a GPIO output and switched it on and off a few times :)

http://boards.openpandora.org/topic/4497-talking-to-the-gpios-on-the-ext-connector/?p=195457

http://bbfordummies.blogspot.co.uk/2009/07/1.html

Is there information somewhere about configuring UART parameters?

And has anyone done anything with PWM? (In the linked thread, Notaz said PWM "Can be enabled as well but they might be tricky to program, as it's a function of general purpose timers, and those can sometimes be in use for other things" and "you'd probably need to write a kernel driver to program the timer and get that PWM functionality".)

board_bottom_136.jpg

board_top_127.jpg

soldered_bottom_230.jpg

soldered_top_151.jpg

ext_5_component.jpg

ext_5_solder.jpg

ext_5_designspark-pcb.zip
 

Attachments

  • ext_5_designspark-pcb.zip
    4.4 KB · Views: 173
Last edited by a moderator:
It occurs to me that I could rearrange things to put in some extra vias, so as to solder the sockets on the bottom side.

----

Modifying the shell GPIO toggle example not to sleep seems to give an output around 5kHz. So looks like I'm not going to get 38KHz bitbang with a shell script, anyway.

while [ "1" = "1" ]; do
echo "high" > /sys/class/gpio/gpio144/direction
echo "low" > /sys/class/gpio/gpio144/direction
done
woodblock_0240.jpg
 
Nice work! Out of interest, how does through hole plating get made?


According to the BoB schematic, on that the GPIO pins go through a voltage translator to take them up (or down) to an external voltage. The UART pins go into a RS232 gizmo that I despite downloading the datasheet, I don't quite understand at present. Those then go on to the RxD and TxD pins of two DB9 connectors with only the ground pin set otherwise, so none of the old CTS or RTS pins etc. are set. I'm afraid my knowledge of RS232 is rather dated, but presumably you can get away with only setting those pins these days.


In terms of configuring them, I've no idea really, but seeing as the UARTs are presented as TTY devices, I'd look into how you set the BAUD rate for TTY devices in Linux, assuming the interface is similar.
 
Out of interest, how does through hole plating get made?
There are electrochemical processes, and other processes which use things like rivets.
In terms of configuring them, I've no idea really, but seeing as the UARTs are presented as TTY devices, I'd look into how you set the BAUD rate for TTY devices in Linux, assuming the interface is similar.
I found out how to configure UARTs here. The OMAP3530 supports a lot of options.http://www.cmrr.umn.edu/~strupp/serial.html

----

I've been adding some new info to the wiki.

I designed another PCB which would let me solder the sockets on the bottom side, but I don't have it yet.

The bash script in the second post is slow because it's a bash script. Writing to "value" instead of "direction" is slightly faster; and doing it in C like:

fd = open("/sys/class/gpio/gpio144/value", O_RDWR);
for (i = 0; i < 20; i ++) {
write(fd, "1", 1);
write(fd, "0", 1);
}
toggles about every 3us (though the first round is always slower for some reason).The problem then is to get accurate delays. Nanosleep doesn't seem to work - it sleeps for about 250-500us.

For the remote control thing, the most promising technique seems to be to generate the 38kHz using a UART; but I still need to get the right delays between the bursts, which can't be done with a continuous stream of characters on the UART because of the placement of the start/stop bits. (The demodulated remote control patterns don't match any valid UART patterns either, so I can't just use a logic gate with two UARTs at different frequencies.)
 
Back
Top