<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:Consolas;
panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:"Calibri","sans-serif";
mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:#0563C1;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:#954F72;
text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
{mso-style-priority:99;
mso-style-link:"Plain Text Char";
margin:0cm;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-fareast-language:EN-US;}
span.PlainTextChar
{mso-style-name:"Plain Text Char";
mso-style-priority:99;
mso-style-link:"Plain Text";
font-family:Consolas;
mso-fareast-language:EN-US;}
p.NurText, li.NurText, div.NurText
{mso-style-name:"Nur Text";
mso-style-link:"Nur Text Zchn";
margin:0cm;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:"Calibri","sans-serif";
mso-fareast-language:EN-US;}
span.NurTextZchn
{mso-style-name:"Nur Text Zchn";
mso-style-priority:99;
mso-style-link:"Nur Text";
font-family:"Calibri","sans-serif";}
span.EmailStyle21
{mso-style-type:personal-reply;
font-family:"Calibri","sans-serif";
color:#1F497D;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;}
@page WordSection1
{size:612.0pt 792.0pt;
margin:70.85pt 70.85pt 2.0cm 70.85pt;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-AU link="#0563C1" vlink="#954F72"><div class=WordSection1><p class=MsoNormal><span style='font-size:11.0pt;color:#1F497D'>That’s a good summary. Another way of looking at it is what devices are available for each protocol – that may well decide what you have to use. E.g. we have developed Oberon examples for the following:<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;color:#1F497D'>SPI: <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;color:#1F497D'>SDHC Card<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;color:#1F497D'>7-Segment LED <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;color:#1F497D'>Newhaven 128 x 32 LCD Display<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;color:#1F497D'>Nokia 132x132 LCD Display<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;color:#1F497D'>AdaFruit 128x160 TFT Display<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;color:#1F497D'>Maxim Real-time Clock (unusual – most are I2C)<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;color:#1F497D'>I2C:<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;color:#1F497D'>MicroChip 8K EEPROM<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;color:#1F497D'>Honeywell Digital Compass<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;color:#1F497D'>TI Digital Temperature Sensor<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;color:#1F497D'>Bosch 3-axis Accelerometer<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;color:#1F497D;mso-fareast-language:EN-AU'>Regards,<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;color:#1F497D;mso-fareast-language:EN-AU'>Chris Burrows<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;color:#1F497D;mso-fareast-language:EN-AU'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;color:#1F497D;mso-fareast-language:EN-AU'>CFB Software<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;color:#1F497D;mso-fareast-language:EN-AU'>http://www.astrobe.com<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;color:#1F497D'><o:p> </o:p></span></p><div style='border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm 4.0pt'><div><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal><b><span lang=EN-US style='font-size:11.0pt;mso-fareast-language:EN-AU'>From:</span></b><span lang=EN-US style='font-size:11.0pt;mso-fareast-language:EN-AU'> Oberon [mailto:oberon-bounces@lists.inf.ethz.ch] <b>On Behalf Of </b>Jörg<br><b>Sent:</b> Tuesday, 18 December 2018 1:50 AM<br><b>To:</b> ETH Oberon and related systems<br><b>Subject:</b> Re: [Oberon] PO2013 - Real time measurement<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoPlainText><span lang=EN-US style='font-family:"Courier New"'>Tomas<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US style='font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoPlainText><span lang=EN-US style='font-family:"Courier New"'>Perhaps this comparison helps:<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US style='font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoPlainText><span lang=EN-US style='font-family:"Courier New"'> SPI I2C<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US style='font-family:"Courier New"'>Wires 3 or 4 2 <o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US style='font-family:"Courier New"'>Speed higher slower<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US style='font-family:"Courier New"'>Power less more<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US style='font-family:"Courier New"'>Multiple devices own CS per device yes<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US style='font-family:"Courier New"'>Reception verified no yes<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US style='font-family:"Courier New"'>Device can lock bus no yes<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US style='font-family:"Courier New"'>Cost more expensive cheaper<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US style='font-family:"Courier New"'>how many masters one several<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US style='font-family:"Courier New"'>noise susceptible more robust<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US style='font-family:"Courier New"'>Distance short longer<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US style='font-family:"Courier New"'>Standard variations exist yes<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US style='font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoPlainText><span lang=EN-US style='font-family:"Courier New"'>Jörg<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US style='font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoPlainText><span lang=DE>Am 17.12.18, 15:45 schrieb "Oberon im Auftrag von John R. Strohm" <<a href="mailto:oberon-bounces@lists.inf.ethz.ch%20im%20Auftrag%20von%20strohm@airmail.net">oberon-bounces@lists.inf.ethz.ch im Auftrag von strohm@airmail.net</a>>:<o:p></o:p></span></p><p class=MsoPlainText><span lang=DE><o:p> </o:p></span></p><p class=MsoPlainText><span lang=DE> The one catch is that you need a separate CS (chip select) line for each <o:p></o:p></span></p><p class=MsoPlainText><span lang=DE> device you want to connect to a given SPI bus. Only one CS may be active at <o:p></o:p></span></p><p class=MsoPlainText><span lang=DE> any time. (Hint: 3-8 decoder/demultiplexer, or even 4-16.)<o:p></o:p></span></p><p class=MsoPlainText><span lang=DE> <o:p></o:p></span></p><p class=MsoPlainText><span lang=DE> Some microcontroller SPI devices need very careful software design and <o:p></o:p></span></p><p class=MsoPlainText><span lang=DE> implementation to make SPI work properly. Motorola/Freescale/NXP is very <o:p></o:p></span></p><p class=MsoPlainText><span lang=DE> much in this category. To trigger a data transfer, you must read (and <o:p></o:p></span></p><p class=MsoPlainText><span lang=DE> implicitly clear) the SPI Data In buffer register. The implication is that <o:p></o:p></span></p><p class=MsoPlainText><span lang=DE> you have to have a way to "snoop" that register, without actually reading <o:p></o:p></span></p><p class=MsoPlainText><span lang=DE> and clear it, to get the last data byte in a message, and your driver must <o:p></o:p></span></p><p class=MsoPlainText><span lang=DE> KNOW enough about the particular device's data protocol to know when to read <o:p></o:p></span></p><p class=MsoPlainText><span lang=DE> and when to snoop. Analog Devices Blackfin SPI devices are a nightmare. <o:p></o:p></span></p><p class=MsoPlainText><span lang=DE> (Friends don't let friends do Blackfin SPI. Those words are written in my <o:p></o:p></span></p><p class=MsoPlainText><span lang=DE> personal blood, thank you for asking.)<o:p></o:p></span></p><p class=MsoPlainText><span lang=DE> <o:p></o:p></span></p><p class=MsoPlainText><span lang=DE> <o:p></o:p></span></p><p class=MsoPlainText><span lang=DE> -----Original Message----- <o:p></o:p></span></p><p class=MsoPlainText><span lang=DE> From: Tomas Kral<o:p></o:p></span></p><p class=MsoPlainText><span lang=DE> Sent: Monday, December 17, 2018 3:10 AM<o:p></o:p></span></p><p class=MsoPlainText><span lang=DE> To: <a href="mailto:oberon@lists.inf.ethz.ch">oberon@lists.inf.ethz.ch</a><o:p></o:p></span></p><p class=MsoPlainText><span lang=DE> Subject: Re: [Oberon] PO2013 - Real time measurement<o:p></o:p></span></p><p class=MsoPlainText><span lang=DE> <o:p></o:p></span></p><p class=MsoPlainText><span lang=DE> > You can connect as many slaves to the ribbon as you wish, but you can<o:p></o:p></span></p><p class=MsoPlainText><span lang=DE> > only communicate with a single slave while others are not active.<o:p></o:p></span></p><p class=MsoPlainText><span lang=DE> <o:p></o:p></span></p><p class=MsoPlainText><span lang=DE> Wojtek,<o:p></o:p></span></p><p class=MsoPlainText><span lang=DE> <o:p></o:p></span></p><p class=MsoPlainText><span lang=DE> Thank you, I wanted to achieve a small system bus for Oberon devices,<o:p></o:p></span></p><p class=MsoPlainText><span lang=DE> inexpensive, with as few components as possible. I learnt SPI cannot be<o:p></o:p></span></p><p class=MsoPlainText><span lang=DE> addressed, but only chip selected by `CS'. My idea was to drive `CS'<o:p></o:p></span></p><p class=MsoPlainText><span lang=DE> by Oberon through `GPIO' + interrupt, being a master letting only one<o:p></o:p></span></p><p class=MsoPlainText><span lang=DE> party to talk, the other listen, at at time.<o:p></o:p></span></p><p class=MsoPlainText><span lang=DE> <o:p></o:p></span></p><p class=MsoPlainText><span lang=DE> Thus having a simple HUB, for some A/D sensors. Alternatively to have<o:p></o:p></span></p><p class=MsoPlainText><span lang=DE> also D/D, D/A outputs.<o:p></o:p></span></p><p class=MsoPlainText><span lang=DE> <o:p></o:p></span></p><p class=MsoPlainText><span lang=DE> Designing a small control system, so to speak.<o:p></o:p></span></p><p class=MsoPlainText><span lang=DE> <o:p></o:p></span></p><p class=MsoPlainText><span lang=DE> -- <o:p></o:p></span></p><p class=MsoPlainText><span lang=DE> Tomas Kral <<a href="mailto:thomas.kral@email.cz">thomas.kral@email.cz</a>><o:p></o:p></span></p><p class=MsoPlainText><span lang=DE> --<o:p></o:p></span></p><p class=MsoPlainText><span lang=DE> <a href="mailto:Oberon@lists.inf.ethz.ch">Oberon@lists.inf.ethz.ch</a> mailing list for ETH Oberon and related systems<o:p></o:p></span></p><p class=MsoPlainText><span lang=DE> <a href="https://lists.inf.ethz.ch/mailman/listinfo/oberon">https://lists.inf.ethz.ch/mailman/listinfo/oberon</a> <o:p></o:p></span></p><p class=MsoPlainText><span lang=DE> <o:p></o:p></span></p><p class=MsoPlainText><span lang=DE> <o:p></o:p></span></p><p class=MsoPlainText><span lang=DE> ---<o:p></o:p></span></p><p class=MsoPlainText><span lang=DE> This email has been checked for viruses by Avast antivirus software.<o:p></o:p></span></p><p class=MsoPlainText><span lang=DE> <a href="https://www.avast.com/antivirus">https://www.avast.com/antivirus</a><o:p></o:p></span></p><p class=MsoPlainText><span lang=DE> <o:p></o:p></span></p><p class=MsoPlainText><span lang=DE> --<o:p></o:p></span></p><p class=MsoPlainText><span lang=DE> <a href="mailto:Oberon@lists.inf.ethz.ch">Oberon@lists.inf.ethz.ch</a> mailing list for ETH Oberon and related systems<o:p></o:p></span></p><p class=MsoPlainText><span lang=DE> <a href="https://lists.inf.ethz.ch/mailman/listinfo/oberon">https://lists.inf.ethz.ch/mailman/listinfo/oberon</a><o:p></o:p></span></p><p class=MsoPlainText><span lang=DE> <o:p></o:p></span></p></div></div></body></html>