-
05/26/2019
05/27/2019 at 02:14 • 0 commentsGot the project ported over to Segger Embedded Studio, which turned out to be MUCH nicer (and faster) then using IAR EWARM, and also better then using TrueStudio (now called STMCUBE IDE). The project will still build with all 3, but considering that Segger Embedded Studio is FREE for non-commerical use, I would highly recommend just going straight for that one!
(plus it's actually a very nice IDE)
I've been working on the BOM, should have it posted by tomorrow night, plus I populated up a 2nd board, as it is the board I will permanenty mount in my oven, and post pics of as I mount and connect it up, so you can see the slot and holes I drilled in the cover to mount the TFT screen.
Also, still working on the LCD menus, all is good, just working through them, hopefully will have the BOM and some mounting pics posted tomorrow... -
05/14/2019
05/15/2019 at 20:56 • 0 commentsAlright!
Schematic/Board design is finally complete. I still have some notes/comments/etc to cleanup in the eagle schematic file, but wanted to post it so at least anyone interested can at least get an idea of the size... I haven't done the BOM yet, that will take some time.
So EAGLE files are posted, along with a link to the initial Github repo, which currrently just has the eagle files, and a jpg of the schematic, and also the OshPark link for the board I had made. I'm *SURE* you can get this board made cheaper somewhere else, I am just happy with Osh and their reliability, but $200 for this board is very very steep, i'm sure other places can do much much cheaper.
You'll notice the odd 'L-shaped' board, but that is so it can mount cleanly on the 6 mounting posts already there on the inside of that cover for the oven, and when the LCD is mounted on the outside, you dremel a slot where the LcD connectors pass through and connect up to the board. (I'll post some pics shortly of how this looks)
Just built the final version, using 64MB SDRAM, and all other fixes, and it's working without issues, everything looks great.
I'm currently working on the touch screen menus and things using the STemWin Graphics IO package, which is working great.
Hopefully within the next month or less I will have a first working version and will have the initial software repo to post... hoping that will happen!
But definitely not too far away, that is for sure, as I have many of the LCD screens already working, just trying to design some decent first drafts, and then get an actual run going.
-
04/27/2019
05/15/2019 at 20:55 • 0 commentsAlright, got FreeRTOS & StemWin integrated, and got some demo code working so I could see the LCD actually run some animation, widgets, etc. Have to say, STemWin is an awesome library, almost endless possibilities of what you can create. I wish I was a better artist.
** I'm really hoping others following this may be able to contribute someday and and some sweet graphics designs, I'm going to do what I can to make a nice thing working, but like I said, I don't have much artistic talent, so my graphics designs tend to be boring. lol **
So, the SRAM I put in this current design was only 4MB, and couldn't really get higher than that.. BUT, I was such an idiot and didn't realize my pin restriction was because I was comparing to their eval board and assuming I had to go with 32-bit wide SDRAM, which is not the case, as the SRAM was only 16-bit wide. No problem with using 16-bit wide SDRAM, and only had to move 1 pin to change the board to use a 64MB SDRAM, so we have plenty of room for multiple LCD Frame Buffers, and STemWin internal buffers, and whatever else cool we can use it for!
So, one more board spin, to remove the SRAM and replace with the SDRAM... once I get that back and working, I'll finally put up the schematics, pcb, and oshpark link.... then after that I'll try to get a parts list together...this design obviously isn't going to be cheap, but I think it's worth it, considering the endless opportunites this provides, and also gives any enduser the opportunity to design almost anything custom they want.
Really the 3 most costly components are the LCD:
1) 800x480 NewHaven display is about $65
2) STM32H7 processor is about $22
3) 64MB SDRAM is about $15
-
04/12/2019
05/15/2019 at 20:55 • 0 commentsFinally, got the MicroSD -> Jpeg Decoder -> DMA2D converter -> LCD display flow to all work.
took a couple weeks of fighting with this mcu to get everything working right, but finally I can read a JPG image from my microsd on my board, decode the jpg image to the 4MB SRAM, then use the DMA2D converter to output into the correct pixel format to the framebuffer in the sram, and successfully display the full 800x480 image to the LCD
(I uploaded a screen shot showing my snowy wallpaper image I chose), screen looks beautiful.
So now I'm onto the actual fun part, making LCD images for the actual oven operation, getting some profiles setup, etc, this may take quite some time..
Also I had to make one more spin of my board, as the SPI bus and LCD bus needed some serious inline termination resistor packs on all the data/address lines to dampen signal reflections, otherwise all is good.
I'll post up the EAGLE schematic/board files prob. next week, as well as a link to the current OshPark board (I'm SURE you can make this board cheaper elsewhere, but I like Osh because of their high quality)
-
03/11/2019
05/15/2019 at 20:55 • 0 commentsOk, finished up the code for all the peripherals, so all the PWM and timers are working, SPI, I2C, LCD touch screen interrupts, etc. cleaned up all the code so I got everything into nice working order.
Also, have to say after getting used to the STM32 code, and the Cubemx examples, finally really liking how they made the HAL so easy to use, saves so much time! Was a pain at first with the jpeg and messed up code, but things are much better now with all the other sample code.
Now onto the main event, LCD & JPEG integration, I updated my board and re-routed, after digging into the LCD area, I realize I don't need the external flash, what I really need is external ram, plus add on a socket for a MicroSD (via SPI) so I can have an external file system for storing images, even profiles, etc. SD's are so cheap now anyway!
So I put all that onto the new board, and removed the flash, and added in the SRAM...
** only annoying part is I can't use SDRAM, as I don't have enough available pins to use the SDRAM setup with the FMC, unless I bump up to the larger 144-pin STM32H7 package, which I really don't want to do.. I'm already using the 100-pin package, and it takes up a nice footprint..
SRAM is a bit more expensive than SDRAM, but for now it is good.. about $20 for the 4MB SRAM chip... maybe down the road once this thing is all iron'd out we can weight using the larger STM32 chip, and drop in an SDRAM instead..
there is more than enought flash on-board the STM32, 2MB total, and at most the program will take 1MB, prob. more like 100kB or less, so at least we have 1MB of free internal flash...
external SRAM will add 4MB of ram, plus the external MicroSD which can be massive amount of storage...which we can use for all sorts of nice bmp/jpg images, so we can have our own custom displays,e tc..
-
01/13/2019
05/15/2019 at 20:54 • 0 commentsFinally, got all the modules working properly, JPEG, LTDC, and NOR flash all working and test out good. All the HAL issues were because of an issue with CUBEMx, and its code generation for IAR. CubeMx doesn't setup the linker file properly for the STM code it generates, especially for JPEG init. IAR uses a fixed 'stack size' in the linker file, but their JPEG huffman code requires more than they specified, so the JPEG init overwrites other vars in memory, and wrecks havoc.
I will let STM know their CubeMx gen for IAR needs a little tweak there... but anyhow, all looks good, now moving on to actually writing some code and setting up all the rest of the Perips....
I setup this project to work in both IAR and TrueStudio, as TrueStudio is quite nice (and free), but I still prefer IAR a bit over TrueStudio, mostly because I've just used it so much I can navigate faster in it..
-
01/09/2019
05/15/2019 at 20:54 • 0 commentsLCD is working good, so far I don't see any issues with it, so I'm moving forward to testing out the 16MB external flash I decided to use. (Still not sure yet if I'm going to really need external flash or SRAM). The biggest issue is how I'll store/use images, and whether I need external flash for storing jpeg or RBG images, or if I'll need external SRAM for decompressing images stored in internal flash.
I won't know until I really start hammering into it... the FMC on this chip allows you to easily have both SRAM and flash (as you can see from the STM32H7 eval board/schematics), but that would most likely require a 4-layer or larger board to handle both chips... so for now I'm hoping to only need one or the other...
-
01/05/2019
05/15/2019 at 20:53 • 0 commentsOk,
I figured out what to do, decided to do one more round of experimenting, the FL5160 is very very sensitive to a stable/clean power source, so no idea how in the world their schematic concepts in the datasheet would work when trying to get a decent DC supply right from the AC mains, with very little filtering/smoothing.
I already have a DC Boost supply in this board for the LCD driver, which requires ~19VDC, generated from the 5V source, with the FAN5333B IC. Just added a second setup of this boost circuit, providing a nice clean 12.5V or so source, plenty to keep the 5160 happy and avoid any brown out possibilities for under voltage. (means a few more components on the board, but they are quite cheap, so not much added to the cost).
I really hated the requirement of having to mod the T962A oven itself changing out a transformer or whatever, as my approach all along for these designs is to truly be a 'drop-in' without having to mod the oven itself. Of course in this case having an external 5" LCD does mean a little bit of a mod, but will be minimal.
Anyhow, I'm onto the main task now, LCD is fired up and powered on, looks good, seems to be booting up and no bad connections from what I can tell.. going to start testing some actual LCD sample code now from STMicro to see if it can actually talk to the micro correctly..
(I posted a photo so you can see my little debug/test setup)
-
01/03/2019
05/15/2019 at 20:53 • 0 commentsAlright, the DAC is working fine, this FL5160 chip is a real pain in my ass as it always has been! as I expected, things just do not work like they show in the datasheet; trying to power the chip from the AC mains just doesn't work right. As I was saying, this chip is very strange and is very touchy.
As much as I tried numerous things to smooth the supply for the chip when using their circuit, the chip just wasn't happy. It would startup but die. I'm not sure which approach I'll end up with, but for now I'm moving on and will work on the rest of the code, circuit, and LCD panel.
Since the easiest fix I did with my oven right now, with the Pic32 board, was to just replace their cheap 9v AC transformer with a 12v one, that may end up being the requirement I'll end up with this board as well.
If the stupid 5160 ran off normal 5v/3.3v supply, then it would be so easy. But since it needs about 10-12vdc for it's main supply, it becomes a pain with this oven because they ship it with a cheap 9V ac transformer that outputs around 9-11vdc, but isn't consistent.
So with a good 12v ac trans, we have all the dc we need for the board and the 5160. I hate using this chip because its such a pain in the ass, but it works awesome once the circuit is right. And I am not aware of anything else out there that does what this chip does all in one package. I could put a zero-cross detection into the cpu via a GPIO reading the aC mains, but then you have to account for a timer for that, and more overhead firing the FETs for just stupid fan control. Makes so much more sense to have that offloaded as I'm doing with the 5160.
So on to the rest of the board, I'll update more once I dig into LCD stuff and the meat of the thing...
-
12/19/2018
05/15/2019 at 20:52 • 0 commentsHi, finally got back to this, took me longer than I thought to get back to it! haha.. so far so good, did some initial tests with the cpu running and AC applied, no smoke :) I think the FL5160 setup will work fine, but I'm going to run through some DAC iterations this weekend to make sure it actually runs.
Once I get it all verified, I'll update the schematics for the PIC32 version, and update all the info...
I hope to actually start working on this design over Christmas break and figure out my issues with the jpeg and ltdc modules of this chip (currently I have them commented out from being init'd, as that is what was hanging on HAL init calls)...