Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 00:24 28 Nov 2024 Privacy Policy
Jump to

Notice. New forum software under development. It's going to miss a few functions and look a bit ugly for a while, but I'm working on it full time now as the old forum was too unstable. Couple days, all good. If you notice any issues, please contact me.

Forum Index : Microcontroller and PC projects : TZBlox product range priorities

     Page 2 of 2    
Author Message
MicroBlocks

Guru

Joined: 12/05/2012
Location: Thailand
Posts: 2209
Posted: 01:01pm 02 Jul 2013
Copy link to clipboard 
Print this post

John,
  JohnS said   A quibble: you order some of the bits high:low (like B[7:0]) but others
low:high (like B[8:13]) so maybe stick to one order.
[/quote]
You are right the description can be better.
As it is now it gives the order of the bits on the connector from left to right, top to bottom.

[quote]
Are the DATA[0:15] what Microchip call PMD0-PMD15?
[/quote]
Yes correct.

[quote]
Where are PMA0-15? (or PMD0-15, if the DATA ones are PMAxx)?
[/quote]
The address lines are all over the place because they are shared pins with other peripherals. The layout is a compromise as always.
On the PIC32 itself all the pins are scattered anyway and causes almost every project to be more complicated to route then necessary. With this 'pre' organizing you get a simpler layout, and when mounted on your PCB you can still route them the way you want but in a more effective way. This is of course just one way of reorganizing and grouping them, i am open for improvements.
Another advantage is that a schematic can use a MCU32MX795 Blox as a component and build the rest around it, almost mimicking the placement on the pcb.
The reason i choose this layout is that all the mentioned peripherals can be used at the same time, and it is a very divers mix of peripherals, suited for many projects, not all.
Using the pmp address lines would disabled the use of at least 9 serial devices, probably more.
For the PMP i made the layout convenient for the multiplexed solution.
It gives you a maximum of 16 Address and 16 data lines while still having all the other peripherals available at the same time.

Of course they are just labels and nothing prevents them from being used as you wish. There are no components that determine a pins function.

There is not much room for labeling on the board, i might be able to squeeze in a PORT name and number.

[quote]
Is there something to stop it being accidentally oriented 180 degrees around?
[/quote]
Good point, i will see to that. There are now only visual clues, like the big DOT in the upper left corner and all text is oriented one way.
Adding a mechanical stop is very practical. I not really like off grid solutions, so i have to think about it.

[quote]
BTW, to see the multiple functions of pins I refer to Olimex schematics as they show each function by each pin. Such as on PIC32-MAXI-WEB and Duinomite eMega.
[/quote]
I have a schematic with all the pins functions organised, it is still a work in progress and i will use anything to make it better.
I intend to include an alphabetic list and also a block diagram of each peripheral to be able to quickly find the pin you need.
Edited by TZAdvantage 2013-07-03
Microblocks. Build with logic.
 
StoveMan
Regular Member

Joined: 29/03/2013
Location: United States
Posts: 51
Posted: 04:04pm 02 Jul 2013
Copy link to clipboard 
Print this post

Analog Out:

  Quote  What kind of precision would a DAC need for most purposes? If it is for controlling equipment would you still need 12 to 16 bits or would 8 be enough?


I am not the end-all authority on this but I know what works for me.

Analog IN needs high resolution as it generally feeds a DSP. 16 bits is a good place to start. Even feed forward loops wish for more.
Analog OUT resolution for machine control is pretty forgiving. The standard is just now moving from 8 Bits. That gives 256 levels of control over the voltage range (eg 0-10v = ~4mv per step) so a motor would have jumps of say 12 RPMS allowing for a deadband each way. That is sufficient (although noticeable) for most industrial applications. Even hobby drives over 0-5v will work well.
16 bits here (~65,000 discreet voltage levels) is ridiculously overwrought. These chips are used for CD and MP3 decoding to feed the output amps I believe.
Personally I did see the need to move from 8 bits to 12 bits when building my CNC press brake. This used Hydraulic cylinders driven by proportional solenoids with the loop closed by encoders. 256 steps over 8" of travel was not enough.
Analog out also is limited by settling time and inertia which "muddies" the resolution between true voltage steps.

I would wish for a MCU based BLOX which provides 12 bits of PWM (for the hobby servo guys) then a separate tuned RC filter stage with a settling time around 1ms. 4 up would be nice!
Frank
 
paceman
Guru

Joined: 07/10/2011
Location: Australia
Posts: 1329
Posted: 05:02pm 02 Jul 2013
Copy link to clipboard 
Print this post

  TZAdvantage said  
There are now 3 optional subparts that can be left out for very specific solutions.
Second and third are more an "opt-in".
Those subparts are normally included because most are in almost every design.

First, when you want to use the internal oscillator you can choose to leave out the crystal together with 2 capacitors. Bridging two small copper islands will connect those PIC32 pins to the connector.

Second, the AVDD and AVSS are brought out straight for providing your own analog voltage and ground or with small solder bridges can use the on board resistor and capacitor.

Third, there is a resistor and led for a power indicator that can be made part of the circuit by bridging, especially important if you want to run the module from a battery. Here is such a simple modification many modules currently in the market fail.

TZ, I think your concept's looking great - here's another couple of points you might consider.

1. Another common connection is Vusb to Vdd - it's needed e.g. for the Maximite to talk to a PC via usb. A link &/or bridge would be good for that.

2. The LED power/operation indicator might source or sink current. Could you do a link &/or bridge to allow either. I think pin-pads for a link would be better here because different designs might either source or sink and changing projects would be facilitated.

3. On your current layout, where are the pins for MMBasic's two serial ports and I2C port? Are the Tr/Rc and SDC/SCL pins for each close, or on different sides?

4. Access to the Gnd plane is good on the current board but not access to the on-board 3.3v power plane. Without that any power connection must go to a specific pin rather than the power plane. I think MicroChip say this can sometimes cause unwanted loops or interference. A "power-pin/plane" access would also be good for testing/trouble shooting. It would also allow for a good single connection to power from a "stacked" or "alongside" board, rather than via all the separate Vdd pins and it would also free up board space to simplify tracks on the "main" project board.

Greg

 
MicroBlocks

Guru

Joined: 12/05/2012
Location: Thailand
Posts: 2209
Posted: 05:52pm 02 Jul 2013
Copy link to clipboard 
Print this post

Another way of getting a controllable voltage is using a Frequency to Voltage converter. But it is probably more expensive then a 12 bit dac. (I just checked and it is about 3x more expensive and needs more components.)

I have a few DACs on order 6,8,10 and 12 bit versions to sample and try them out.
They have a very small footprint (sot-23 6 pins) and can be controlled via I2C or SPI.
You can also put them in series with some pull up and down resistors to set the right range and make a 24 bit DAC.
These chips have lots of settings, so i guess i have to make sure i have a library function ready to configure and use them. Otherwise it can be a uphill battle for 'young players' as a now famous Australian EEV'er likes to say.




Microblocks. Build with logic.
 
MicroBlocks

Guru

Joined: 12/05/2012
Location: Thailand
Posts: 2209
Posted: 06:00pm 02 Jul 2013
Copy link to clipboard 
Print this post

  JohnS said  
Is there something to stop it being accidentally oriented 180 degrees around?

John,
Ii changed the pins slightly to prevent wrong use.
First i had 2x23 pins and 2x29 pins. That has been changed to 3x25 and 1x29.
I am not sure about the cost effect for the connectors. I guess a 25 pins would be more common.

Microblocks. Build with logic.
 
MicroBlocks

Guru

Joined: 12/05/2012
Location: Thailand
Posts: 2209
Posted: 07:02pm 02 Jul 2013
Copy link to clipboard 
Print this post

Thanks for the feedback Greg.

  paceman said  
TZ, I think your concept's looking great - here's another couple of points you might consider.

1. Another common connection is Vusb to Vdd - it's needed e.g. for the Maximite to talk to a PC via usb. A link &/or bridge would be good for that.
[/quote]
You are right. It can actually be connected to the Vdd permanently as the pin has no other secondary function. Oh boy, I would need to squeeze in another decoupling capacitor.
[quote]
2. The LED power/operation indicator might source or sink current. Could you do a link &/or bridge to allow either. I think pin-pads for a link would be better here because different designs might either source or sink and changing projects would be facilitated.
[/quote]
The led is just an indicator for the Vdd line. A small bridge is between the resistor and the 3.3v to choose if you want to have the indicator. It is not connectoed to any pins of the PIC32.

[quote]
3. On your current layout, where are the pins for MMBasic's two serial ports and I2C port? Are the Tr/Rc and SDC/SCL pins for each close, or on different sides?
[/quote]
I2C2 is the one used by the RTC chip on the color maximite(CMM). I2C1 correspond to CMM pins 12 and 13. Both are on the right side of the module.
[code]
COM1
RX TX RTS# CTS#
CMM 15 16 17 18
PIC32 G15(1) E5(3) C1(6) C2(7)

MCU32.. left topleft left left
G15(8) E5(99) C1(11) C2(9)

COM2
RX TX
CMM D0 D1
PIC32 D8(68) D11(71)
MCU32.. right top right
D8(75) D11(84)
[/code]

Geoff picked some pins that suited his layout i think because the native serial peripherals in the PIC32 are not used. For bitbanging any pin can be used so it is a little unfortunate that they are not right next to each other on my board.
As i want to keep this module generic i did not made it with only the Maximite in mind. I have a carrier board designed that has all the specific Color Maximite components on it, and it was not really hard to do as most of the pins used are located in good locations. I find the need for an exact copy of the Maximite connectors not so important and especially not the Arduino connector. Most shields that would work with a PIC32 based computer use the I2c or serial, allthe other pins are most of the time unused. On a carrieboard it is possible to do it just cost pcb space.

[quote]
4. Access to the Gnd plane is good on the current board but not access to the on-board 3.3v power plane. Without that any power connection must go to a specific pin rather than the power plane. I think MicroChip say this can sometimes cause unwanted loops or interference. A "power-pin/plane" access would also be good for testing/trouble shooting. It would also allow for a good single connection to power from a "stacked" or "alongside" board, rather than via all the separate Vdd pins and it would also free up board space to simplify tracks on the "main" project board.

I prefer a single-point-of-origin Vdd, bottom right was where is started as that was the best location for a tank capacitor. Once the signal traces were done i happen to be very close to the top left corner with the Vdd so choose to add a second pin for it.
The Ground plane is primarily very important for the area around and under the crystal. There are also no signal traces in that area. I could use some advice about power planes as it is not my strongest point.
I have made a screen shot of both sides showing the Vdd(3.3v) in red and Vss in blue.

Top:


Bottom:

Edited by TZAdvantage 2013-07-04
Microblocks. Build with logic.
 
paceman
Guru

Joined: 07/10/2011
Location: Australia
Posts: 1329
Posted: 03:00am 03 Jul 2013
Copy link to clipboard 
Print this post

  TZAdvantage said   Thanks for the feedback Greg.
  paceman said  
2. The LED power/operation indicator might source or sink current. Could you do a link &/or bridge to allow either. I think pin-pads for a link would be better here because different designs might either source or sink and changing projects would be facilitated.
[/quote]
The led is just an indicator for the Vdd line. A small bridge is between the resistor and the 3.3v to choose if you want to have the indicator. It is not connectoed to any pins of the PIC32.
[/quote]
If there was just a pin pad to the resistor it could be used as a programmable indicator a la MMBasic or connected to 3.3v as a power indicator. If there were two pin pads and the other end of the resistor un-connected then it could cover all three possibilities, i.e. power only, sinking current to a pin, sourcing current from a pin.
  paceman said  
3. On your current layout, where are the pins for MMBasic's two serial ports and I2C port? Are the Tr/Rc and SDC/SCL pins for each close, or on different sides?
[/quote]
  TZAdvantage said  
I2C2 is the one used by the RTC chip on the color maximite(CMM). I2C1 correspond to CMM pins 12 and 13. Both are on the right side of the module.
[code]
COM1
RX TX RTS# CTS#
CMM 15 16 17 18
PIC32 G15(1) E5(3) C1(6) C2(7)

MCU32.. left topleft left left
G15(8) E5(99) C1(11) C2(9)

COM2
RX TX
CMM D0 D1
PIC32 D8(68) D11(71)
MCU32.. right top right
D8(75) D11(84)
[/code] [/quote]
Given the compromises needed to allow access to the PIC's serial ports this looks pretty reasonable anyway. The Tr/Rc's aren't together but at least they're on the same side and reasonably close.

[quote=paceman]
4. Access to the Gnd plane is good on the current board but not access to the on-board 3.3v power plane. Without that any power connection must go to a specific pin rather than the power plane. I think MicroChip say this can sometimes cause unwanted loops or interference. A "power-pin/plane" access would also be good for testing/trouble shooting. It would also allow for a good single connection to power from a "stacked" or "alongside" board, rather than via all the separate Vdd pins and it would also free up board space to simplify tracks on the "main" project board.

  TZAdvantage said  
I prefer a single-point-of-origin Vdd, bottom right was where is started as that was the best location for a tank capacitor. Once the signal traces were done i happen to be very close to the top left corner with the Vdd so choose to add a second pin for it.
The Ground plane is primarily very important for the area around and under the crystal. There are also no signal traces in that area. I could use some advice about power planes as it is not my strongest point.
I have made a screen shot of both sides showing the Vdd(3.3v) in red and Vss in blue.

Top:


Bottom:


Electronics in general is not my strong point but it is fun!
Just looking at your diagrams though the two access points (pins) have a nice thick trace all the way between them except for that horizontal section towards the top left - it would be good to be able to maintain that thicker trace. You might also be able to extend the tank cap power pad (bottom right of "top" diagram) a little lower and be able to get a standard 0.1" pin pair teamed up with the current "1-of-4" Gnd pin. Next to the tank cap would be a good place to have a test 3.3v pin and a Gnd/3.3v pair would be even better. It would also mean users could put a Gnd/3.3v test/access "pin-pair" on top of the board if they wanted and leave all the other pin accesses on the bottom - say to facilitate stacking.

Greg Edited by paceman 2013-07-04
 
MicroBlocks

Guru

Joined: 12/05/2012
Location: Thailand
Posts: 2209
Posted: 07:46am 03 Jul 2013
Copy link to clipboard 
Print this post

  paceman said  
If there was just a pin pad to the resistor it could be used as a programmable indicator a la MMBasic or connected to 3.3v as a power indicator. If there were two pin pads and the other end of the resistor un-connected then it could cover all three possibilities, i.e. power only, sinking current to a pin, sourcing current from a pin.
[/quote]
Ah, yes i now get what you mean. I only not have a pin available anymore, maybe i can drop one of the GND pins on the right and make room for one.

[quote]
Just looking at your diagrams though the two access points (pins) have a nice thick trace all the way between them except for that horizontal section towards the top left - it would be good to be able to maintain that thicker trace.
[/quote]
Agree, and it is already done.

[quote]
You might also be able to extend the tank cap power pad (bottom right of "top" diagram) a little lower and be able to get a standard 0.1" pin pair teamed up with the current "1-of-4" Gnd pin. Next to the tank cap would be a good place to have a test 3.3v pin and a Gnd/3.3v pair would be even better. It would also mean users could put a Gnd/3.3v test/access "pin-pair" on top of the board if they wanted and leave all the other pin accesses on the bottom - say to facilitate stacking.

Good point. I also going to change the distance between those points from 20mm to 20.32 mm. That will make it fit a standard 0.1" grid.
I also change two of the four pads (the top left and bottom right) into 3.3v. You would then have the ability to provide the board with power from all sides.
I also going to change the two i2c connectors on the right side and make them available on both 1mm and 0.1" grid. This will allow the use of a 6 wire 'backplane' where the only traces needed are GND, VCC and two sets of SDA and SCL.
Edited by TZAdvantage 2013-07-04
Microblocks. Build with logic.
 
paceman
Guru

Joined: 07/10/2011
Location: Australia
Posts: 1329
Posted: 06:26pm 03 Jul 2013
Copy link to clipboard 
Print this post

  TZAdvantage said  
  paceman said  
If there was just a pin pad to the resistor it could be used as a programmable indicator a la MMBasic or connected to 3.3v as a power indicator. If there were two pin pads and the other end of the resistor un-connected then it could cover all three possibilities, i.e. power only, sinking current to a pin, sourcing current from a pin.
[/quote]
Ah, yes i now get what you mean. I only not have a pin available anymore, maybe i can drop one of the GND pins on the right and make room for one.[/quote]
I think that would be good.
[quote]
You might also be able to extend the tank cap power pad (bottom right of "top" diagram) a little lower and be able to get a standard 0.1" pin pair teamed up with the current "1-of-4" Gnd pin. Next to the tank cap would be a good place to have a test 3.3v pin and a Gnd/3.3v pair would be even better. It would also mean users could put a Gnd/3.3v test/access "pin-pair" on top of the board if they wanted and leave all the other pin accesses on the bottom - say to facilitate stacking.
[quote=TZAdvantage]
Good point. I also going to change the distance between those points from 20mm to 20.32 mm. That will make it fit a standard 0.1" grid.
I also change two of the four pads (the top left and bottom right) into 3.3v. You would then have the ability to provide the board with power from all sides.
I also going to change the two i2c connectors on the right side and make them available on both 1mm and 0.1" grid. This will allow the use of a 6 wire 'backplane' where the only traces needed are GND, VCC and two sets of SDA and SCL.

That all sounds good.
A query on the 1mm diameter for those 4 holes (2 Gnd, 2 3.3v). I'm not sure here but 1mm is probably too small for a mounting screw and probably?? too big for either a piggy-back board pin or a test pin. What do you think?
GregEdited by paceman 2013-07-05
 
     Page 2 of 2    
Print this page


To reply to this topic, you need to log in.

© JAQ Software 2024