Skip to main content

wiznet W7500P cortex M0 circuit board and FreeRTOS 9.0.0rc2 working

I have made my new cortex M0 based microcontroller board operational with FreeRTOS.
The chip is a W7500P
- a cortex M0 with 16KB SRAM and 128KB Flash
- hardware tcp/ip stack incl mac/phy on board (P101G)

This chip is a single chip microcontroller/ethernet/internet IoT solution, no software TCP/IP stack that can fail or hacked. For TCP/IP buffers it has another 32KB SRAM, this can be used by 8 simultaneous TCP connections (sockets open at same time).

I like this chip because it eliminates a lot of other stuff on the board. It is fast, and has lots of IO.
I added a SD-card connector for data-logging applications.
My main application will be small measurement and control applications, adding network easily and securely, super fast bootup times (0.1 sec instead of 20 sec, no linux based board with large bodies of software)

  • ADC : 12bit, 8ch, 1Msps
  • DMA
    • 6-channel DMA controller
    • Peripheral supported: UARTs, SPIs
  • GPIO
    • 34 I/Os 
  • Debug mode
    • Serial Wire Debug (SWD)
  • Timer/PWM
    • 1 Watchdog (32-bit down-counter)
    • 4 Timers (32-bit or 16-bit down-counter)
    • 8 PWMs (32-bit counter/timers with programmable 6-bit prescaler)
  • Communication Interfaces
    • 3 UART (2 UARTs with FIFO and Flow Control, 1 simple UART)
    • 2 SPI
    • 2 I2C (Master/Slave, Fast-mode (400 kbps))
  • Crypto
    • 1 RNG (Random Number Generator): 32-bit random number
Lots of issues had to be figured out eg:
- form factor and connector locations, choice of peripherals to add to the main board
- adding of RF chokes and capacitors in both digital and analog power distribution
- design of the schematic, including choice of components, eg. RJ45 and magnetics
- some parts had to be designed (schematic and footprint)
- design of the circuit board, 4 layer board, taking into account design rules and EMI issues
- assembly of the board, including component placement and soldering



The board was designed in KiCad (http://kicad-pcb.org/)





The boards were hand-soldered by me, the pitch for the W7500P is 0.4mm, that is 0.2 mm spacing between tracks.

- toolchain had to be figured out, including linking (modified LD files)
- system initialisation had to change
- clock speed, now runs at 48MHz from external crystal.
- debugging using the SWD interface, using a ST-LINK interface
- programming using ISP over serial port, the S_UART (simple uart) of the chip



After the primary tests were done and found to work, eg. webserver, led-blinky it was time to port FreeRTOS to this board.

Today the FreeRTOS 9.0.0rc2 ran without troubles.


If you want something like this too, this design can be used in your OEM product, just give me a call.

Comments

900 said…
Hi, how can you program via ISP? how about the wiring and programmer software you use? thanks a lot

Popular posts from this blog

Denon DHT T100 DESIGNED TO FAIL : bad caps (ceramic caps this time)

A friend gave me a Denon DHT-T100 to look at.
Do not spend much time on it.. ok.


It had a problem, it started clicking and ticking after power on, and after some time.
(a so called intermittent problem)

Sometimes it did not tick or click, but it was basically not usable.
The clicking had a sharp click in one channel and repeated after about a second, then sound recovered and it would click and drop out again.

He told me, do not spend any time on it, yeah, right. ;-) like I would give up after 15 minutes.
I wanted to know what was going on with this thing, I found some schematic online and started measuring the usual things.

The power supply, 24V did it drop down when a tick occurred ? Difficult to find out because sometimes the thing would play for hours without a glitch.

I eventually found out the 24 V PSU, the step down SMPS on board and the LDO's were all ok, all power rails remained within spec, but it still glitched sometimes. (while power was ok)

I investigated methodically,…

Raspberry Pi, PyFace Digital, the lost documentation, I found it finally

The Raspberry PI or R-pi from http://www.raspberrypi.org/ is well known these days.
It is not an accident that I have one, I have been doing Linux stuff since 1991, and professionally since 1996 I can not skip over these developments, have to keep up with the new kids. :-)
Times have changed, hardware has become very affordable, everybody knows the Arduino, Raspberry Pi and Beagle-Bone-Black (BBB). Not everybody knows the stuff that http://www.acmesystems.it/ aka Acme-Systems and https://github.com/OLIMEX/OLINUXINO aka Olimex make, so I will endorse them here.
Since I am an engineer I expect to connect switches and relays to the boards and some documentation with products, not so with the "PiFace Digital" board, it comes without serious documentation, not a even the schematic. All links on their blog point nowhere. People asked them many times, yet nowhere is the schematic to be found.

I finally found some info after hours of google-work, someone made a copy!
https://github.c…

Nederland van het aardgas af, dat schiet lekker op (NOT!)

Om dingen even in perspectief te plaatsen moet je gewoon even wat berekeningen maken.
We gaan Nederland van het aardgas afhalen (de burgers) omdat?

https://www.ad.nl/wonen/nederland-heeft-nog-lange-weg-te-gaan-gasverbruik-stijgt~aaf1527e/

In USA fakkelen ze 2123763,4944 m3 aardgas af per UUR
(bij winning van olie, gas is ongewenst daar, opslag niet handig, goedkoper om te fakkelen)


1.8 miljard cubic feet per dag...

Ons Nederlandse gasverbruik (huishoudens) is : 1500 m3 per jaar per huishouden

Even rekenen 2.1 miljoen m3 per uur, dat is

24 * 365 * 2.100.000,00 = 18.400.000.000,00 m3 aardgas affakkelen per jaar

(even de rekenmachine pakken)

18.400.000.000 / 1500 => aantal huishoudens Nederland

dat is voor 12.3 miljoen huishoudens (met gasverbruik van 1550 m3/jr)

Naast het opbranden lozen ze ook nog gewoon aardgas direct in de atmosfeer. (genaamd Venting)

Waarom moet ik ook alweer van het aardgas af?

Niet voor het milieu en de toekomst van onze kinderen, daarvoor helpt het helemaal…

ESP32 IDF master update troubles (and fix)

I am using ESP32 IDF for some private experiments. (more info later)

I really like it, not like some Arduino hobby IDE, that is a  half done, non-professional project.
I see a lot of people writing stuff like "do ESP32 in Arduino" this is completely backwards, you should avoid anything Arduino-related. You can not use Arduino in a real project, it can not be controlled, it is doing "magic" things and breaks everytime. You guessed it: I do not like it. ;-)

The ESP-IDF works really well uses cmake, is well documented, I use visual studio code insiders or clion van jetbrains to coordinate my coding and GIT to store my stuff.

I am really impressed with how well it works. Including flash-upload, debugging all works fine.

A few days ago I updated the IDF to the latest version and got errors:


$ git checkout master
$ git pull

remote: Enumerating objects: 1492, done.
remote: Counting objects: 100% (1492/1492), done.
remote: Compressing objects: 100% (213/213), done.
remote: Total…

DPS5005 power supply, remote control using python serial port modbus

Just a short one.
I bought one of these things.
It can do 50 volt 5 Amp, I have not looked at the quality of the output (noise, overshoot all unknown to me)  but should be alright to control a lamp, a battery or a strip of LED's is my guess.


You can easily control the current and voltage output using a serial port. (a usb-serial-rs485 was provided)

I seems to talk modbus protocol.

To change the baud rate and modbus-slave-address, keep POWER button pressed during power on, this will enter you into the configuration menu.

register list here :
Register Map for this device.
Function Description Number of bytes Decimal places UNIT Read/Write Register address U-SETVoltage setting2 2 V R/W 0000H I-SETCurrent setting2 3 A R/W 0001H UOUTOutput voltage display value2 2 V

Aircon Repair on Hyundai Getz (on the hottest day of the year)

Yesterday was the hottest day of the year 2013 to date. Temperatures reached 36 degrees C. Normal value for this time of year is about 24 degrees (according to KNMI).

My wife's car, a Hyundai Getz had a broken AC unit and I decided to fix it.  The AC light lit up just like normal but the clutch to the compressor did not kick in. After spending hours googling for schematics and diagrams, reading forums I found out why. The system is protected by a clever pressure switch, (conveniently located behind the glove compartment) It disables the clutch when pressure is too high or too low. After checking all things electrical, fuses, sensors, the clutch, the fans and switches I was out of options, I could not measure the pressure in the system.

I visited a local car repair shop specialized in Airco systems, Rene van de Louw, st. Oedenrodeseweg 40, and he quickly noticed that I had a leak in my condenser. How? He put some pressure on the system with nitrogen and I could hear a hissing sound…

Grinder and paint make me the welder I ain't.

Flux core.

It is not going anywhere soon!

Speaker modification for Old Timer Mercedes

Fixed voltage on cheap buck converter (MP1584) conversion with single 0805 resistor

Everywhere I look on the Ali and Ebays I see these step down converters based on MP1584. I bought a couple and actually they are not bad at all.

The output voltage is set by the trimming-resistor in the left top corner of the picture. This works OK, but.. it is dangerous because it is rather sensitive to the touch.
I decided that I wanted fixed output, so I had to figure out how this thing worked. The datasheet looks like this :
R1 in the datasheet is what I call "R feedback" in my image. The value of R2 is mostly 8.2K Ohm in the boards I have seen. 


So to set some common values for output voltage:
change R1 to 27K for 3V3 output (actually 3.4 volt, but 27K is a standard value)
or
change R1 to 43K0 for 5.0 Volt output. (43 K is a standard value)
A standard 0805 size resistor fits precisely, how convenient ;-).

Make sure the other resistor is really 8.2K because that determines the feedback ratio.

This way you can not burn up your circuits by accident (or some funny clown tu…

Maxtor Shared Storage (how I recovered all the data)

Maxtor Shared Storage NAS 300 GB

Summary of long adventure: TL;DR.

ONE DISK IS NOT AN OPTION FOR A NAS

- Audience : advanced users
- linux skill required : yes
- strong opinion : yes
- frustration : yes

It looks so nice in the picture : storing data on a NAS, not on the local system.
You can access it from anywhere in the network, all is fine.
Until.. The NAS breaks down and you forgot the backups..

I had this NAS for a long time (several years), somewhere safe in the house, in a dry and protected and cool place, nobody would be able to find it, a digital safe, connected to my local network.

It seems a smart idea, but it really was not.



Here is my summary of trouble to get my data back.
1) The NAS did not appear in my network anymore
2) Checked power supply, switches, cables
3) conclusion, NAS is bad
4) reboot, does not come online again
5) open it up, take out harddisk, how hard can it be? Right?

I connected the disk to my machine with one of those PATA/SATA-to-USB things (20 euro th…