4 Replies Latest reply on Apr 29, 2016 5:59 AM by patrick.moerwald_1578416

    How can i use two UARTs in PSoC4 Cy8C4247LQI-BL483

    patrick.moerwald_1578416

      Hi,

         

      i need two UARTS, one for a debug log on the PC and the other for communication with another uC.

         

      When i put one UART in my Top Design, everything works, but when i put another UART block in ther an compile i get the following error:

         

      --------------- Rebuild Started: 04/28/2016 15:07:19 Project: emBrace_BLE2UART, Configuration: ARM GCC 4.9-2015-q1-update Debug ---------------
      Deleting file ".\emBrace_BLE2UART.rpt"
      cydsfit.exe -.appdatapath "C:\Users\Patrick\AppData\Local\Cypress Semiconductor\PSoC Creator\3.3" -.fdsnotice -.fdswarpdepfile=warp_dependencies.txt -.fdselabdepfile=elab_dependencies.txt -.fdsbldfile=generated_files.txt -p "C:\Users\Patrick\Documents\PSoC Creator\UART2BLE\emBrace_BLE2UART.cydsn\emBrace_BLE2UART.cyprj" -d CY8C4247LQI-BL483 -s "C:\Users\Patrick\Documents\PSoC Creator\UART2BLE\emBrace_BLE2UART.cydsn\Generated_Source\PSoC4" -- -yv2 -q10 -ygs -o2 -v3 -.fftcfgtype=LE
      Elaborating Design...
      HDL Generation ...
      Synthesis ...
      Place and Route ...
      Tech mapping ...
      Error: mpr.M0014: Resource limit: Maximum number of Macrocells exceeded (max=32, needed=48). (App=cydsfit)
      Error: mpr.M0014: Resource limit: Maximum number of Unique P-terms exceeded (max=64, needed=88). (App=cydsfit)
      Error: mpr.M0014: Resource limit: Maximum number of Datapath Cells exceeded (max=4, needed=6). (App=cydsfit)
      Error: mpr.M0014: Resource limit: Maximum number of Status Cells exceeded (max=4, needed=6). (App=cydsfit)
      Dependency Generation ...
      Clean Temporary Files ...
      Error: cdf.M0005: CyDsFit aborted due to errors, please address all errors and rerun CyDsFit. (App=cydsfit)
      --------------- Rebuild Failed: 04/28/2016 15:07:28 ---------------

         

      I thought the PSoC4 has two UARTs, can you please help me ? I need two UARTs!

         

      Pat

        • 1. Re: How can i use two UARTs in PSoC4 Cy8C4247LQI-BL483
          user_1377889

          There are two kinds uf UARTS: USB based (Free pin routing) and SCB based (Pins are dedicated).

             

          Use an SCB based for debugging. This is usually connected to the USB-UART bridge in the Kits having got a Kitprog.

             

          Use the UDB based for your "normal" project-

             

           

             

          Bob

          • 2. Re: How can i use two UARTs in PSoC4 Cy8C4247LQI-BL483
            patrick.moerwald_1578416

            Hi,

               

            thanks for the answer. RIght now i modified the project and use a "real" UART for the communication to the other uC and a SCB UART for the USB debug on Pins P1[4] and P1[5].

               

            Unfortunately its still not working. I get no signal from the SCB UART to my FTDI USB debugger. It works however with the BLE_AlertNotification example which also uses a SCB UART.

               

            Somehow i must have missed a configuration step in my project. I just dropped the SCB component to the TopDesign and configured it for UART with 115200 baud. I named it UART_DEBUG. In clocks i see that its attached to the HFCLCK.

               

            I call

               

            UART_DEBUG_Start();
                
                DBG_PRINTF("BLE Heart Rate Sensor Example Project \r\n");

               

            but nothing happens.

            • 3. Re: How can i use two UARTs in PSoC4 Cy8C4247LQI-BL483
              user_1377889

              What makes you think that without any OS in the PSoC the function DBG_PRINTF() uses the UART_DEBUG component. (WHY CAPITAL LETTERS???)

                 

              Can you please post your complete project, so that we all can have a look at all of your settings. To do so, use
              Creator->File->Create Workspace Bundle (minimal)
              and attach the resulting file.

                 

               

                 

              Bob

              • 4. Re: How can i use two UARTs in PSoC4 Cy8C4247LQI-BL483
                patrick.moerwald_1578416

                Hi Bob,

                   

                project is working like a charm now, had to increase the Heap size in the memory manager.

                   

                Whay capital letters? Because its a redefinition of the printf function and define are in capital letters. Its exactly analogous to the debug.h file of Cypress' "BLE_Heart_Rate_Sensor" example project. Actual selection of the correct UART is done by tweaking the _write function in the debug.c file to use the correct UART.

                   

                Anyways, it was just the small Heap that crashed the program on the printf() call. I could solve it after a while with PSoC creator. Great IDE btw!

                   

                Regards,

                   

                Patrick

                1 of 1 people found this helpful