Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 15:33 03 Jul 2025 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 : uMite mx170 44 pin & USB/programmer DIP40

     Page 2 of 3    
Author Message
HankR
Senior Member

Joined: 02/01/2015
Location: United States
Posts: 209
Posted: 08:14am 11 Mar 2016
Copy link to clipboard 
Print this post

  MicroBlocks said   I might be able to also put in a footprint for a FRAM 32kx8bit chip.


The FRAM would be excellent, allowing for data logging. I think that would be a very valuable addition.
 
MicroBlocks

Guru

Joined: 12/05/2012
Location: Thailand
Posts: 2209
Posted: 08:43am 11 Mar 2016
Copy link to clipboard 
Print this post

Any remarks what i should do with the 32Khz and INT/SQW output pins?

I am considering placing a solder bridge between the INT/SQW out pin from the RTC to pin 42. You would then be able to use it as an interrupt or for counting.

The 32Khz is way to fast to use as an interrupt so i probably want to keep that one unconnected.

Is there a consensus to set the address for an FRAM chip. I considering using the MB85RC256V which has three pins to sets its I2C address.
[code]
• Device Type Code (4 bits)
The upper 4 bits of the device address word are a device type code that identifies the device type, and are
fixed at “1010” for the MB85RC256V.
• Device Address Code (3 bits)
Following the device type code, the 3 bits of the device address code are input in order of A2, A1, and A0.
The device address code identifies one device from up to eight devices connected to the bus.
Each MB85RC256V is given a unique 3 bits code on the device address pin (external hardware pin A2, A1,
and A0). The slave only responds if the received device address code is equal to this unique 3 bits code.
[/code]

I am also considering using a (super)cap instead of a battery as probably power interruptions are relatively short. Reading about that now to see if it offers enough backup time.

I seem to recall that someone else used an FRAM before (was that Grogster?) and using the same address would be at least staying compatible with that.

Or should i add more solder bridges to set the address, which is maybe the best way to go.

Opinions please. :)
Edited by MicroBlocks 2016-03-12
Microblocks. Build with logic.
 
isochronic
Guru

Joined: 21/01/2012
Location: Australia
Posts: 689
Posted: 09:12am 11 Mar 2016
Copy link to clipboard 
Print this post

It would be good to use the 32kHz from the maxim rtc as input to the
secondary oscillator pin on the pic. The idea is, on startup, the
pic loads current time date etc from the maxim into the pic rtcc,
then uses the accurate 32khz to maintain the time data.
Haven't tried it yet, I am using a ds3234 plugin which is the spi version.
I have found the ds3234 good, I had problems with noise pickup in cables etc
but when everything is nailed down it is very reliable (so far).
 
MicroBlocks

Guru

Joined: 12/05/2012
Location: Thailand
Posts: 2209
Posted: 09:25am 11 Mar 2016
Copy link to clipboard 
Print this post

The secondary oscillator pin on the PIC is pin 34 and that pin is currently hardwired as a console RX.
My thinking is to use the INT/SQW (1Hz) from the RTC
is that at least you can count the number of seconds
since the last time you read the info from the RTC
and have an accurate clock that way.

Edited by MicroBlocks 2016-03-12
Microblocks. Build with logic.
 
HankR
Senior Member

Joined: 02/01/2015
Location: United States
Posts: 209
Posted: 09:37am 11 Mar 2016
Copy link to clipboard 
Print this post

  Quote   Or should i add more solder bridges to set the [FRAM] address, which is maybe the best way to go.

Opinions please. :)


At least one or two solder bridges, please.

  Quote  My thinking is to use the INT/SQW (1Hz) from the RTC is that at least you can count the number of seconds since the last time you read the info from the RTC and have an accurate clock that way.


That sounds good.
 
isochronic
Guru

Joined: 21/01/2012
Location: Australia
Posts: 689
Posted: 09:46am 11 Mar 2016
Copy link to clipboard 
Print this post

  Quote  that pin is currently hardwired as a console RX.
My thinking is to use the INT/SQW (1Hz) from the RTC is that at least you can count the number of seconds since the last time you read the info from the RTC and have an accurate clock that way.


Forgot about the console (!) Need sleep...

 
MicroBlocks

Guru

Joined: 12/05/2012
Location: Thailand
Posts: 2209
Posted: 10:15am 11 Mar 2016
Copy link to clipboard 
Print this post

It seems Cypress has higher capacity FRAM available.
So it will also be possible to use a FM24V10 (128Kx8bit) or FM24W256 (32Kx8bit).
They share the same footprint as the Fujitsu chip.

This can also be handy for certain applications where a unique ID is required.
[code]
Unique Serial Number (FM24VN10 only)
The FM24VN10 device also incorporates a read-only 8-byte serial number.
It can be used to uniquely identify a pc board or system.
The serial number includes a 40-bit unique number,
an 8-bit CRC, and a 16-bit number that can be defined
upon request by the customer. If a customer-specific number
is not requested, the 16-bit Customer Identifier is 0000h.
The 8 bytes of data are accessed via a slave address
sequence similar to the Device ID.
[/code]Edited by MicroBlocks 2016-03-12
Microblocks. Build with logic.
 
MicroBlocks

Guru

Joined: 12/05/2012
Location: Thailand
Posts: 2209
Posted: 10:41am 11 Mar 2016
Copy link to clipboard 
Print this post

I have added the two parts to the schematic.
Now squeezing it onto the pcb.

RTC (DS3231MZ/DS3232MZ) The DS3232MZ has some extra RAM on board.


FRAM:


I also put two pull-up resistors on the board, i am thinking about a solder bridge for them. Would that be necessary when adding external I2C parts?
Edited by MicroBlocks 2016-03-12
Microblocks. Build with logic.
 
bigmik

Guru

Joined: 20/06/2011
Location: Australia
Posts: 2949
Posted: 02:38pm 11 Mar 2016
Copy link to clipboard 
Print this post

GDay MB, ALL,

  MicroBlocks said  RTC (DS3231MZ/DS3232MZ) The DS3232MZ has some extra RAM on board.


Hey!! I didn't know that there was a DS3231MZ variety, That is available for about $9each ($Aus) from Element14.. I have just about given up on the DS3232MZ as it was too costly but $9AU for the DS3231MZ is getting close and that is for 1off (10off is a little over $8Au)..

Might have to source some of them.

Regards,

Mick

PS. I had an inquiry for some SMD-BP170 Boards/kits a few weeks ago but I read it at work (on a work PC) and at the time I was out of stock of the SSOP MX170. I have lost the email.. If that person is a member of TBS and is still interested please PM or email me again.

Regards,

MickEdited by bigmik 2016-03-13
Mick's uMite Stuff can be found >>> HERE (Kindly hosted by Dontronics) <<<
 
MicroBlocks

Guru

Joined: 12/05/2012
Location: Thailand
Posts: 2209
Posted: 09:24pm 11 Mar 2016
Copy link to clipboard 
Print this post

Here are the PDF's for the DS3231 and the DS3232.

Oops they are too large.
I have to find the links again. moment.....

Here they are:
DS3231M
DS3232M
Edited by MicroBlocks 2016-03-13
Microblocks. Build with logic.
 
MicroBlocks

Guru

Joined: 12/05/2012
Location: Thailand
Posts: 2209
Posted: 03:58am 12 Mar 2016
Copy link to clipboard 
Print this post

Well that was a fight. :)
I did get everything on the PCB although i even had to customize some capacitor footprints to make them a tiny bit smaller but still the right size for the components i have. Thank you digital calipers. :)

2016-03-12_135715_DipTrace_Schematic_-_UMX170-44.pdf

Top:

Larger image: Top
Bottom:

Larger image: bottom
Edited by MicroBlocks 2016-03-13
Microblocks. Build with logic.
 
bigmik

Guru

Joined: 20/06/2011
Location: Australia
Posts: 2949
Posted: 01:51pm 12 Mar 2016
Copy link to clipboard 
Print this post

Jean,

That is extraordinary... I am struggling to believe what you have finally come up with..

WELL DONE!!

But seriously can you squeeze in a simple i7 CPU in all that spare space on the underside??


This is a MUST have IMHO.

Regards,

Mick
Mick's uMite Stuff can be found >>> HERE (Kindly hosted by Dontronics) <<<
 
MicroBlocks

Guru

Joined: 12/05/2012
Location: Thailand
Posts: 2209
Posted: 08:56pm 12 Mar 2016
Copy link to clipboard 
Print this post

Thanks Mick!

I found out that I2C EEPROM's also have the same pin layout so that would then also be an option.

I added two header pins.


This will allow to put the pic16 into programmer mode easier. Just place a jumper on #MCLR and Mode. The Mode led will then indicate programmer mode.

The second is a 3v3 header to make all the needed pins for the pic16f1455 icsp available. I tried to fit in a 5 pin icsp header but that is with only two layers very difficult. For normal use you would probably never need them, but for hackability a must.



Also renamed the jumper for selecting USB power from J1 to USB.

This 'jumper' actually offers some extra possibilities. It could be a place to measure current (high side shunt resistor). Or instead of a jumper a PTC can be used, or a diode. Instead of providing space for all of that, the single jumper gives you these choices.

I also put all the pin numbers on the bottom side to make finding them easier.

The RST pin is not directly connected to the PIC32 but lowers the voltage on a pin of a supervisory chip. This results is a nice clean reset signal to the PIC32 of about 250ms. Resetting the PIC32 will not break the USB connection, so staying connected is guaranteed. This will allow for applications that log to a USB port to be uninterrupted in cases a reset is necessary (watchdog or external condition).

It also makes it easier to reset the MMBasic as after a reset you can send a string of '!' to do a complete reset (wiping basic program and variables).




Edited by MicroBlocks 2016-03-14
Microblocks. Build with logic.
 
MicroBlocks

Guru

Joined: 12/05/2012
Location: Thailand
Posts: 2209
Posted: 06:44am 10 Apr 2016
Copy link to clipboard 
Print this post

Currently changing the layout and removing/replacing some parts to allow for a better voltage regulator performance (SOT-89). Also changed the supervisory circuit to a standard use to allow connection of a pickit3 to the PIC32 for direct programming & debugging.

Still struggling to add pins for the console (they are now exclusively connected to the pic16f1455 for USB-Serial).
The TX could be used to wakeup the pic so i will try to at least make that one available.

Microblocks. Build with logic.
 
MicroBlocks

Guru

Joined: 12/05/2012
Location: Thailand
Posts: 2209
Posted: 05:21am 28 Apr 2016
Copy link to clipboard 
Print this post

Well 17 days later! and i have finally reached a point that i am satisfied with the design.
I considered all the feedback and now used a much more beefier voltage regulator that can deliver max 500ma.
Also the pins for the console are accessible and right next to the USB port to keep the connection to a terminal on a single side.

The best thing however (i think) is the addition of a flash chip footprint so that a winbond or compatible chip can be added. This will give a large capacity of storage.
Peter already made a Cfunction to use this chip, so it will be ready to go.

My feeling is that this design will be great to use for when you want to log information. The RTC (DS3231/2) for timekeeping, up to 8MB flash and to top it of on the bottom side you can add two serial eproms or even better FRAM.

Another 'feature' is that it has most of the pins grouped, like I2C, SPI, PWM, SERIAL so that connecting other parts will be extremely easy.

It also shares the same layout as the DIP28 version. It would then be possible to upgrade a UMX170-28 module with a UMX170-44 module.

I should change the topic into DIP38 as it is a little shorter then a DIP40. This to conform with my other parts that are max 50mm. This one is 19.8x49.85mm which panelizes easy into a 10x10cm.



One of the things i am still considering is to drop one FRAM footprint and add a 9-DOF sensor.
What do you think?
Edited by MicroBlocks 2016-04-29
Microblocks. Build with logic.
 
Phil23
Guru

Joined: 27/03/2016
Location: Australia
Posts: 1667
Posted: 02:13pm 28 Apr 2016
Copy link to clipboard 
Print this post

  MicroBlocks said   I am going to remove the reset button and use the space for something more useful. I mean how many times would you need to press the reset when it is embedded in some box. :)


Just newbie feedback.

Love to have some like that to play with.

But,some sittings I press the reset button a LOT....

How about one like this?




That ones on a HC-05 Bluetooth module


Cheers

Phil
 
MicroBlocks

Guru

Joined: 12/05/2012
Location: Thailand
Posts: 2209
Posted: 04:27pm 28 Apr 2016
Copy link to clipboard 
Print this post

The reset pin is right next to a GND pin, so just add a header.

If you plug this in a breadboard, push a momentary switch between the GND power lane and the RST pin.

If you use a terminal to program it, press CTRL+R and the PIC16F1455 that acts as a USB-Serial (also programmer) will pull the #MCLR pin low and resets the PIC32.

The choice on what to add and what to leave out is always a difficult one.
The same goes for adding a LED to indicate power. Maybe nice to have but if you have a USB connection then that is a good indication that power is available. For use with a battery a LED uses more power then the PIC32 and PIC16 together. The list of things to add and leave out goes on.

The USB header (to enable power from USB) is also such a case. Many want a diode to protect against connecting USB power and external power. Others want a PTC to protect against large currents (which the voltage regulator already does) etc.
The USB header leaves that choice open. Want a diode, then add it. Rather have a PTC, well just add it. :) I think a jumper is the easiest solution and still offers those possibilities.

If used as a uMite then a reset is hardly necessary. When programming you would more often use CTRL+C to stop a running program and give the command NEW to erase everything or the command RUN to start it again. I find myself almost never using the reset switch. In other cases (arduino/ direct PIC) it is used more often.

Above is my way of thinking to make it the most versatile and useful.

Edited by MicroBlocks 2016-04-30
Microblocks. Build with logic.
 
Bill7300
Senior Member

Joined: 05/08/2014
Location: Australia
Posts: 159
Posted: 09:37pm 28 Apr 2016
Copy link to clipboard 
Print this post

Getting back to your other question Jean, I would certainly find use for a 9 DOF sensor in lieu of one FRAM.

Bill
Bill
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 10189
Posted: 09:57pm 28 Apr 2016
Copy link to clipboard 
Print this post

  Quote  One of the things i am still considering is to drop one FRAM footprint and add a 9-DOF sensor.
What do you think?


Having played quite a bit with the various DOF chips I'd recommend a 6-DOF (MPU-6150). The 9-DOF MPU-9250 is actually two chips in the package with the magnetometer separate from the accelerometers and it is a very poor magnetometer compared with the HMC5883.

To get reliable magnetometer readings the chip needs to be kept away, to the extent possible, from any and all electrical wiring and magnetic influence. This is easier to achieve if it is separate from the main PCB. JMHO
 
MicroBlocks

Guru

Joined: 12/05/2012
Location: Thailand
Posts: 2209
Posted: 12:24am 29 Apr 2016
Copy link to clipboard 
Print this post

Good point.
How would a MPU-6150 perform directly on the PCB. Is it just as sensitive to the electric signals. As that area is pretty full and has traces for I2C and SPI i suspect it will generate some 'noise' that could be detrimental.
Then again these things are also used in drones with lots of motors and other signals.
I did not find good examples or reading material that covers this subject so i have to go on peoples experiences.

Microblocks. Build with logic.
 
     Page 2 of 3    
Print this page
The Back Shed's forum code is written, and hosted, in Australia.
© JAQ Software 2025